While Agile methodology has been in use for around 15 years, it wasn’t until the past few years that it became widely adopted in the tech world.
Many companies have begun using Agile in an attempt to keep up with industry standards, albeit, often in rather superficial ways that incorporate aspects of Agile while not changing fundamental cornerstones of company culture.
I came across an interesting article in App Developer Magazine that I think will be very useful for those readers who would like to know how to dive even further into the world of Agile.
Here’s a summary of the tips they list:
- Clearly define goals for development
Developers are often thrown into a project without knowing at what point the task will be considered completed. Expectations need to be set so that developers can do their work without having to change course midway, knowing that certain criteria will be tested and accepted when finished.
- Have each team member estimate according to story points
The task of generating estimates often falls on the lap of project managers. Allowing each member to share the responsibility is crucial according to best Agile practices. If the team estimates according to story points, those points will remain consistent even if time goals are not reached.
- Limit the size of stories
This will also lead to more accurate estimates. A maximum point value system for team stories to be allowed into a sprint should generally be 5-8 points. When a story is limited and kept small, the goals are more clearly defined and the points more valuable and consistent.
Small stories also allow for an easier prediction of story completion on the burn-up chart. The cycle time should include time for code review, integration, deployment, testing, bug fix and demo.
- Breaking old habits
Begin using empirical data for time estimation. Acceptance of the data-driven approach is critical to the Agile process.
Reports will rarely be clear and linear. The burn-down will help identify bottlenecks and help to better estimate time needed based on actual experience and pace.
- Allocate time for quality
Avoiding “hard commit” sprints is a good way to improve quality of output. Otherwise, QA will often get messy along with many other pitfalls that often result from these type of sprints. Additionally, developers should commit to automated unit, integration and system tests. Unit tests need to be integrated from the beginning and should be utilized throughout the process.
- Have an automated infrastructure
Anything that can be automated, should be. This includes tests, as was mentioned earlier, builds, deployments, etc…