lean (5)


Basecamp Shape Up Product Development Summary

Ryan Singer has documented Basecamp product development and delivery methodology in the ebook Shape Up – Stop Running in Circles and Ship Work that Matters. Shape Up describes Basecamps process of taking raw ideas, working through a shaping process to narrow to a core problem, remove any unknowns / risks / deep rabbit holes, add project boundaries, prefer appetite over estimates, create a pitch, bet on the work with a six week build cycle, and handover the work to a small, empowered build team to discover the work through doing, building scopes of work, communicating progress through Hill Charts, use scope hammering and working in small vertical slices in a continuous delivery mindset, attacking the most unknown / riskiest work early in the six week product development cycle.

Key Messages:

  • Use a shaping process to define & validate a problem, to address any unknowns or risks
  • Focusing on appetite instead of estimates
  • Prefer bets, not backlogs
  • Bet on a six week cycle with a circuit breaker at the end
  • Small empowered teams owning cycle outcomes
  • Deliver small vertical slices of the problem space
  • Build has two distinct phases – discover and validate (uphill), and known / execute (downhill)
  • Scope will grow as the delivery team learns more about the space, continuously hammer scope to deliver on six week commitment / cycle.

Please see below my notes / snippets (copied from Shape Up ebook without permission), you can download a free copy of Shape Up from basecamp: https://basecamp.com/shapeup/shape-up.pdf.

Notes

Six week cycles

  • Strict time box, acts as a circuit breaker, by default no extension.

Shaping the work

  • Senior group works in parallel to cycle team – focused on appetite (how much time do we want to spend)

Team fully responsible

  • Making hard calls to finish the project (cycle) on time

Targeting risk

  • The risk of not shipping on time. Solving open questions before we commit to a cycle. Build vertical deliverables, integrate early & continuously, sequence most unknown work first.

Part 1 Shaping

Wireframes are too concrete (give designers no room / creativity – design anchored)

Words are too abstract (solving a problem with no context, hard to understand scope & make tradeoffs)

Good Shaping:

  • Its rough
  • Its solved
  • Its bounded

Shaping is kept private (closed door) until commitment to a cycle is made

Two work tracks (cycles)

  • -> One for shaping
  • -> One for building

6 week cycles, shaping leads into building:

Shaping 1 | Shaping 2
————-> Building 1 | Shaping 3
————————–>Building 2 | Shaping 4
—————————————> | Building 3
—————————————————->  | Building 4

 

Appetite

  • Small batch (one designer, one or two programmers for one or two weeks)
  • Big batch (same team size, 6 weeks)

Fixed time, variable scope: An appetite is completely different from an estimate. Estimates start with a design and end with a number. Appetites start with a number and end with a design

Analyse a customer problem – we asked when she wanted a calendar. What was she doing when the thought occurred to ask for it?

Breadboarding

Use words, or fat-marker visuals to achieve.

Iterate on original idea

Fat marker visuals

  • Avoid getting into a high level of fidelity, or into the weeds

Do stress-testing and de-risking (find deep holes and challenges which could hinder)

The Pitch

Prefer pitches to be asynchronous communication – i.e. give people time to review offline in their own time, only escalate to real-time when necessary (i.e. meeting with key stakeholders) and give notice in advance

People review pitch and add comments (i.e to poke holes / ask questions – not to say no to the pitch, that’s for the betting table)

Part 2 Betting

Bets, not backlogs – big backlogs are a big weight we don’t need to carry. Backlogs are big time wasters – constantly reviewing, grooming and organising.Each 6 week cycle, a betting table is held where stakeholders decide what to do in the next cycle – containing a few well shaped, risk reduced options; the pitches are potential bets

  • If a pitch was great, but the time wasn’t right (there is no backlog), individuals can track the pitch independently and lobby for it again six weeks later

Its easy to overvalue ideas – in truth ideas are cheap – don’t stockpile or backlog. Really important ideas will come back to you.

6 Week Cycle

Cool Down

After every 6 week cycle, we schedule two weeks for cool down. This gives leaders enough time to breath, meet and consider what to do next and programmers and designers are free to work on whatever they want (i.e. fix bugs, explore new ideas, try out new technical possibilities).

Project teams consist of one designer & two programmers or one designer & one programmer (normally). A team spending an entire 6 week cycle is called the big batch team, and the team working on small projects (1-2 weeks) is called the small batch team.

The output of the betting meeting is called a cycle plan.

The cycle plan is a bet with a potential payout at the end of the cycle.

Cycles are dedicated commitments – uninterrupted time for the team to focus. The team cant be pulled away to work on something else. When you make a bet, you honour it.

  • “When you pull someone away for one day to fix a big or help a different team, you dont just lose a day. You lose the momentum they built up and the time it will take to gain it back. Losing the wrong. Hour can kill a day. Losing a day can kill a week.”

We only plan one cycle ahead, and can always introduce critical work in the next cycle. If it’s a real crisis, we can always hit the breaks – by true crises are very rare.

Having a fixed 6 week cycle without any potential for increased time acts as a circuit breaker, preventing runaway projects and projects which overload the system. If a project doesn’t finish in the six weeks, normally means a problem occurred in the shaping phase – perhaps time to reframe the problem. “A hard deadline and the chance of not shipping motivates the team to regularly question how their designs and implementation decisions are affecting scope”

What about bugs: Unless its a P1/P2 (i.e. a crises) they don’t naturally get priority over existing planned work, they can wait. This is how we address bugs:

  1. Use cool-down period
  2. Bring it to the betting table
  3. Schedule a bug smash (once a year, usually around holidays – a whole dedicated cycle to fixing bugs)

For projects larger than a 6 week cycle, we shape them (break them down) into 6 week cycle and only bet 6 weeks at a time.

Place Your Bets

  • Depending on whether we’re improving an existing product or building a new product, were going to set different expectations about what happens during the six week cycle.
    • Existing Products – Shape the work, bet on it, build.
    • New Products – broken into three phases:
      • 1. R&D mode: Learn what we want by building it (time boxed spikes, learn by doing), no expectation of shipping anything.
      • 2. Production mode: Shape the work, bet on it, build. Shipping is the goal (merging to main codebase), however not necessarily to end customers yet so we maintain the option to remove features from the final cut before launch
      • 3. Cleanup mode: A free for all, reserved capacity to finish things, or address things forgotten, bugs etc, no shaping, no clear team boundaries with work shipped continuously in as small bites as possible. Leadership make “final cut” decisions with cleanup not lasting longer than two cycles.

Examples

Betting table questions & debates

  • Does the problem matter?
  • Weighing up problems (options) against each other
  • Can we narrow down the problem (Pareto – 80% of the benefit from 20% of the change)
  • Is the appetite right (do we want to spend $xxx / weeks / cycles on this problem)?
  • Is the solution attractive?
  • Is it the right time?
  • Are the right people available?

After the betting table has finished, a kick-off message is posted on which projects we’re betting for the next cycle and who will be working on them

Part 3 Building

Assign projects, not tasks. Nobody plays the role of “taskmaster” or the “architect” who splits the project up into pieces for other people to execute.

Team defines their own tasks and work within the boundaries of the pitch.

Team have full autonomy and can use their judgement to execute.

Done means deployed. All QA needs to happen within the cycle.

A Basecamp project is created, chat channel and kickoff call.

First two – three days is radio silence from the team as they dive deep into the details and get aquatinted with the problem.

Team starts of with an imagined tasks, and through discovery learn about the real tasks to complete. Teams discover by doing the real work.

Integrate one slice

Pick a small slice of the project (ie design, backend & front end coding) to deliver end to end to show progress and gain feedback

Start in the middle

Start at the core of the problem (ie core screen and adding data to a database) and stub everything else out, rather than at the entry point (i.e. logging in). When choosing what to build first:

  • It should be core
  • It should be small
  • It should be novel (things you’ve never done before, address risk / uncertainty)

Organise by structure, not by person

Allow teams to self organise around a problem, understand the scope, form a mental image, breaking down into parts that are no longer than 1-2 days effort – a series of mini scopes.

Scopes become the natural language of the project at the macro level. It will help communicate status and progress.

Scoping happens over time as the team learns (not necessarily all up front); You need to walk the territory before you can draw the map. Scopes need to be discovered by doing the real work; identifying imagined vs discovered tasks and seeing how things connect (and don’t connect).

How do you know if you have scoped right?

Usually takes a few weeks to get a clear understanding of scope

A typical software project is split into cake layers (front end & backend work, thin slices). Watch out for icebergs, which can see a lot more back end or a lot more front-end work; look to simplify, reduce the problem and/or split these into seperate projects.

There will always be things that don’t fit into specific scope buckets, we refer to these tasks a chowder.

Mark tasks which are nice to have with a leading ~ to identify nice-to-haves (to sort out from must-haves).

Show Progress

We have to be cautious if big up front plans – imagined tasks (in theory) vs. real tasks (in practice).

As the project progress, to-do lists actually grows as the team makes progress (making it very hard to report progress of an imagined up front plan).

The problem with estimates is they don’t show uncertainty (or confidence level).

  • If you have two tasks, both estimated to take four hours:
    • the team has done task 1 many times and you can be confident in the estimate
    • The team has never done task 2 or it has unclear interdependencies (lots of unknowns) is uncertain and a low confidence estimate

We came up with a way to see the status of a project without counting tasks and without numerical estimates – by shifting the focus from what’s done or not done to what’s unknown and what’s solved. We use the metaphor of the hill.

The uphill phase is full of uncertainty, unknowns and problem solving (ie discovery). The downhill phase is marked by certainty, confidence, seeing everything and knowing what to do.

We can combine the hill metaphor with the scopes to plot each one as a different colour on the hill.

A dot that doesn’t move over time is a red-flag, someone might be stuck and need help (the Hill Chart identifies this without someone needing to say “I dont know / I need help”). Changes languages and enables managers to help by asking “what can we solve to get that over the hill?”. A non-moving dot can also indicate work is progressing well, but scope is significantly increasing with discovery, the team can break scope apart into smaller scope or redefine / reshape the problem.

Sometimes tasks backslide, which often happens when someone did the uphill work (i.e. discovery) with their head (i.e. imagined) instead of their hands (practice). Uphill can be broken into three tasks:

  1. “I’ve thought about this”
  2. “Ive validated my approach”
  3. “I’m far enough with what I’ve build that I don’t believe there are other unknowns”

Teams should attack the scariest / riskiest scope first within the cycle (given more time to unknown tasks and less time to known tasks).

Journalists have a concept called the inverted pyramid, their articles start with the most essential information at the top and add details and background information in decreasing order of importance. Teams should plan their work this way too.

Deciding when to stop

There’s always more work than time. Shipping on time means shipping something that’s imperfect.

Pride in work is important for quality and morale, but we need to direct it at the right target. If we aim for perfect design we’l never get there, at the same time we dont want to lower our standard.

Instead of comparing up to an ideal, compare down to a baseline – seeing work as being better than what customers have today – “its not perfect, but it works and is an improvement”.

Limits motivate trade-offs, with a hard six week circuit breaker forces teams to make trade-offs.

Cutting scope isn’t lowering quality. Makes choices makes the product better, it differentiates the product (better at some things).

Scope Hammering

Quality Assurance

Base camp (for millions of customers), have one QA person. The designers and programmers take responsibility for the basic quality of their work and the QA person comes in towards the end of the cycle and hunts for edge cases outside the core functionality. Programmers write their own tests and team works together to ensure the project does what it should according to what was shaped.

We think of QA as a level up, not as a gate or check point.

The team can ship without waiting for a code-review, there’s no formal checkpoint. But code review makes things better, so if there’s time, it make sense.

When to extend a project

In rare cases we’ll allow a project to run past its deadline / cycle and use the following criteria:

  • The outstanding tasks must be “must haves”
  • The outstanding tasks must be all “down hill” – no unsolved problems, no open questions.

The cool down period can be used to finish a project, however team needs to be disciplined and this shouldn’t become a habit (points to a problem with shaping or team performance).

Move On

Shipping and going live can generate new work – through customer feedback, defects and new feature requests.

With customer feedback, treat as new raw ideas which need to go through the shaping process.

  • Use a gentle no (push back) with customers until ideas are shaped and problem verified. If you say yes to customer requests, it can take away your freedom in the future (like taking on debt).

Feedback needs to be shaped.

Summary

As base camp has scaled to 50 people, we’ve been able to specialise roles:

  • Product team (12)
  • Specialised roles of designers and programmers
  • Dedicated Security, Infrastructure & Performance (SIP) handles technical work, lower in stack and more structural
  • Ops team (keep the lights on)
  • Support team

With this structure, we don’t need to interrupt the designers and programmers on our core product team working on shaped projects within cycles.




Top 8 Books for Technical Leaders

We’re always in the search to develop and maintain high performing teams, reduce risk, improve quality and increase speed to market. The below books have helped in the journey to become a better information technology / software professional and technical leader. The books discuss productivity, leading / managing knowledge workers in creative work, growing technical leadership skills, agile leadership, lean thinking, change & financial management.

Peopleware: Productive Projects and Teams – Tom DeMarco & Tim Lister

Peopleware - Productive Projects and Teams 

Peopleware is a great book for leaders of knowledge workers and creative environments. Through their experience and research, DeMarco and Lister provide examples on how to enable productive teams and describes common productivity killers. Peopleware discusses:

  • How to keep staff happy, retention high, burnout low.
  • How to setup your team environment for maximum productivity.
  • How to create a learning culture.
  • Setting up the office and work environment to maximize flow time and team work.
  • Leadership, management, goal alignment and networking.
  • Factors that will lead to teamicide – i.e. breaking teams.
  • Creating a culture of transparency and trust.
  • Empowering people to define methods most appropriate for their work, rather than strict adherence to prescribed methodologies.
  • Tips for effectively and pragmatically managing risk and change management.
  • How to run effective meetings, avoid ceremonies and ensure working meetings have outcomes and are efficient and effective.
  • How to grow community and culture, make work fun, enable innovation, keep motivation high and teams happy.

You can find a detailed Peopleware: Productive Project and Teams summary here.

You can review and purchase Peopleware: Productive Projects and Teams on Amazon.com.au.

 


The Manager’s Path: A Guide for Tech Leaders Navigating Growth & Change – Camille Fournier

The Managers Path

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<<Summary In Progress >>>

You can review and purchase The Managers Path: A Guide for Tech Leaders Navigating Growth and Change on Amazon.com.au.


Leading Geeks – How to Manage and Lead the People Who Deliver Technology – Paul Glen

Leading Geeks

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<< Summary In Progress >>>

 

You can review and purchase Leading Geeks – How to Manage and Lead the People Who Deliver Technology on Amazon.com.au.


Management 3.0 Leading Agile Developers, Developing Agile Leaders – Jurgen Appelo

Management 3.0

Management 3.0 is a book designed for the agile manager / leader and is presented via a synthesis of theory, science, nature and practical real world experience of Jurgen Appelo. Through understanding the differences between ordered systems (i.e. predicable) and complex systems (i.e. unpredictable), better structures, processes, methods and approaches can be used to manage, lead & motivate teams, reduce risk and increase the chance of success. Management 3.0 discusses:

  • The differences between ordered-systems and complex-systems and selecting the right method for your environment and challenge
  • Improving chances of success by embracing a constant flow of failure, learning & evolving cycles
  • Reviews existing agile methods such as RAD, Scrum, XP,  Lean, CMMI, PMBOK, Prince2, RUP and some of their limitations including the CHAOS report on project failure.
  • Discusses the role of complexity – the state between order & chaos where innovation & creativity thrives.
  • Highlights the importance of social networks within an organisation and osmotic communication (overhearing conversations & information). Connectivity of an individual & team is one of the best predictors of performance.
  • How to manage a creative environment including core tenants of safety, play, work variation, creative visibility,  and an environment which challenges the comfort zone.
  • How to create an environment of motivation for knowledge workers
  • Enabling self organising teams which are best suited for complex/dynamic environments, delegating and enabling decisions to be made at the right level (where the knowledge resides). Through aligning constraints, setting boundaries & protecting the environment, managers can define direction and shared goals of autonomous teams.
  • How to develop competence within individuals & teams and capture key project performance metrics for feedback loops
  • Communication and feedback ideas
  • Organisational structure, team size & makeup and generalising specialist / t-shaped individuals
  •  Embracing continuous change in search for system optimisation through adaption, exploration & anticipation.
  • Continuous improvement through plan – do – check – act cycle and similar models. Often as the team tries different methods to improve productivity it will take one step back and two steps forward.

You can find a detailed Management 3.0 summary here.

You can review and purchase Management 3.0 Leading Agile Developers, Developing Agile Leaders on Amazon.com.au.


The Lean Startup: How Constant Innovation Creates Radically Successful Businesses – Eric Ries

The Lean Startup

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<< Summary In Progress >>>

You can review and purchase The Lean Startup: How Constant Innovation Creates Radically Successful Businesses on Amazon.com.au.


Leading Change – John P. Kotter

Leading Change

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<< Summary In Progress >>>

You can review and purchase Leading Change on Amazon.com.au.


The Mythical Man-Month – Fred Brooks

The Mythical Man Month

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<< Summary In Progress >>>

You can review and purchase The Mythical Man-Month on Amazon.com.au.


Beyond Budgeting – Jeremy Hope

Beyond Budgeting

<<< Summary In Progress >>>

<<< Summary In Progress >>>

<<< Summary In Progress >>>

You can review and purchase Beyond Budgeting on Amazon.com.au.


 

I hope you’ve found the above books useful. Have I missed any books you think software / information technology professional and leaders should read?
Would love to hear your thoughts and feedback below…

 

* As an Amazon Associate I earn from qualifying purchases…



Principles Of Software Development

A set of guiding principles for software development, applying rule of thumb over strict governance.

P1:    Build in the simplest way possible (KIS).

P2:    Prefer working in smaller increments, build for fast feedback, refactor as necessary. Apply the rule of 3.

P3:    Be a commercial developer (consider build cost, support cost & total cost of ownership) and provide regular updates on progress.

P4:    Be flexible in your approach depending on problem at hand – prototype / spike / hack for early customer or technical feedback and build solid, testable, maintainable, clean & quality code once feature/concept proven.

P5:    Apply the Testing Pyramid approach to quality assurance

P6:    Pick the best tool / technology / approach for the job at hand. Consider optimising for the whole; globally rather than locally.

P7:    Apply 12 factor app design, with architecture emerging. Consider the *ilities, make trade-offs visible as shouldn’t necessarily design for all – see fitness function fit.

P8:   Collective (collaborative) code ownership – the sum of all experiences leads to better software.

P9:   Follow Robert C. Martin’s ’the boy scout rule’: leave the code better than you found it.

P10:    Follow the Agile Documentation Manifesto. Prefer working software over documentation.

P11:  Replace manual processes with automation – automate all the things, reduce waste, improve throughput.

P12:   Be disciplined – taking shortcuts / taking on technical debt can be an option short term, but left unpaid almost always leads to poor longer term outcomes; a reduction in team productivity, cost-effectiveness and increased risk.

P13:  Work at a sustainable pace, limit work-in-progress (WIP), stop starting and start finishing.

P14:  Design for failure (error driven design); consider all the things that could go wrong such as hardware failures, network failures, database failures, system slowness, upstream & downstream system failures, cancellations, time-outs, non-happy-day user flows etc.

 




Agile Documentation Manifesto

Agile documentation should:

  1. Keep it simple (KIS), keep it lean (KIL).
  2. Clear and unambiguous.
  3. Lightweight, dot points, single sentences, to the point.
  4. Consistent presentation with whitespace.
  5. Well designed, organized, structured.
  6. Prefer diagrams over words.
  7. Easily searched and navigated.
  8. Easily updateable.
  9. Just in time (JIT).
  10. Stable (dont document rapidly changing work).

Ideally documentation should convey information clearly, concisely, reduce information silos (i.e. knowledge only known by an individual/team) and reduce re-learning time across teams & organisations.

 

 


Reference Material

Extract from  Agile Modelling:

Agile documentation principles

  • The fundamental issue is communication, not documentation.
  • Agilists write documentation if that’s the best way to achieve the relevant goals, but there often proves to be better ways to achieve those goals than writing static documentation.
  • Document stable things, not speculative things.
  • Take an evolutionary approach to documentation development, seeking and then acting on feedback on a regular basis.
  • Prefer executable work products such as customer tests and developer tests over static work products such as plain old documentation (POD).
  • You should understand the total cost of ownership (TCO) for a document, and someone must explicitly choose to make that investment.
  • Documentation should be concise: overviews/roadmaps are generally preferred over detailed documentation.
  • Travel as light as you possibly can.
  • Documentation should be just barely good enough.
  • Comprehensive documentation does not ensure project success, in fact, it increases your chance of failure.
  • Models are not necessarily documents, and documents are not necessarily models.
  • Documentation is as much a part of the system as the source code.
  • The benefit of having documentation must be greater than the cost of creating and maintaining it.
  • Developers rarely trust the documentation, particularly detailed documentation because it’s usually out of sync with the code.
  • Ask whether you NEED the documentation, not whether you want it.
  • Create documentation only when you need it at the appropriate point in the life cycle.
  • Update documentation only when it hurts.

 

When is a document agile?

  • Agile documents maximize stakeholder ROI.  
  • Stakeholders know the TCO of the document.  
  • Agile documents are “lean and sufficient”.
  • Agile documents fulfill a purpose.  
  • Agile documents describe “good things to know”.
  • Agile documents have a specific customer and facilitate the work efforts of that customer.  
  • Agile documents are sufficiently accurate, consistent, and detailed.  

 

 




Software Delivery – Optimise for predictability or productivity?

This blog post was inspired by a recent work rant:

/Rant
It may be worth having a conversation around what a delivery plan is (and isn’t). Once the delivery-plan has been communicated, it will likely be out of date as we’re working in a unpredictable complex system (not an ordered predictable system). I hope we consider the delivery plan as an alignment tool which will constantly change as we learn, react & adapt (not as a stick for fixed dates/deliverables). If we need a guaranteed delivery plan and dates, then perhaps we need to use a different method of planning & delivery (perhaps Waterfall, with lots of buffer, contingency & lead times).
/End Rant

Often when delivering software we have two competing interests; being predictable in delivery (i.e. hitting targets / deadlines) vs. maximising productivity (delivering valuable output). For this article we’ll define predictability as ‘delivering software features on time, to budget and to an acceptable level of quality’ and define productivity as ‘maximising value-add features, maximising learning and minimising waste’. From experience these two concepts can be opposing and depending on the type of work at hand can land your initiative in a different place on the scale below in figure 1.

Figure 1. Predictability vs. Productivity in software delivery

Often the more predictable a team needs to be, the less actual value adding work (or validated learning) it will produce, and will often partake in poor processes and generate low-to-no value-add artefacts. My hypothesis is if two independent teams were to solve the same problem, within the same environment, with the same constraints and technical stacks etc (i.e. identical space), the team choosing to be more predictable would be between 10% to 40% less productive. The more predicable team would spend more time on upfront analysis, design, architecture, upfront spikes on unknown areas, more time breaking down work into detailed tasks, estimating & planning. They would then likely deliver in larger batches and have longer release cycles, but the team would hit delivery targets, budgets and be predictable – happy days (or so we think)!

I suspect the more productive team would be less predictable, most likely starting by completing a high level delivery plan upfront (i.e. a mud map), identify dependencies with long lead times (early on), look to attack hidden complexities through working software and be constantly evolving their delivery plans, budgets and forecasts. The more productive team would spend less time producing upfront artefacts such as business requirement documents (BRDs), solution architecture documents (SADs), detailed work breakdown structures, detailed delivery plans & budgets, but would plan to deliver the smallest vertical increment of working software, and continue to iterate and build based on rapid feedback from the environment. Valuable working software would provide the best feedback, documentation and risk reduction and any artefacts required such as architecture diagrams, user documentation etc would be produced just in time. The team would frequently evolve the delivery plan based on historic velocity with just enough detail to communicate dependencies, ensure alignment, communicate actual & forecasted dollar burn-rate and set/reset delivery expectations as value is realised and the ecosystem changes.

Methods of Software Delivery

The Waterfall method is an extreme example of large up-front effort with little to no early value and long lead times, Scrum introduced time-boxed, value adding increments and lands in the middle of Predictability vs. Productivity scale and Lean / Kanban method is an example of a fluid, flow based delivery method as seen in figure 2.

Figure 2. Schedule based vs Flow based software delivery methods

Extreme caution should be used when moving too much towards big up front delivery planning (such as the Waterfall method) where there is a need to try to understand and solve all problems at the start of a project, as highlighted in the 2015 Standish Chaos report smaller projects have a much higher chance of success, and in all project sizes Agile methods delivered success 39% of the time (challenged 52%, failed 9%), compared to Waterfall which delivered success 11% of the time (challenged 60%, failed 29%) . Ignoring Waterfall, the predictable team above may choose the Scrum methodology and assuming a 7 person delivery team, two week sprint and a 40 hour work week we see the following time spent on Scrum rituals per team member:

  • 15m daily standup
  • 4hr backlog grooming, story breakdown & estimation
  • 1hr sprint planning
  • 1hr showcase
  • 1hr retrospective

Total of: 9.5 hours per sprint or 12% of sprint time per team member
Total of : 66.5 hours of team time per sprint

Spending time breaking down the backlog into smaller backlog items, discussing visual and technical designs, teasing out complexity & dependencies, poker-planning and thinking about execution are very valuable activities which lead to higher confidence levels and better predictability. With a little bit more work relatively-estimating the delivery backlog, some historic velocity and some contingency built in, the predictable team can now forecast delivery in the 2-3 month window with a level of confidence.

The productive team may feel spending 12% of their time on rituals as heavy and would look to spend minimal time on overheads. As work comes in and is prioritised, the team would break work down into small (similar sized) items and tackle the next most important issue, continuously deploying value and seeking feedback. They would likely spend less time breaking down work and planning, and more time doing and assessing the results; more of a continual flow based method. Often the flow-based delivery teams are good at forecasting days-to-a-week of work, but not great at forecasting weeks-to-months of work, and are often less predictable than a typical Scrum team, but arguable more productive.

The culture of the productive team is likely to be more focused on being brave, attacking problems, compelled to action, taking calculated risks, rewarding failure & learning cycles, supporting each other and focused on getting things done whilst the predictable team will likely play it more safe, be more risk adverse, compelled to analysis and more focused on delivering to expectations rather than striving for stretch goals. The culture of the team and the broader ecosystem the team operates within is a major influencer on the teams ethos; to be predictable or to be productive.

The above example indicates both extremes of the predictability vs. productivity, there are many different considerations when choosing where to land on the scale and my hypothesis above assumes a certain context & problem; however many things needs to be considered such as:

The type of work at hand – is it well known, repeatable, complex or unknown?

Following the Cynefix framework, where does your work or ecosystem fit?

Are you operating in business as usual mode (BAU) of an established well understood application?

Are you building a new application from scratch and don’t fully understand the customer problem or domain?

Are you working on a pure innovation front, or with bleeding edge technology?

The team & individuals

How experienced are the team within the current ecosystem and technology?

How much career & technology experience does each team member have; graduate, junior, mid or senior?

How much cumulative experience does the team have (a team full of graduates, mid-tier developers or senior specialists or a good mix of all)?

Do you have an established, battle hardened team, or a newly forming team (going through Tuckman’s forming, storming, norming performing phases)?

The size of the feature, application or system

Are you building a small increment to an existing application or are you building an entire business support system?

Are you modifying a standalone feature, or a full customer or business workflow?

Are you building for a local market, or one that spans across language, time and culture?

The surrounding ecosystem of the feature, application or system

Are you working in a startup, trying to find customers, or in an established and highly regulated industry such as banking or insurance?

Do you have millions of customers on a legacy platform?

Do you have full freedom of ways of working to define your own processes, or are you bound to an existing corporate environment?

How much lead time does the business need for change management and go to market activities?

How many up-stream or down-stream dependencies do you have, and what are their lead times?

How easy is it to make a change in your ecosystem, how much effort is required to handle changes to an upfront plan?

The initiative, project or program of work in play

Are you working on a single, isolated system with limited dependencies or part of a complex, interconnected large ecosystem?

Are other teams and systems dependent on the work you’re producing to deliver on a program of work?

How many people are involved in the initiative, project or program of work – one team of 5 people, 15 teams and 150 people or hundreds of teams and thousands of people?

The lifespan of the feature, application or system

Following the lifespan of an feature, application or system by Kent Beck – Explore, Expand, Extract & Extinct

Is this feature a learning and innovative piece of work (i.e Explore) and needing extreme productivity and validated learning cycles?

Is this application or system scaling up and expanding (i.e Expand) and needing to overcome technical, system, process & people limitations?

Is this feature being delivered to an existing large customer base (i.e. Extract) where predictability and profitability are key drivers?

Is this feature, application or system being delivered at end of life (i.e. Extinct), hard to coordinate & expensive to change?

All problems are inherently different

Experience has taught me there’s often more than one way to solve a problem, each having a unique context & ecosystem; one size never fits all. Like most things in life, to move forward some trade-offs are likely required and most teams will find themselves somewhere in the middle of the scale, doing enough work to be predictable, without suffering significant productivity loses.

Where do you fit on the scale of predictability vs productivity?
What are your unique needs?
How fast do you want to go?
How predictable do you want to be?