Jacco Meijer
Blue waves

Agile Scrum

The Agile Scrum framework is flexible enough to be used in many different ways. Here's one way of working.

Agile

Scrum being a subset of the agile way of working. This what the Agile manifesto says:

  • Individuals and interactions over processes and tools.

  • Working software over comprehensive documentation.

  • Customer collaboration over contract negotiation.

  • Responding to change over following a plan.

That is, while there is value in the items on the right, we value the items on the left more.

Scrum

Scrum principles are loosely defined. It does not define one specific way of working. For communication purposes it is often useful to define a more specific way of working. This is what this blog post is about.

Scrum compared to waterfall

  • Scrum allows you to go back, waterfall is forward only.

  • Scrum defines the product owner as the only decision making person, waterfall defines a person for each phase.

  • A scrum team works on the analysis phase and the actual implementation, waterfall defines a team for each phase.

  • Scrum allows for handling complex projects, waterfall does not.

This diagram became known as the Stacey Matrix and has been frequently adapted by other writers, often in ways not consistent with Stacey's original.

Handling complex projects

This diagram became known as the Stacey Matrix and has been frequently adapted by other writers, often in ways not consistent with Stacey's original.

The why

Team identity

The team identity, or team purpose, is why the team exists and is usually defined by three components:

  • financially related (e.g. team funding)

  • growth related (e.g. improve conversion rate)

  • customer related (a.g. improve response times)

The team identity is what a traditional organization defines as a boss.

Stakeholders

Stakeholders represent the why. Each stakeholders links to (a part of) the team identity.

The what

Team vision

Given the team identity, the team vision defines what the teams wants to achieve (e.g. less clicks and faster delivery).

Product owner (PO)

The PO is a stakeholder that is given the mandate to execute the team roadmap and make decisions.

The PO is responsible for the requirements which are kept in an ordered backlog. This is the what in the Stacey matrix.

The how

Team roadmap

The team roadmap tells how to achieve the goals. It breaks up the vision into smaller ideas. This bring focus.

Developers

Developers are responsible for which technology to use. This is the how in the Stacey matrix.

Scrum Master

The scrum master tries to improve each sprint and is responsible for organization and coaching. The scrum master services to the organization, the developers and to the PO.

Sprint

  • Each sprint has a goal that defines what the team wants to achieve.

  • A sprint usually lasts two weeks but can be any length within one month.

  • Shorter sprints give more feedback loops and better planning.

  • Reaching the sprint goal is more important than finishing all stories.

Events

Daily Scrum

  • Are we on track reaching the sprint goal?

  • Scrum does not define the how, a standup is a popular way.

  • Everyone in the team shares: what did I do, what will I do and do I need help.

  • Tracking what everyone is doing works well for up to five persons.

Planning

  • A new sprint is created and the PO defines the sprint goal.

  • When it's hard to set a goal, check the team vision and roadmap.

  • The biggest advantage of sprint planning is flexibility.

  • All developers add stories to the sprint. These stories are required to meet the sprint goal.

  • The PO alone does not force stories to the sprint.

  • The PO does not plan upcoming sprints because that would prevent flexibility.

  • The team agrees on what can be done in the sprint.

Estimation (part of planning)

  • Scrum does not define the how.

  • The team tries to deliver value in a predictable way in order to gain trust.

  • With proper estimation the team prevents the "we do not know" answer.

  • Story sizes that work well in the backlog are: 0:XS, 1:S, 2:M, 3:L, 5:XL, 8:XXL

  • Sizes 13 and 20 can be used but must be split up later

  • Estimation answers to the question: how much effort is it going to take?

  • Finishing the sprint gives the estimation meaning: did we estimate correctly?

  • Over time the team becomes more predictable.

Review

  • Each sprint is closed with a review.

  • Demo. What is the feedback?

  • Sprint goal. Did the team make it?

  • Team vision. How close are we? What are our future needs?

  • Backlog. Last moment to reorder.

Retrospective

  • Each review is followed up by a retrospective.

  • The team tries to improve working together in a three hours time boxed event.

Activities

Refinement

  • Clarifies the what and the why of the stories in the backlog.

  • Stake holders clarify the why.

  • The PO focuses on direction, not on the what and the why.

  • Prevent focussing on the solution of a story.

  • Refine everything that is on top of the backlog and is not in the current sprint.

  • Generally an average of 10% of the time is spend refining.

Sub tasks and hours

Themes, epics, features, stories and sub tasks.

NPM7 and @npmcli/arborist

@npmcli/arborist is a powerful library that handles the new npm 7 workspaces. This blog is about a simple make tool that uses the library.

Comparing React app, Nextjs and Gatsby

A new React project starts with a React toolchain. Main tools in the chains are SSR, React server components and GraphQL.

Versioning strategy for npm modules

It is important to be able to bump the version of a npm package without side effects.

React component themes and CSS variables

Creating React components with flexible themes by using CSS variables.

Content modeling with variants

The efficiency of a variant field in a content model.

Green oil

Documentation

Documenting a software project is challenging. Here's a few simple guidelines that help a team writing clear documentation.

Orange yellow oil

On Javascript transpilers, bundlers and modules

There's Javascript transpilers, modules, bundles and bundlers. This is a brief overview of all of these.

Dark orange bubbles

Javascript history

In 1986 David Ungar and Randall B. Smith developed Self at Xerox PARC. Inspired by Java, Scheme and Self Brendan Eich created Javascript in 1995.

Blue waves

Agile Scrum

The Agile Scrum framework is flexible enough to be used in many different ways. Here's one way of working.

Blue water bubbles

Contentful, Netlify and Gatsby four years later

What did we learn from using Contentful for four years?

Wheelroom hero image

What happened to Wheelroom?

Founded in 2018. Started to fly in 2020 and abandoned in 2021. What happened?

Orange oil

Typescript interface for React UI components

How to define an interface for React UI components that prevents breaking changes.

Orange green oil

Naming React components

What's in a name? A clear naming strategy helps developers communicate. Most devs rather spend time writing component code than wasting time on a good component name.