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 behavior.
As a tech person I love all of the bells and whistles that come with new technology and approaches to solving problems. All over the world us tech people (engineers) are the ones that shape the future of projects and solutions that need to be built.
We are also the ones that struggle to change the way these projects are delivered in order to meet the solution’s requirements, rather than satisfying the hunger for trying new and 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 control the outcome of our solutions in a more structured way because we have the tools to make us more agile.
We can, therefore, sit down with businesses and not commit to timelines because we are sizing the work that needs to happen based on complexity and not on the commitment of time. We are in control because we determine what happens in the next sprint, and we can keep tabs on our progress every day, 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 about Agile:
- Tools don’t make us AGILE, teamwork does.
- Being AGILE does not mean that there is no structure, in fact there is more structure and control than before.
- Being AGILE 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.
- To ensure an Agile methodology, 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 others. TEAMWORK is a very 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 and focused on the task at hand and not worry about what is coming six months along the line.
In my opinion, the recipe for being agile is talking a universal language within your teams so that everybody is on the same wavelength when it comes to communication and understanding. Your teams also need to move away from old ways of thinking and this takes some serious effort from the entire team.
The process of becoming AGILE is a learning curve for everyone and it does not happen overnight. 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.