|Source: Digital.gov https://www.digitalgov.gov/2015/01/16/how-to-run-an-agile-project-in-government/|
The most popular software development methodology today is called Agile, and is based on short, iterations called sprints which are designed to quickly produce results. The software in progress is used to get further input from users. Agile is designed to meet customer requirements more quickly than approaches which emphasized production of documents which would only become working software month or years later.
Nearly everyone claims their approach to software development is Agile, and formal solicitations from government and commercial customers often ask for promises to use Agile as well as industry certifications for project personnel such as "scrum masters" who lead the sprints.
Just because software developers say they are using Agile does not make it so. My company InfoStrat is often called in to rescue projects that are supposedly Agile but are running behind or heading in the wrong direction. Here are some warning signs that we look for to find out that a project has departed from Agile principles:
- There is nothing to demo. In an Agile project, each sprint results in deliverables which should work even if they are not functionally complete. If you ask for a demo and there is nothing to show, be suspicious.
- Form is valued over function. In Agile, the goal is working software, but some projects are more focused on creating documentation than making a system work.
- Users are nowhere to be seen. Agile cannot work without input and feedback from users. If you attend meetings to discuss a project and notice that users are missing, this could mean they are being kept at arms length from the project.
- People and teams disappear from time to time. A common feature of Agile is a short, daily meeting called a stand-up in which project participants provide updates. Frequent in-person or online meetings are common in Agile development.
- The development team is not motivated. Software development depends on people, not just their individual skills but also the way they work together as a group. This is true for any software development methodology, but in Agile personnel weaknesses are hard to hide.
If your software project shows any of these symptoms, you could be in big trouble. Good development teams take take for introspection and improving their processes, so you can encourage them to remedy these symptoms and refocus on what really matters for your project.
Although we work with technology, software development is a people business. There are many ways to stifle performance of your team, or to create a team that does not work well together. I will explore some of the solutions to these problems in future blog posts.