I work with numerous dev teams and clients in various industries and find that it is extremely challenging for many companies to function in an agile fashion. The trouble is that it is easy for people to talk about and use tools but it is extremely difficult to change behaviour. As a tech person myself I also love the bells and whistles that come with new technology or new approaches to solving problems but all over the world tech people (engineers) are the people that shape the future of the projects and solutions that needs to be built and struggle to change the way they deliver these projects in a way that fits the requirements of the solution rather than fitting their hunger to try new exciting things during the delivery of the task at hand.
When we are empowered by technologies such as VSTS (Visual studio team system) / TFS / JIRA or similar Agile management and delivery software it makes us think that we can now control the outcome of our solutions in a more structured way because we have the tools to make us more agile. We can sit down with business and not commit to timelines because we are sizing the work that needs to happen on complexity and not on commitment of time. We are in control because we determine what happens in the next sprint and we can keep tabs on our progress everyday and in every sprint or release. When something slips we assume the stakeholders will know since they have access to what we can see from a reporting perspective. All of these are part of various topics and aspects we might think about once we are empowered by tools as mentioned , but we forget the most important principles.
- Tools don’t make us AGILE ,Team work does.
- Being AGILE does not mean that there is no structure, in fact there is more structure and control than before.
- Being AGILE means that we look for opportunity to continuously improve ourselves and our teams and improve the quality of the product and the value that we deliver to our clients.
- Being AGILE means that we should communicate about problems when they occur and adapt to them as quickly as possible.
- Being AGILE means we need to add value right from the beginning. We should listen to what the client/ product owner requires and not what we think is the best thing to do.
- Being AGILE means that you have to share your experience with other. TEAMWORK is a very important important aspect of the success of a project (A team is only as good as the weakest point within it)
- To be AGILE you need to be willing to learn things that are outside of your comfort zone because that’s how we improve the team itself and also build contingency for the future
- To be AGILE you need to be consistent.
- To be AGILE you need to be focused on the task at hand and not worry about what is coming 6 months along the line.
In my opinion the recipe for being agile is talking a ubiquitous language within your teams so that everybody is on the same wave length when it comes to communication and understanding. Your teams also needs to move away from old ways of thinking and this takes some serious effort from the entire team including both the tech staff and business staff.
The process of becoming AGILE is a learning curve for everyone and remember it does not happen over night. But the most important aspects to remember is that we have to think about PEOPLE FIRST as software and solutions are not built by tools or processes but by PEOPLE.
Share your opinion, I would like to hear what you think