Agile Software Development Coles Notes

TLDR

Featured image

Oh man ‘Lord of the Flies’ I still have nightmares about passing the conch.

Here are some things you may have missed about Agile Development. What follows are some points I learned about Agile from books like Scrum: The Art of Doing Twice the Work in Half the Time and doing Agile Web Development for the past few years. It hasn’t always been by the book but the general idea has always been there.

What is Agile

Deliver value faster

Don’t have to wait for months before something usable can use is deployed

Welcome change

As you work on the project you learn things you didn’t know in the beginning so don’t throw out the new knowledge act on it and make the necessary changes.

Deliver working software frequently

It should always be usable, every sprint needs to produce an MVP, this frequency is up to you but 1 week or 2 week sprints are recommended.

Introspective

At the end of sprint discuss what went well and what can be improved next time.

Work together everyday, both the business team and the development team working in the same room on the same project resulting in a collaborative discussion between the team and client. The team should be composed of motivated individuals and given the tools to get it done along with enough trust to do it. There is no need to manage highly motivated team. Each player is a problem solver not a ‘coder’ or ‘manager’. You have to do many jobs. Your responsibility goes beyond your title.

Work at a continuous pace, not spurts of overtime and don’t put all the pressure on one part of the team. Software can be a large and daunting project so focus on one part you can build out and expand from there. Don’t get overwhelmed with the size and complexity of the project. It can be broken down into manageable components. Work on one component at a time.

Client may assume that what they say at the beginning is the scope and cannot be changed so they tell you all their wishes even though most are not providing value. If you allow for change then they can come up with better requirements later on when they have an MVP and have used it for a while. Assure them that this is the case.

lifecycle

Sprint

Once you decide what gets done in the sprint it’s fixed in stone, it cannot be changed. The team must be autonomous in implementing the sprint.

Estimating

There are several models to use for estimates:

BUS

Big

Uncertain

Small

T Shirt Size

XS S M L XL

Fibonacci Sequences

1 2 3 5 8 13 21

Versus Waterfall

How does Agile compare to the traditional Waterfall model of software development?

waterfall

A product increment is like a new version of an app with more features. In agile you take vertical slices versus a horizontal flow.

Cons of Agile

Different Types of Agile

Kanban

kanban

kanban

You can categorize as:

Scrumban

Pull/Push Issues

Roles

Board

Kanban style : Kanban Todo -> Backlog

scrumban

Triage/Feature Freeze

At the end of project identify what are the priority tickets and freeze the rest of the work. Only high priority items are done in triage stage.

Scrum

Teams

Scrum Roles

Product Owner

Scrum Master

Daily Standup

  1. what did you do yesterday to achieve goals
  2. what will you do today to achieve goals
  3. what are your impediments to doing it

Story Points

It’s ok to allocate points to customer service story if at this time the client needs a lot of help.

Retrospective

Discuss

Remember mistakes are not personal, success and failure is created as a team.

schedule

User Stories

As a <end user>   
I want to <desired action>  
so that <desired benefit>  

Who: needs it  
What: do they want  
Why: do they need it  

Story must be actionable before you can begin so define acceptance criteria. If you finish the criteria then the story is done.

Go deeper with INVEST

Independent: does not depend on other stories, can be done alone
Negotiable: if after talking to the team you have a better idea you should be able to change the story
Valuable: has value to users
Estimatable: can determine how much complexity this story has
Small: can finish in a few days
Testable: how do I know it works well

Velocity

How many story points can the team complete per sprint

velocity

Burndown Chart

Illustrated through an example

velocity

At the end of the sprints there should be no more points to do because there are no more stories to do.

velocity

Burnup Chart

velocity

Completed: what actually got done
Total: what needs to be done

Burnup Chart takes changes/additions/subtractions into account.

velocity

Although it may look like you were ahead in sprint 3 but actually points were removed which is visible in the Burnup chart unlike the Burndown chart.

Working Agreement

A statement of what’s expected from everyone on the team. Making everyone aware of what’s expected so there are no surprises. Eliminates people being upset about something, it can be very trivial like moving a meeting to a different hour. One team, one goal. You’re trying to all get on the same page.

Examples
• You’re always late to standup so let’s just move the standup
• Do meetings at the company meeting room instead of your desk
• If you’re going to interrupt me don’t just come to my desk, send me a message first