Many of us work in an Agile environment without even knowing it. To better familiarize ourselves with this methodology, we first need to cover the principles of Agile.
The core Agile Manifesto values are captured in twelve principles, five of which I will briefly discuss, highlighting:
The first priority; Satisfying the client
This is achieved by the process of early and continuous delivery. This also includes testing as early as possible. By implementing this as early as the planning and requirements phase, the team can easily identify defects before they escalate to a higher cost to the company to resolve. Therefore, we need continuous and proactive feedback sessions to ensure the development team, and the client/s are on the same page and satisfied with the current state of the solution.
Harnessing change for the customer’s competitive advantage
Adapting to change is most likely the most significant challenge that any team can face. Being the creatures of habit that we are – we tend to dread unpredicted change. That being said, we have to remain vigilant and be prepared for the unknown – such as when a client makes continuous requests for changes, potentially flipping the development team on their head. We must welcome their changing of requirements, even late in the development cycle. However, it’s vital to not jump to these changes as they need to be prioritized - too many changes can hinder core development.
A good starting strategy is to develop very low-level functions and components first. Then we present to the client and give them room to discuss before we proceed on further detail. As challenging as it may be to address these changes afterwards, it is our responsibility to ensure client satisfaction.
Business people and developers must work together daily throughout the project
Constant communication between the business analyst, UX, tester, and development team is essential to the project’s success. When we have all the requirements to begin on a system component, there can be a time during development where you will need to double-check on acceptance criteria. This can become a time-consuming task if the team is not in harmony.
Having daily standup meetings as a tool for constant communication will help ensure this collaboration remains positive. Especially with remote working, maintaining team morale is even more critical as it can significantly affect the overall productivity of team members and impact project delivery.
Working software is the primary measure of progress
A fully functional system cannot be successful if the expectations and needs of the users have not been met. Yes, you can have all requirements checked off on the specifications. However, the true success of the project is in the hands of the user. It’s important to consistently ensure the users are happy with the current solution before continuing to more complex aspects of the project.
At regular intervals, the team reflects on becoming more effective, then tunes and adjusts its behaviour accordingly
Sprint retrospectives are just as crucial as completing the tasks within a project. These meetings will take place at the end of a particular sprint to discuss essential aspects such as:
What went well in the Sprint?
What didn’t go well?
What could be improved?
What will we commit to improving in the next Sprint?
How has my team used the methodologies and the advantages we have experienced?
· Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
While in some cases, it’s not so evident that teams are working according to the Agile philosophy. However, by adapting the principles mentioned above, you can contribute to the success of your project by providing consistent feedback, enabling your development team to work closely with business, having a quantifiable measure for progress and embracing or predicting change that might occur.
Cheston Heyman
コメント