The Agile Manifesto is a collection of 12 principles that were defined to address the challenges faced by software developers. In part 2 I give my thoughts on principles 5 to 8.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Too many organisations believe that they can just hire a group of relatively low-skilled programmers. They give them some wire frames and expect to successfully develop software. Coding is easy, right? This never seems to work all that well in practice.
Companies who invest in Agile teams, on the other hand, understand that success comes from a commitment and buy-in from the team members. The developers must be willing to work together collaboratively and learn from each other. They should respect one another and understand that people are a primary factor in successful software development.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
For a software team to work effectively there must be a constant buzz of intelligent discussion. Without it, people tend to fill in the gaps by themselves, which is very dangerous. It is vital to encourage an environment where collaboration and questioning is second nature.
We spend many happy hours sketching on scraps of paper or gathered around the whiteboard feverishly dreaming up interfaces, database table relationships or report types.
It is funny however, to look back at the sketches after a few months. What seemed to solve the latest logic conundrum when it was scribbled, now looks like one of my 3 year old’s drawings of a camel!
7. Working software is the primary measure of progress.
Well, it is, isn’t it?
For a software development team, that really is the only measure of progress.
Depending on the definition of ‘Done’ for your team, you should always aim to release a new iteration of your project after each sprint. You should be able to demonstrate the work that was completed during the last sprint to the business.
Holding up a wad of documentation, but not being able to present any new functionality or development is a failure to progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
It is vital to protect the team and keep them focused. A software build is more of a marathon than a short distance race. You must move at a pace to reflect this or you risk burnout, errors and a lack of accuracy.
Many non-Agile projects start slowly – “That 6 month deadline is ages yet”. As the deadline approaches, the pace quickens, to eventually requiring developers to work overtime to deliver the requirements.
The project manager’s role in Agile is to keep a delicate balance. They must be proactive enough to make sure everyone is comfortably busy, but not too busy that they feel under pressure or stressed into making mistakes. Stress stifles creativity, quality and alertness.
Conversely, if stakeholders are not aligned with the pace and are left waiting, their focus and interest in the project reduces.
All of those involved must be aware of the speed of the work, so they can deliver what is required from them. The project manager must maintain a steady stream of activity and avoid peaks and troughs.