How often have your software projects been late? How long does it take to get a requirement from being an idea to being in production? Do you have problems with too many defects at the tail end of a project or in the field? Delays and defects are all waste; how can the waste be eliminated?
Software development can be predictable, transparent and able to deliver value rapidly to your customers. Every company has different constraints and so there is no a one size fits all solution, with experience of a wide range of tools and techniques, and using Lean Software Development practices we can help you find ways to significantly improve your process.
Why not contact us for an initial discussion to see how we can help?
Lean Software Development
Lean software development takes the principles of Lean Manufacturing and applies them to the software development process. The name comes from the excellent book of the same name by Tom and Mary Poppendieck. Lean is based around the following principles
- Eliminate Waste
- Amplify Learning
- Decide as Late as Possible
- Deliver as Fast as Possible
- Empower the Team
- Build Integrity In
- See the Whole
Using these principles and selecting tools and techniques from agile, scrum, Kanban, extreme programming, Continuous Integration and Continuous Delivery appropriate to your projects and company we can help dramatically improve development times, quality and customer satisfaction.
Continuous integration is a development practice that requires developers to integrate their code into a shared repository many times a day. Every time code is checked into the repository an automated build is run, and automated tests are triggered that verify the behaviour of the code.
The are specific issues to overcome using continuous integration in embedded and regulated industries. Issues of proving the code on embedded platforms. Issues of long term support for specific versions. Requirements to patch old versions of a product.
These specific issues may make it harder to adopt continuous integration for embedded devices, however the potential gains are even more significant.
How painful is your release process? Does it take hours? Days? Is it reliable? What if you could automate a release at the push of a button?
Continuous delivery builds on the ideas of continuous Integration and Lean thinking and automates the process of releasing software. It extends the benefits of continuous integration beyond the activities of the development team, through test and validation, quality control and into production.
A good coding standard, supported by static analysis can help to reduce the number of defects in code and reduce development times. We contributed to MISRA C:2012 (MISRA C3), and have led the development of coding standards in C and C++ for two large multinational companies.