Top Banner
Pieces of the Big Agile Puzzle - problems and solutions 11.11.2013 ANTTI VIRTANEN +358 44 507 0050 [email protected]
36
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agilelessons scanagile-final 2013

Pieces of the Big Agile Puzzle -problems and solutions

11.11.2013

ANTTI VIRTANEN+358 44 507 0050 [email protected]

Page 2: Agilelessons scanagile-final 2013

Agenda

1. The context and background1. Ammunition for ad hominem arguments2. The projects we will talk about3. Lean and agile4. What is a big agile project (our context)5. Some relevant human limitations6. Things they didn‟t teach you at the university

2. Fundamental principles to follow1. The foundation you need2. Some unsatisfactory solutions

3. Actual problems and applying the principles4. QA and throwing stones

Page 3: Agilelessons scanagile-final 2013

Who? What experience?

Page 4: Agilelessons scanagile-final 2013

Short background

About meProgrammer and a jack of all trades for some time.

Hobbyist -> Professional developer -> Researcher -> Developer -> Architect

About Solita250 employees. Enough to make serious things happen.

Growing, succeeding, profitable, constantly improving.

Expert at making complex tailored business software.

Serious capacity also at BI/DW, integration, consulting and UX.

Page 5: Agilelessons scanagile-final 2013

The projects (in TOP-3 for Solita)

ERP (2007-2010) Kirre (2010-2013)

Multiple teams Yes. Also multi-site. Yes. (multi-site)

Long build times Hours :-( Semi-solved.

Quality pressures Yes. Delayed much. Extreme. Delayed a a bit.

DB tables (oper.) Approx. 800 Approx. 300

Codebase LOC About 1 million About 300k

Parallel work? No. Yes,after a fashion.

Happy developers? No.. :-( Yes.. mostly

Complex domain? No, but unfamiliar. Yes. And unfamiliar.

Page 6: Agilelessons scanagile-final 2013

More about the ERP project

Solita‟s “death march” projectUnrealistic timetable.

Arrogance on our part.

A Pyrrhic victoryWe possess a certain amount of sisu.

There were no good books or guides to follow.

My reason for being here today.

Picture: Sisukas Nainen @ youtube

Page 7: Agilelessons scanagile-final 2013

Kirre, the second big one..

Kirre keeps track of all land property ownership in Finland.Problems would make Big Money very angry. Failure in this project would have been fatal to Solita as a company.

Keys to successSisu and stubborness again. Defeat does not exist in this dojo. Less arrogance. Hired professional coaches.Books had been written. Studied a lot.Not brute-forcing. Reshaped “process” totally.

This feels like a real victory.There were issues, but this is something I can be proud of.

Page 8: Agilelessons scanagile-final 2013

Agile and lean.

“Lean architecture and Agile feature development are not about working harder. They are about working „smarter‟ in the academic or traditional computer science senses of the word „smart.‟”

Coplien, Lean Architecture

Page 9: Agilelessons scanagile-final 2013

Big project

What is different?Why can‟t humans cope with it?What new skills are required

Page 10: Agilelessons scanagile-final 2013

What is a big project? How is it different?

Bigger system poses technical challengesLonger build times, slower test runs, complex deploymentsToo many details.Some documentation is required.

People issuesMultiple teams -> management and communication challenge.Treating people as resources does not work.Training new people is seriously expensive. Motivation will falter after three years with no productiondeployment.

Page 11: Agilelessons scanagile-final 2013

Human limitations

Some well-understood limitsContext-switching is not free.Eight hours per day available for work. At most.Communication is unreliable, unpredictable and time-consuming. There are limits to handling complexity

Social limitations and issuesThere is no ”team” of 25 people.Team formation is tricky

We are quite irrationalRational choice is an illusionWe are geared towards short-term profits and instant rewards.

Page 12: Agilelessons scanagile-final 2013

Engineering is not enough

Programming

UI design

Testing

Marketing Systems thinking

Psychology Mathematics

Philosophy Drama and acting

We value things on the left.. in a big project things on the right even more!

Page 13: Agilelessons scanagile-final 2013

Fundamental principlesThese are simple principles. But not easy.

Decoupling Composition over monolithic ideasAvoid up-front decisionsSeparation of concernsCreating MVPs

Page 14: Agilelessons scanagile-final 2013

Parallelism is the paramount concern

Teams move simultaneously toward a shared goalA team must have a subgoal (purpose)

Do not hinder with accidental obstacles

Pull value, don‟t push (be lean)Single PO or synchronization is push.

Pushing does not truly scale.

Central authority is also a risk factor.

Page 15: Agilelessons scanagile-final 2013

Avoid monoliths,favor composition

You can build a huge monolith in parallel…

It‟s a design and engineering decisionFunctional programming

OS products and frameworks often

Decoupling functional specifications in a moment..

Page 16: Agilelessons scanagile-final 2013

Avoid up-front decisions

When is the ”last responsible moment”?Who knows.. but choosing technology up-front is too early

Pushing the moment further away:1. Paper prototypes. (sketching function)2. Initial boundaries and API (Form follows function)3. Iterate and write some code. (live form)

(For this path I recommend Coplien‟s book Lean Architecture.)

Page 17: Agilelessons scanagile-final 2013

Separation of concerns

Avoid leaking implementation detailsExternal API – UI – data model

Tool selectionA big project does have very special needs!Automate everything (that DevOps thing). Composable tools.

Rethinking toolsMaven is a repository, not a build tool.Jenkins is UI for cron, not a CI tool.

Page 18: Agilelessons scanagile-final 2013

Aim for MVP at all levels

You absolutely must postpone features.But which ones are nice-to-have ?

You need feedback early onCreate a minimal PoC implementationApply this to programming, design, specifications etc.

A ”big picture” is too big to seeThe MVP/prototype makes it clear as a side-effect!

Page 19: Agilelessons scanagile-final 2013

Be wary of easy solutions

Page 20: Agilelessons scanagile-final 2013

”Solutions” that don‟t address the fundamentals

Technological miraclesDecoupling and separation of concerns (SOA, REST , ESB)Opinionated frameworks (Rails)Management Tools

”Hiding” complexity (BPML, TOGAF, MDM)Simplified recipes

You can‟t ”Teach Yourself Lean in 21 Days”! Preposterous!

To be fair, some of these have value.. But you really can’t solve a human problem with technological magic tricks!

Page 21: Agilelessons scanagile-final 2013

Principles in real world(What did we actually learn?)

Conditions of greedy selection no longer hold for the backlogDecoupling of functional specifications Normal form in relational database considered harmfulFocus on results, not tasksTeams around functionality, not layers and technologyLeadership is not management

Page 22: Agilelessons scanagile-final 2013

How big is the elephant?

Three ways to search the problem space:Depth-first (to measure complexity and risk)

Breadth-first (to get an overview)

Explorative mapping (black art, you may get interestingfindings)

I highly recommend balancing between all threein a big project. Early on!

Page 23: Agilelessons scanagile-final 2013

Backlog priorization

What is the most valuable item?The most risky one?

-> reduce risk

The one with most direct value to end-user (lean maxim)?-> customer value

Getting a core workflow done in it‟s entirety? -> feedback and reduction of risk

In a big project it is a good to rethink the criteria.

Page 24: Agilelessons scanagile-final 2013

Decoupling functional specs (case Kirre)

Three features: Work queue, search and application handlingSeparate from the user‟s point of viewSo parallel work comes naturally?

Why not? Some bad reasonsThe database is a monolithic normal form design.The dev tools do not support this.The build pipeline tool doesn‟t allow it.The specification team (the ”architects” or ”PO-team”) is a separate silo.

We had limited success decoupling these things. But it is definitely the right direction to go!

Page 25: Agilelessons scanagile-final 2013

The relational database posse is lacking

The RDBMS mindset (for waterfalls)A static view of the end state. The ”normal form” is by definition a monolith!

Relational model is not broken per se But ”agile developer” is not served by the vendors.Normal form doesn‟t deal with uncertainty and agile.Big projects are especially vulnerable to these issues!

Part of the NoSQL hype is a result of this attitude.

Page 26: Agilelessons scanagile-final 2013

All models are wrong. Some are useful.(actually we retain normal form here)

Application

Queue Assignee

Applicationgroup

DecisionApplication

typeProperty

Queue_view

UI for queue

handling

Views are great!• Early feedback• Parallel development• Hidden complexity• Decoupling

Page 27: Agilelessons scanagile-final 2013

Everyone. Must. Focus. On. Results.

Bad projects (tasks) Good projects (goals) The elite (results)

What is the next task today? What are you going to work on today?

What are you going to accomplish today?

How many tasks left in the backlog? Is the invoice integration ready?

No - when will it be ready?

Does the user have all essential invoicing functionality?

No - when will it be deployed?

Are we doing what was specified in the contract?

Did we bill all the hours?

Are we heading to the right direction?

Is the customer happy?

Are we using the resources (time and money) in the best possible way?

What is the most valuable thing to do next?

Page 28: Agilelessons scanagile-final 2013

The amazing Kirre project tool (data migration)

Team‟s purpose

Short term plan (Kanban style)

backlog

Test plan

The purpose statement helped maintain focus and prioritize backlog.

Page 29: Agilelessons scanagile-final 2013

About team organization

Tempting the dark side isIntegrations – back-end –UI…

Where‟s the end-user? Where‟s the use-case?

Ok, use-case/scenario based then?You need that cross-functional team. Got one?

You cannot force team formation!

The use-case based view is the right way. But not easy.After many changes we reinstated the integration team.

Page 30: Agilelessons scanagile-final 2013

Leadershipment (case Kirre)

A single project manager, about twenty peopleA bottleneck, not parallel! A risk!

When faced with a serious situation. (final deadline)Divided the responsibility (leadership) to five individualsNo reports (or management duties) requiredNo holds barred, bare fist prison rules.. Just make it happen

Did it work? It was total pwnage and salvation of the project! The Great Enablers

For each team: Autonomy – mastery - purposeSupport and coaching. A scrum master who was not part of the team.Big picture priorization over teams. Together with everyone.

Page 31: Agilelessons scanagile-final 2013

To “make it so”, important considerations

Voluntary. If a sane person commits, it‟s a good sign.

You must delegate power and freedom too. You need a manager who is not insecure!

Leader must have some respect from peers.Leadership is based on ”social influence” by definition.

A title is not related to this.

It’s about getting things done.It‟s not a ”tech lead” role.

Page 32: Agilelessons scanagile-final 2013

Summary

Page 33: Agilelessons scanagile-final 2013

To summarize.. How to make it alive..

Flexibility in scope, budget and timetables are required.Also the customer must accept this and trust you.

Respect the issues related to sizeMotivation, complexity, human limitations.

No single architect, PO, manager to make all decisions.

Do not ”manage” and control, lead insteadGood employees don‟t need ”management”

Get real cross-functional teams. Motivated & autonomous.

Page 34: Agilelessons scanagile-final 2013

Stuff that victories are made of

Lean Agile

Continuous feedback

HonestyTransparency TrustMotivation

Empowered teams

Parallel development

End-user needs

MVP first Form follows function

Compositional designContinuous Integration

Continuous Delivery

Realistic shared vision and plan (backlog)

Continuous innovation Continuous flow

Automated tests

Use-cases in backlog

Page 35: Agilelessons scanagile-final 2013

Resources and further reading

Even more booksLean From The Trenches

Lean Architecture

Lean Thinking

Lean Software Development: An Agile Toolkit

The Toyota Production System

Rational Choice in an Uncertain World: The Psychology of Judgment and Decision Making

Nonviolent Communication: A Language of Life

Systems Thinking

Page 36: Agilelessons scanagile-final 2013

THANK YOU.

Antti Virtanen | [email protected]

@SolitaOy