Agile is a software development methodology which I becoming popular day by day. It defines the mind set of many software development teams working across the globe. This article will walk you through the entire agile-scrum process and how as a developer you can contribute in agile way and deliver value. BTW, agile means ability to move quickly.
- Life Cycle of a Developer
- Barriers to value delivery
- Agile Adoption
- Plan Driven Vs. Value Driven
- Agile Manifesto
- Scrum – End-to-End Process
- Agile Estimation
- Scrum Status Board
- Agile Tools
Life Cycle of a Developer
1st interaction a developer have is with BA, they are responsible to document, track and describe the user requirements. But many times there are gaps in understanding the needs; which causes issue by various means. Image below shows what user wanted and what happened when it is implemented.
Stop the blame game
In many team settings, a developer is considered to be responsible for everything, right from understanding requirements to code to support testing, help in deployment and then resolve production issues. Well, I always believed that entire software development is a team effort. But at the end, in most cases developers bear most of the blame. So its no longer a Developer’s responsibility to own everything rather team owns it.
Team Barriers = Value Delivery Impediments
All .NET Development teams want to deliver value but on realistic grounds what are barriers which stops a team to deliver value.
Every team has dependency within and on people outside, the communication gap and lack of understanding of common goal is the root cause of Value Delivery Impediments.
Impact of Team Barriers
Well, most of the issues any software teams runs into has following outcomes:
Increased Cycle Times - This means that you have to work longer to get work completed.
Increased costs – More time means more money.
Dissatisfied users & Stakeholders – End user missed the milestone of feature being available and so it raises concerns for stakeholders as well.
Lost value opportunities – You are potentially not going to have more work from same client.
Agile-Scrum is most widely accepted methodology of Agile development. Term scrum is taken from sport rugby in which whole team works get the possession of the ball.
Plan Driven Vs Value Driven
Plan Driven (waterfall approach) is an old school which defines software development life cycle. Many teams are still doing that though but in waterfall plan takes precedence over value.
Value Driven (agile approach) is new way of building software, it gels teams, stakeholders and user very well and help them team receive early feedback and fail fast.
Manifesto for Agile Development
17+ people gathered in a ski resort and they came up with agile manifesto.
Understanding Type of Backlogs
In agile-scrum there are two type of backlogs
- Product backlog
- Sprint backlog
Product backlog is larger list of work items (in agile world known as User Stories), it is like a “Functional Specification Document” or System Requirement Specification Document or “Business Requirement Document” or whatever your organization likes to call it.
So whatever user requirements we have, all are stored in Product Backlog, backlog.
Sprint Backlog, Sprint is defined time, teams work on to deliver certain items from product backlog. But before teams start working on those items (User Stories), those need to be properly defined.
Scrum – End -to-End Process
Agile Scrum Ceremonies
Team works on a sprint for anywhere between 1-4 weeks. Ideal sprint duration is 2 weeks. So from Product backlog some User Stories are moved to Sprint Backlog and then team works on those for 2 weeks. During those two weeks following ceremonies are performed.
Sprint Planning, this is 1st thing which takes place before any work can begin. In this meeting team looks at User Stories which Product Owner thinks team should work upon in the next sprint. Team looks in detail at the given requirements, brainstorm, define/review acceptance criteria or the work, estimate and assign the work to team member(s).
Daily Stand-Up, this is status meeting among team(s) members, in this meeting each team member gives status on three criteria’s.
- What I did yesterday.
- What I will do today.
- Am I blocked?
Sprint Review, this takes place after each User Story is completed, so Product owner can accept the work.
Sprint Demo, this given an opportunity to the whole team and larger group of users to see all the work team has completed and see end-to-end functionality.
Sprint Retrospective, this gives opportunity to the development team to discuss three things
- What went well?
- What went wrong?
- What we want to improvise?
Agile offers two type of estimations:
- Story Points, this is most commonly used agile estimation technique.
- T-Shirt Sizing, some teams estimate User Stories in T-Shirt sizing.
Scrum Status Board
Agile, enforces daily status reporting and so many teams use various ways to track and show the progress on each user story. I found that a detailed board like following provides more visibility and track each task/activity related to a Sprint Item.
There are many tools available for agile-scrum teams, but I have found TFS and rally widely used in industry. Both work on similar agile-scrum concepts and are very user friendly. Below are the screenshots of TFS.
Sprint View in TFS
Workflow for Task Status
Drag and Drop support for ease
Though agile seems very easy to understand and implement, but it’s very challenging to apply it correctly and many organizations are not in agreement with what agile brings and its way of delivering things. Startups are usually known to follow agile rather well established companies at organization level. I.e. In a company a team might be doing agile but various other teams or company’s mindset might still be waterfall based. But agile is an amazing methodology to deliver more value; regardless of you are working in agile team or not it’s worth knowing about agile-scrum process.