Billionaire businessman Sir Richard Branson has stated on numerous occasions that one of the keys to his entrepreneurial success is treating staff in such a way as to ensure they see themselves as team members whose contributions are important rather than ‘worker ants’ who go unnoticed among the masses. We can, and should, apply the same principle to agile software development.
One of the keys to agility is the kind of flexibility that allows a development team to meet customer demands that may change by the day. The team must move together to meet those changes head on, or they quickly fall behind and wind up with an unhappy customer who cannot understand why the team can’t seem to get it right.
In essence, the whole philosophy of agile software development is to empower the development team to work together in a congruent manner to deliver. It is less about individual developers doing isolated tasks and more about the development team all working together in a continuous movement from conception to delivery.
Empowered to Make Decisions
Agility empowers software teams to make decisions together. This is one of the key differences that separates the agile environment from the waterfall. In the waterfall model, a small handful of team leaders implement project management by creating a cascading series of stages in which decision-making is limited. Most decisions are made by the team leaders and then implemented from the top down.
Agile software development is different in that there are no cascading stages to follow. Agile disciples see what they do as more of an ongoing circular cycle that starts on the outside perimeter and gradually moves toward the center of completion. Decisions are made along the way by looking at the input of every team member involved in that particular area of the process. Even team members that might not be directly involved at any given point are encouraged to give their input as well.
Empowered to Deliver Together
Empowering team members to make decisions naturally results in empowering them to deliver the finished product together. It all starts by sitting down as a team to prioritize the development process. From there, each member goes about his or her business to get the development cycle moving. Decisions are made, code is developed, and team members regularly meet to evaluate their progress and goals.
This empowerment creates ownership among team members from start to finish. The result is a team that is committed to delivering an excellent product, on time and at cost. They also know they will either succeed or fail together. That knowledge is a tremendous motivator for taking ownership of a project and seeing it through to the end.
Empowered to Get Involved Early
Lastly, agile software development empowers every member of the team to get involved from the earliest stages. There is a downside to this: the early stages of a project may be less efficient than desired because there are more people involved than are necessary. But early involvement from all team members pays huge dividends in the end, making a little bit of inefficiency a lot more bearable.
What we observe from agile software development is a team that is empowered to create. Team members find that they are not merely writing lines of code to fulfill their obligations to a larger, ambiguous project whose results will never be known. Rather, they are creating something special that they can take great pride in. And when they hand that project off to the customer, they know that their creation actually means something.