Conclusion
Throughout this learning module, we learned the basics of the Agile methodology including its history, pillars, principles and key components. We also compared Agile to the Waterfall traditional software development methodology to show the benefits of adopting Agile. The following is a summary of the key points regarding Agile:
- Agile is a software development methodology that revolves around taking incremental and iterative steps to create a software program.
- Developers will incrementally build their software projects using iteration that may vary in length and workload known as “Sprints”.
- Agile emphasizes the importance of constant communication between the developers and the customers or stakeholders and encourages openness to changing requirements.
- Working software is the only measure of progress in Agile so developers should not spend copious amounts of time on estimation or unnecessary planning.
- User stories in Agile are high-level descriptions of a feature request or requirement written from the customer’s perspective.
- Epics are a collection of stories that form a longer cohesive user requirement.
- Tasks are technical todo item that are created from user stories and help developers organize their work. Larger tasks can be broken down into smaller subtasks.
- Spike are todo items that revolve around learning more about a framework or tool needed for a project and often precede tasks.
- Sync points are an opportunity for developers to get together and assess the bigger picture, evaluate their progress and update their workflow or requirements based on feedback.
- An Agile Board is a tool that helps developers keep track of their user stories and tasks and often contains several columns or containers including a Product Backlog, Sprint Backlog, an Icebox as well as status containers like Todo, In Progress, Awaiting Review and Done.
- User stories in Agile can have different priority levels with higher priority user stories taking the precedence in terms of implementation order.
- Agile projects of all sizes have higher success rates and lower challenge and failure rates compared to Waterfall projects of comparable sizes.
- The Agile methodology is best suited for teams working on a single project at a time.
We also learned how to implement and use an Agile Board in GitHub Project and Microsoft Planner.
GitLab
We did not cover creating an Agile Board using the GitLab “Issues Board” tool because it does not provide enough flexibility to adopt the Agile methodology proposed in this learning module. Containers or lists in the GitLab “Issues Board” must have a set scope i.e., they must share the same label, assignee, milestone or iteration to appear in the same list. This limitation prevents from creating the containers (Product Backlog, Sprint Backlog, Todo, etc.) needed for our recommended Agile Board template and moving issues (user stories/tasks/spikes) through them. Thus, if you are starting a new project and you want to use the Agile methodology covered in this learning module, we recommend opting for GitHub over GitLab since GitHub Projects is much more suited for the creation of an Agile Board.
References & Additional Resources
- Manifesto for Agile Software Development
- #NoEstimates (Allen Holub) - YouTube
- What Is Agile Methodology? (A Beginner’s Guide) • Asana
- Agile Project Management: A Beginner’s Guide - Adobe Workfront
- Prioritizing User Stories in Agile Projects by Alex Ponomarev - The Startup - Medium
- How to Use GitHub for Project Management - Zenhub Blog
- Learn how Git fits into an agile workflow - Atlassian
- Agile Project Success Rates are 2X Higher than Traditional Projects by Anthony Mersino
- Using GitHub as your Agile Project management platform (torre.me.uk)
- The CHAOS Report 2015
- Can Scrum give its real value by running multiple projects in parallel with only one team?
- How to manage working on multiple projects simultaneously? – The Agile Director
- Agile project management: Sprints in Project for the web