Software Creation Mystery - http://softwarecreation.org

Can Software Team deliver like McDonalds?

McDonald's

What does a customer wants?

Usually your customer wants to know a simple thing – when your team will deliver working software based on agreed requirements. They naively want to safely bet on highly uncertain future outcome – delivery of the complex never created before system that completely fulfil their dreams.

The customer wants reliable McDonalds experience, but with a little tweak – they want to hand in their own exclusive menu, often created by people who don’t have any idea how to cook.

In short, the customer requires creative flexibility of Cooking Master Chef fortified by ability to predictably deliver hamburgers as McDonalds.

But, is it possible in our development reality to chase two opposing goals – Predictability and Flexibility in the same time?

Predictability vs Flexibility

Predictability vs. Flexibility

The best way to achieve predictability is standardization – formalize process, nail-down rules, follow and optimize them mercilessly. However, standards have negative effects – lower morale, inhibited creativity, reduced flexibility and slower response to changes.

Rapid adaptation is the best way to to be flexible – eagerness to quickly regroup and self-organize to address new challenges and creatively solve new problems. However, constant changes and creativity sparks lead to unpredictable and ad-hoc results without much opportunity to stabilize and optimize delivery.

Standardization is a crystallized answer to past events – how to repeat effectively something that was solved before and proved to work.

Adaptation is the response to current events – how to embrace unforeseen requests, challenges and events.

Standardization has own cost – processes and rules should be maintained, reviewed and optimized otherwise they will become source of overhead, rigidity and frustration. But if there is no standardization, lessons and best practices could be lost or not followed.

It is difficult, but possible to chase these two contrary goals in the same time. Build standards to solve repeating problems and optimize recurring activities. Adapt to meet new challenges.

Predictability vs. Flexibility details

Team Maturity Matrix

Development teams have different capabilities to strike both predictable and flexible delivery.

Team matrix

  • Amateurs – do even simple things… unpredictably
  • Explorers – capable of solving complex non-standard problems, but cannot guarantee time and budget (Ph.D guys)
  • Mechanics – very efficient with standard solutions, but struggle with new stuff (anal-retentive guys)
  • Regulars – predictability of delivery lowers for more challenging problems
  • Strike Force – deliver reliable results for any type of problem

Any team should grow from Amateur status, but rare team could become Strike Force that mastered both – predictable and flexible delivery. Than what direction of growth to choose? It depends on nature of projects and problems the team tackle.

Finding sweet spot

Growth Focus

Predictable delivery requires reduced variations in development process: uniform, ordered and consistent approach with focus on high efficiency.

Flexible delivery requires increased variations in the process: enabling more options, wider range of responses to improve fitness in changing environment.

These 2 goals could compliment each other. Predictability (with standardization) could bring consistency and stability in volatile and evolving development ecosystem. Adaptation helps to improve and find better standards and ideas for established processes.

process

Predictable delivery – reduce variations, increase efficiency and productivity
Repeatable, well known steps and technology – candidates for standardization (concrete rules)
Flexible delivery – increase variations and fitness
New, uncertain events, requests and challenges – adaptation and transformation (principles, patterns)
Development

  • Proven solutions
  • Standard development platforms and tools
  • Formalized architecture patterns and design conventions
  • Approved external libraries and vendors
  • Code standards

Stabilization and control

  • PM software
  • Production and Development Environments
  • Source Control
  • Iterations and process flows
  • QA
  • Development management

Checklists

  • Product launch
  • Security
  • SEO

Templates

  • User Stories
  • Architecture and Functional specifications
  • Test cases

Procedures

  • Interviews, hiring
  • New version release
  • Retrospectives

Automation

  • Unit and System Testing
  • Build and Deployment
  • System monitoring and validation

Elimination and optimization

  • Waste
  • Stress / overburden
  • Inconsistency

Measurement

  • Defects
  • Productivity
  • Time, resources, work-in progress
  • Deviation from standards
Development

  • Innovative and creative solutions
  • New platforms and emerging technologies
  • Experiments, prototypes, pilot projects
  • Design competitions
  • Stay on edge – use of modern libraries, tools and techniques

Expansion

  • New business opportunities
  • New products and features
  • Market niches and trends
  • Self-organization and initiative

Idea formation

  • Brainstorming
  • JAD sessions
  • Research
  • Analytics
  • Team suggestions
  • Customer feedback

Challenges and response

  • Competition
  • System problems
  • Emergencies
  • Conflicts
  • Team / organization changes
  • Unsatisfied users
  • Falling sales

Measurements

  • Growth
  • Rate of innovation
  • New ideas and creativity

So, can team deliver as McDonalds, but using exclusive menu? Yes, if they not only excel in programming, but also excel in the way they work – persistently re-evaluating approaches and improving both predictability and flexibility.

There are three simple requirements for the team

  1. Follow standards (minimal, adhering to principles)
  2. Challenge standards (not relevant, rigid, impeding, excessive)
  3. Introduce and Improve standards (from lessons learned, best practices, enhancing flexibility and value stream)

And you will build powerful development machine that continuously transforming to embrace fluid reality while keeping steadiness and predictability as McDonalds.

mcdonalds-team

AddThis Social Bookmark Button AddThis Feed Button


This blog have little value without you and your comments, thoughts and discussions. Please, leave your comments. You are welcome to debate and criticize any idea, but, please, don't attack other people. Thanks for your contribution!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe without commenting

Software Creation Mystery - http://softwarecreation.org
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .