When you hear or see the word Agile, you might have some animosity towards it. Concepts such as scrum, sprints, user stories, daily stand up meetings, sticky notes and planning Poker may come to mind. However, I can say that none of these things make you agile. In the current IT industry, it may have been given a bad reputation due to its misuse or misunderstandings from its original intent.
Agile is simply a set of beliefs that a team can use when making software. If you follow these beliefs when creating software, then you are doing or being agile.
The Agile method was created by 17 software programmers/engineers who met and discussed better ways of software developing alternatives to the traditional methods of the time. What came out is the ‘The Agile Manifesto’ which you can find in this link https://agilemanifesto.org/. The Agile Manifesto is 68 words and simply says the following:
Looking at the first value, what this means is that tools and processes are secondary to individuals and interactions in agile. No matter how well defined and detailed a process is, unanticipated changes could occur. This situation can be overcome by individual team members sitting together regularly and discussing a solution. Innovation can happen when the mind is free from rigid processes. Tools and processes should be used where they can help us to get the work done more easily. We should not allow it to inhibit or govern the way we work.
The second value of working software over comprehensive documentation means creating software for the client and showing it to get feedback rather than getting feedback on features listed on large documents. This reduces the time spent on documentation and increase time spent developing working software. However, this does not mean no documentation at all. The development should be documented in a concise manner so that it can be used for any future reference.
Customer Collaboration over contract negotiation means involving the customer and showing them the built software regularly to get feedback and make changes on what the customer requires rather than working towards what was in the contract. It’s important for all team members to be involved in the communication with the customer to understand their requirements and build a system that works for them.
Responding to Change over following a plan means instead of following a rigid plan which inhibits changes later in the process, we give ourselves more agility by embracing changes as an opportunity to provide value to the customer.
In addition to the manifesto, there are 12 Principles of Agile which support the Values above.
For me, the following principles have stood out as making a large contribution to improving software delivery however the others are of value as well which I am keen to explore further depending on the project and team. You don’t need to adopt all these principles and values right away. Take a few at a time and work on them until you have mastered them.
At Magnetism, our clients are the first priority and I always think of the value and benefit the client will gain from the project and our work. Delivering software that is of value quickly to the customer improves their opportunities in this changing market to respond to their business needs. Our client’s passion is our passion.
It’s important for all team members to communicate daily on the project to discuss any issues and the best way is face-to-face interaction or calls. This is the most efficient and effective method as it’s the quickest way to resolve and avoid any misunderstandings rather than waiting for a reply to an email or a message. Delays in communication delay the shipment of the software to the client.
We can deliver a product to a client quickly when issues are kept at a minimum. This can be achieved by focusing on improving development techniques and designs continuously. The most effective way of improving is through reflection. This can be done by having retrospectives regularly after each project to discuss what went well; what did not go well; and how to improve and carry out these actions.
Next time you hear the word Agile, remember that it is just a set of beliefs that you can easily implement in your organisation. The agile principles and values provide a common foundation for teams to make decisions on the best way to make software. Doing scrum, user stories, daily stand ups etc. does not make you agile. If you believe and practice these agile principles and values within your organisation, you will become agile and will be able to make better software quickly, simply and effectively. Also remember in Agile, there isn’t one best way of doing something. It is allowing the team to determine what values and principles work best for them which gives the real agility.
Agility is the key to staying relevant in today’s fast paced world.