Advantages and Possible Downsides of Agile Development
Agile project management methods aren't new, however they can still be considered somewhat foreign to most teams developing hardware or combined embedded hardware and software products.
There are a number of both advantages and potential disadvantages that are worth considering when it comes to the role of Agile management methods in hardware projects that should be considered in the decision-making process of switching from a traditional waterfall project management method to an Agile approach for the management of your projects.
Imagine a team that focuses on how their work will be used by the customer, and who quickly incorporates feedback from other teams and test users to build something that gets better and better in noticeable and usable incremental chunks of productivity. They may work without the usual documentation and strict procedures because communication is fast and usually face-to-face, with the results being what is important.
These are some of the typical advantages associated with Agile project management techniques, along with improvements in efficiency and team productivity that come from co-location of teams, pair programming (and more generally, "pair engineering" in the context of a non-software project), regular stand-up meetings and similar interpersonal communication techniques within your project team that are an important part of many Agile methods.
Some of the other key advantages that are typically ascribed to Agile project management techniques include the reduction of traditional, formal written documentation because of the sense that reducing the requirement for this type of documentation allows creativity to increase, a reduction in the time that is typically consumed doing blind research, and the relatively rapid delivery of new iterations of hardware or software prototypes which allow improvements to be demonstrated more rapidly, broken up into smaller chunks.
Another advantage of Agile methods is that multiple cycles of iterative development, testing and feedback speed up the evolution of a quality product, as well as allowing relatively rapid education of new members of the development team, allowing skills and experience with particular tools, client industries or user stories to be learned rapidly where prior experience may be lacking.
Despite many apparently compelling advantages of Agile methods, however, some development teams and companies prefer the perceived stability and predictability of a traditional development process and a "waterfall" project model.
They feel that the traditional approach of comprehensive documentation and specific up-front contract negotiation protects them from risk and allows one team to follow the work of another in a consistent and reproducible way. When your product involves a combination of hardware and software - as is often the case in today's world of embedded systems and connected Internet-of-Things devices, this involves special hurdles and some people feel that agile methods are not well suited, or insufficiently well developed, to handle this area well and that traditional engineering management strategies are the best when you're working with this type of technology.
Some possible disadvantages that you may encounter when trying to incorporate agile methods into your product development include an increase in the amount of data that you need to manage, in order to keep track of rapid revisions and many different versions of prototype hardware and software, and the increased complexity of your communication and coordination within your team and between the team and the customer as the project proceeds.
Some organisations may find that they have a hard time getting over the disadvantages of changing their processes and dealing with perceived increases in risk. There are real costs associated with your transition to new, different procedures and tools, and the perception that moving away from formal up-front contract and specification processes with your clients could expose you to increased risks can be, to some extent, correct.
Another one of the challenges facing agile management of projects with both hardware and software development components is that software can normally be developed relatively rapidly, and the software development process broken down into smaller chunks or iterations relatively easily.
On the other hand, it may require three to six months or more to develop an iteration of a hardware product and to demonstrate a working component or feature. Hardware is hard, as they say, and it is harder to break up the project into small components that can be worked on in small, short sprints with a working iteration of a product or component at the end. If the software must wait for the hardware to be created prior to final testing of the integrated system, this can add delays to your testing process.
Nevertheless, don’t let these put you off considering Agile for your project development. By working with experienced partners you can exceed your goals, and here at the LX Group we have the team, knowledge and experience to bring your ideas to life.
Getting started is easy - join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.
LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.
Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.