SlideShare a Scribd company logo
ANTTI VIRTANEN
+358 44 507 0050
antti.virtanen@solita.fi

Pieces of the Big Agile Puzzle problems and solutions
11.11.2013
Agenda
1.

The context and background
1.
2.
3.
4.
5.
6.

2.

Fundamental principles to follow
1.
2.

3.
4.

Ammunition for ad hominem arguments
The projects we will talk about
Lean and agile
What is a big agile project (our context)
Some relevant human limitations
Things they didn‟t teach you at the university
The foundation you need
Some unsatisfactory solutions

Actual problems and applying the principles
QA and throwing stones
Who? What experience?
Short background
About me
Programmer and a jack of all trades for some time.
Hobbyist -> Professional developer -> Researcher -> Developer ->
Architect

About Solita
250 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.
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.
More about the ERP project
Solita‟s “death march” project
Unrealistic timetable.
Arrogance on our part.

A Pyrrhic victory
We 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
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 success
Sisu 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.
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
Big project
What is different?
Why can‟t humans cope with it?
What new skills are required
What is a big project? How is it different?
Bigger system poses technical challenges
Longer build times, slower test runs, complex deployments
Too many details.
Some documentation is required.

People issues
Multiple 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 production
deployment.
Human limitations
Some well-understood limits
Context-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 issues
There is no ”team” of 25 people.
Team formation is tricky

We are quite irrational
Rational choice is an illusion
We are geared towards short-term profits and instant rewards.
Engineering is not enough
Programming

Marketing

Systems thinking

UI design

Psychology

Mathematics

Testing

Philosophy

Drama and acting

We value things on the left.. in a big project things on the right even more!
Fundamental principles
These are simple principles. But not easy.

Decoupling
Composition over monolithic ideas
Avoid up-front decisions
Separation of concerns
Creating MVPs
Parallelism is the paramount concern
Teams move simultaneously toward a shared goal
A 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.
Avoid monoliths,
favor composition

You can build a huge monolith in parallel…
It‟s a design and engineering decision
Functional programming
OS products and frameworks often
Decoupling functional specifications in a moment..
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.
2.
3.

Paper prototypes. (sketching function)
Initial boundaries and API (Form follows function)
Iterate and write some code. (live form)

(For this path I recommend Coplien‟s book Lean
Architecture.)
Separation of concerns
Avoid leaking implementation details
External API – UI – data model

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

Rethinking tools
Maven is a repository, not a build tool.
Jenkins is UI for cron, not a CI tool.
Aim for MVP at all levels
You absolutely must postpone features.
But which ones are nice-to-have ?

You need feedback early on
Create a minimal PoC implementation
Apply this to programming, design, specifications etc.

A ”big picture” is too big to see
The MVP/prototype makes it clear as a side-effect!
Be wary of easy solutions
”Solutions” that don‟t address the fundamentals
Technological miracles
Decoupling 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!
Principles in real world
(What did we actually learn?)
Conditions of greedy selection no longer hold for the backlog
Decoupling of functional specifications
Normal form in relational database considered harmful
Focus on results, not tasks
Teams around functionality, not layers and technology
Leadership is not management
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 interesting
findings)

I highly recommend balancing between all three
in a big project. Early on!
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.
Decoupling functional specs (case Kirre)
Three features: Work queue, search and application handling
Separate from the user‟s point of view
So parallel work comes naturally?

Why not? Some bad reasons
The 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!
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.
All models are wrong. Some are useful.
(actually we retain normal form here)
Application
type

Application
group

Property

Decision

Application

Queue_vie
w

Queue

Assignee

UI for
queue
handling
Views are great!
• Early feedback
• Parallel development
• Hidden complexity
• Decoupling
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?

Does the user have all essential
invoicing functionality?

No - when will it be ready?
No - when will it be deployed?
Are we doing what was specified in the
contract?

Are we heading to the right
direction?

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

Did we bill all the hours?

Is the customer happy?

What is the most valuable thing to do
next?
The amazing Kirre project tool (data migration)
Team‟s purpose

Test plan

Short term plan
(Kanban style)

The purpose statement helped maintain focus and prioritize backlog.

backlog
About team organization
Tempting the dark side is
Integrations – 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.
Leadershipment (case Kirre)
A single project manager, about twenty people
A bottleneck, not parallel! A risk!

When faced with a serious situation. (final deadline)
Divided the responsibility (leadership) to five individuals
No reports (or management duties) required
No 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 - purpose
Support and coaching. A scrum master who was not part of the team.
Big picture priorization over teams. Together with everyone.
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.
Summary
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 size
Motivation, complexity, human limitations.
No single architect, PO, manager to make all decisions.

Do not ”manage” and control, lead instead
Good employees don‟t need ”management”
Get real cross-functional teams. Motivated & autonomous.
Stuff that victories are made of
Lean

Agile

Continuous innovation

Continuous flow

Continuous feedback

Use-cases in backlog

Parallel development

Continuous Delivery

End-user needs

Compositional design

Continuous
Integration

MVP first

Form follows function

Automated tests

Empowered teams
Realistic shared vision and plan (backlog)
Motivation

Transparency

Honesty

Trust
Resources and further reading
Even more books
Lean 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
@SolitaOy

Antti Virtanen | antti.virtanen@solita.fi

THANK YOU.

More Related Content

What's hot

Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best Practices
AMC Bridge
 
Biz Product Learnings
Biz Product LearningsBiz Product Learnings
Biz Product Learnings
Kinshuk Adhikary
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Jason Bloomberg
 
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Lisa Boyer Cooney (she/her)
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
Steve Green
 
Smart Housekeeping Apps
Smart Housekeeping AppsSmart Housekeeping Apps
Smart Housekeeping Apps
Kinshuk Adhikary
 
Why ask why? Try agile BI!
Why ask why? Try agile BI!Why ask why? Try agile BI!
Why ask why? Try agile BI!
Excella
 
Applying agile and lean principles to the governance of software and systems ...
Applying agile and lean principles to the governance of software and systems ...Applying agile and lean principles to the governance of software and systems ...
Applying agile and lean principles to the governance of software and systems ...
IBM Rational software
 
Business Value of Agile Methods: Using Return on Investment
Business Value of Agile Methods: Using Return on InvestmentBusiness Value of Agile Methods: Using Return on Investment
Business Value of Agile Methods: Using Return on Investment
David Rico
 
Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)
Richard Green
 
Plugin style EA
Plugin style EAPlugin style EA
Plugin style EA
Kinshuk Adhikary
 
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Jon Stevens-Hall
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
Charlotte Chang
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
atlantascrum
 
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealWhat can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
Carol Smith
 
Can We Do Agile? Barriers to Agile Adoption
Can We Do Agile? Barriers to Agile AdoptionCan We Do Agile? Barriers to Agile Adoption
Can We Do Agile? Barriers to Agile Adoption
TechWell
 
Agile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the UglyAgile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the Ugly
Tyrone Grandison
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
Rebecca Wirfs-Brock
 
Challenging The Role Of The Architect
Challenging The Role Of The ArchitectChallenging The Role Of The Architect
Challenging The Role Of The Architect
Kevin Francis
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 

What's hot (20)

Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best Practices
 
Biz Product Learnings
Biz Product LearningsBiz Product Learnings
Biz Product Learnings
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
 
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
 
Smart Housekeeping Apps
Smart Housekeeping AppsSmart Housekeeping Apps
Smart Housekeeping Apps
 
Why ask why? Try agile BI!
Why ask why? Try agile BI!Why ask why? Try agile BI!
Why ask why? Try agile BI!
 
Applying agile and lean principles to the governance of software and systems ...
Applying agile and lean principles to the governance of software and systems ...Applying agile and lean principles to the governance of software and systems ...
Applying agile and lean principles to the governance of software and systems ...
 
Business Value of Agile Methods: Using Return on Investment
Business Value of Agile Methods: Using Return on InvestmentBusiness Value of Agile Methods: Using Return on Investment
Business Value of Agile Methods: Using Return on Investment
 
Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)
 
Plugin style EA
Plugin style EAPlugin style EA
Plugin style EA
 
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealWhat can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
 
Can We Do Agile? Barriers to Agile Adoption
Can We Do Agile? Barriers to Agile AdoptionCan We Do Agile? Barriers to Agile Adoption
Can We Do Agile? Barriers to Agile Adoption
 
Agile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the UglyAgile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the Ugly
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
 
Challenging The Role Of The Architect
Challenging The Role Of The ArchitectChallenging The Role Of The Architect
Challenging The Role Of The Architect
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
 

Viewers also liked

Tga2015 documentationpipeline
Tga2015 documentationpipelineTga2015 documentationpipeline
Tga2015 documentationpipeline
lokori
 
Cost and pricing strategy
Cost and pricing strategyCost and pricing strategy
Cost and pricing strategy
sezgincvs
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
sezgincvs
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
sezgincvs
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
sezgincvs
 
Sezgin çavuş
Sezgin çavuşSezgin çavuş
Sezgin çavuş
sezgincvs
 
Clojure oikeassa projektissa, IT-Päivät 2014
Clojure oikeassa projektissa, IT-Päivät 2014Clojure oikeassa projektissa, IT-Päivät 2014
Clojure oikeassa projektissa, IT-Päivät 2014
lokori
 
Turkuagile agile contractmodel_13052014
Turkuagile agile contractmodel_13052014Turkuagile agile contractmodel_13052014
Turkuagile agile contractmodel_13052014
lokori
 
Market research desk research
Market research desk researchMarket research desk research
Market research desk research
sezgincvs
 
Location notes
Location notes Location notes
Location notes
adimohamed96
 
Swot analysis
Swot analysisSwot analysis
Swot analysis
sezgincvs
 
Development of a new indexing technique for XML document retrieval
Development of a new indexing technique for XML document retrievalDevelopment of a new indexing technique for XML document retrieval
Development of a new indexing technique for XML document retrieval
Amjad Ali
 
Environmental Risk Assessment by Mhammed Nour
Environmental Risk Assessment by Mhammed NourEnvironmental Risk Assessment by Mhammed Nour
Environmental Risk Assessment by Mhammed Nour
Mhammd Nour Hajjat
 

Viewers also liked (14)

Tga2015 documentationpipeline
Tga2015 documentationpipelineTga2015 documentationpipeline
Tga2015 documentationpipeline
 
Cost and pricing strategy
Cost and pricing strategyCost and pricing strategy
Cost and pricing strategy
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
 
Крым!
Крым!Крым!
Крым!
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
 
Operations and logistics
Operations and logisticsOperations and logistics
Operations and logistics
 
Sezgin çavuş
Sezgin çavuşSezgin çavuş
Sezgin çavuş
 
Clojure oikeassa projektissa, IT-Päivät 2014
Clojure oikeassa projektissa, IT-Päivät 2014Clojure oikeassa projektissa, IT-Päivät 2014
Clojure oikeassa projektissa, IT-Päivät 2014
 
Turkuagile agile contractmodel_13052014
Turkuagile agile contractmodel_13052014Turkuagile agile contractmodel_13052014
Turkuagile agile contractmodel_13052014
 
Market research desk research
Market research desk researchMarket research desk research
Market research desk research
 
Location notes
Location notes Location notes
Location notes
 
Swot analysis
Swot analysisSwot analysis
Swot analysis
 
Development of a new indexing technique for XML document retrieval
Development of a new indexing technique for XML document retrievalDevelopment of a new indexing technique for XML document retrieval
Development of a new indexing technique for XML document retrieval
 
Environmental Risk Assessment by Mhammed Nour
Environmental Risk Assessment by Mhammed NourEnvironmental Risk Assessment by Mhammed Nour
Environmental Risk Assessment by Mhammed Nour
 

Similar to Agilelessons scanagile-final 2013

Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
Dave Kellogg
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
Henry Jacob
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
OpenSource Connections
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
The Real Dyl
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
Lester Martin
 
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Alvar Lumberg
 
How to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software EngineerHow to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software Engineer
Product School
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the Ugly
Joshua Randall
 
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
South Tyrol Free Software Conference
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
Odd-e
 
Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best Practices
SitrusLLC
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
abdulrafaychaudhry
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
Jilles van Gurp
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without coding
Newton Day Uploads
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
Gary Pedretti
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
Borys Lebeda
 
Robert Mc Geachy Common Pitfalls Agile
Robert Mc Geachy Common Pitfalls AgileRobert Mc Geachy Common Pitfalls Agile
Robert Mc Geachy Common Pitfalls Agile
Robert McGeachy
 
Feb Apln OC Shawna C
Feb Apln OC  Shawna CFeb Apln OC  Shawna C
Feb Apln OC Shawna C
Conscires Agile Practices
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
Igor Moochnick
 
Agile concepts for quality and process engineers for slideshare
Agile concepts for quality and process engineers   for slideshareAgile concepts for quality and process engineers   for slideshare
Agile concepts for quality and process engineers for slideshare
Yuval Yeret
 

Similar to Agilelessons scanagile-final 2013 (20)

Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
 
How to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software EngineerHow to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software Engineer
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the Ugly
 
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
SFScon 2020 - Elia Rigo - A study about Project Management techniques in virt...
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
 
Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best Practices
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
 
Secrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without codingSecrets of going codeless - How to build enterprise apps without coding
Secrets of going codeless - How to build enterprise apps without coding
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
 
Robert Mc Geachy Common Pitfalls Agile
Robert Mc Geachy Common Pitfalls AgileRobert Mc Geachy Common Pitfalls Agile
Robert Mc Geachy Common Pitfalls Agile
 
Feb Apln OC Shawna C
Feb Apln OC  Shawna CFeb Apln OC  Shawna C
Feb Apln OC Shawna C
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Agile concepts for quality and process engineers for slideshare
Agile concepts for quality and process engineers   for slideshareAgile concepts for quality and process engineers   for slideshare
Agile concepts for quality and process engineers for slideshare
 

More from lokori

Smart Locks - too clever by half
Smart Locks - too clever by halfSmart Locks - too clever by half
Smart Locks - too clever by half
lokori
 
Turvallinen ohjelmointi -vierailuluento, 2019
Turvallinen ohjelmointi -vierailuluento, 2019Turvallinen ohjelmointi -vierailuluento, 2019
Turvallinen ohjelmointi -vierailuluento, 2019
lokori
 
Hacker Games & DevSecOps
Hacker Games & DevSecOpsHacker Games & DevSecOps
Hacker Games & DevSecOps
lokori
 
Developer is an attack vector
Developer is an attack vectorDeveloper is an attack vector
Developer is an attack vector
lokori
 
DevSec - build security in and dance like a pro!
DevSec - build security in and dance like a pro!DevSec - build security in and dance like a pro!
DevSec - build security in and dance like a pro!
lokori
 
Webapp security-tut-2017
Webapp security-tut-2017Webapp security-tut-2017
Webapp security-tut-2017
lokori
 
TTY turvallinen ohjelmointi 2017
TTY turvallinen ohjelmointi 2017TTY turvallinen ohjelmointi 2017
TTY turvallinen ohjelmointi 2017
lokori
 

More from lokori (7)

Smart Locks - too clever by half
Smart Locks - too clever by halfSmart Locks - too clever by half
Smart Locks - too clever by half
 
Turvallinen ohjelmointi -vierailuluento, 2019
Turvallinen ohjelmointi -vierailuluento, 2019Turvallinen ohjelmointi -vierailuluento, 2019
Turvallinen ohjelmointi -vierailuluento, 2019
 
Hacker Games & DevSecOps
Hacker Games & DevSecOpsHacker Games & DevSecOps
Hacker Games & DevSecOps
 
Developer is an attack vector
Developer is an attack vectorDeveloper is an attack vector
Developer is an attack vector
 
DevSec - build security in and dance like a pro!
DevSec - build security in and dance like a pro!DevSec - build security in and dance like a pro!
DevSec - build security in and dance like a pro!
 
Webapp security-tut-2017
Webapp security-tut-2017Webapp security-tut-2017
Webapp security-tut-2017
 
TTY turvallinen ohjelmointi 2017
TTY turvallinen ohjelmointi 2017TTY turvallinen ohjelmointi 2017
TTY turvallinen ohjelmointi 2017
 

Recently uploaded

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 

Recently uploaded (20)

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 

Agilelessons scanagile-final 2013

  • 1. ANTTI VIRTANEN +358 44 507 0050 antti.virtanen@solita.fi Pieces of the Big Agile Puzzle problems and solutions 11.11.2013
  • 2. Agenda 1. The context and background 1. 2. 3. 4. 5. 6. 2. Fundamental principles to follow 1. 2. 3. 4. Ammunition for ad hominem arguments The projects we will talk about Lean and agile What is a big agile project (our context) Some relevant human limitations Things they didn‟t teach you at the university The foundation you need Some unsatisfactory solutions Actual problems and applying the principles QA and throwing stones
  • 4. Short background About me Programmer and a jack of all trades for some time. Hobbyist -> Professional developer -> Researcher -> Developer -> Architect About Solita 250 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.
  • 5. 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.
  • 6. More about the ERP project Solita‟s “death march” project Unrealistic timetable. Arrogance on our part. A Pyrrhic victory We 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
  • 7. 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 success Sisu 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.
  • 8. 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
  • 9. Big project What is different? Why can‟t humans cope with it? What new skills are required
  • 10. What is a big project? How is it different? Bigger system poses technical challenges Longer build times, slower test runs, complex deployments Too many details. Some documentation is required. People issues Multiple 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 production deployment.
  • 11. Human limitations Some well-understood limits Context-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 issues There is no ”team” of 25 people. Team formation is tricky We are quite irrational Rational choice is an illusion We are geared towards short-term profits and instant rewards.
  • 12. Engineering is not enough Programming Marketing Systems thinking UI design Psychology Mathematics Testing Philosophy Drama and acting We value things on the left.. in a big project things on the right even more!
  • 13. Fundamental principles These are simple principles. But not easy. Decoupling Composition over monolithic ideas Avoid up-front decisions Separation of concerns Creating MVPs
  • 14. Parallelism is the paramount concern Teams move simultaneously toward a shared goal A 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.
  • 15. Avoid monoliths, favor composition You can build a huge monolith in parallel… It‟s a design and engineering decision Functional programming OS products and frameworks often Decoupling functional specifications in a moment..
  • 16. 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. 2. 3. Paper prototypes. (sketching function) Initial boundaries and API (Form follows function) Iterate and write some code. (live form) (For this path I recommend Coplien‟s book Lean Architecture.)
  • 17. Separation of concerns Avoid leaking implementation details External API – UI – data model Tool selection A big project does have very special needs! Automate everything (that DevOps thing). Composable tools. Rethinking tools Maven is a repository, not a build tool. Jenkins is UI for cron, not a CI tool.
  • 18. Aim for MVP at all levels You absolutely must postpone features. But which ones are nice-to-have ? You need feedback early on Create a minimal PoC implementation Apply this to programming, design, specifications etc. A ”big picture” is too big to see The MVP/prototype makes it clear as a side-effect!
  • 19. Be wary of easy solutions
  • 20. ”Solutions” that don‟t address the fundamentals Technological miracles Decoupling 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!
  • 21. Principles in real world (What did we actually learn?) Conditions of greedy selection no longer hold for the backlog Decoupling of functional specifications Normal form in relational database considered harmful Focus on results, not tasks Teams around functionality, not layers and technology Leadership is not management
  • 22. 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 interesting findings) I highly recommend balancing between all three in a big project. Early on!
  • 23. 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.
  • 24. Decoupling functional specs (case Kirre) Three features: Work queue, search and application handling Separate from the user‟s point of view So parallel work comes naturally? Why not? Some bad reasons The 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!
  • 25. 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.
  • 26. All models are wrong. Some are useful. (actually we retain normal form here) Application type Application group Property Decision Application Queue_vie w Queue Assignee UI for queue handling Views are great! • Early feedback • Parallel development • Hidden complexity • Decoupling
  • 27. 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? Does the user have all essential invoicing functionality? No - when will it be ready? No - when will it be deployed? Are we doing what was specified in the contract? Are we heading to the right direction? Are we using the resources (time and money) in the best possible way? Did we bill all the hours? Is the customer happy? What is the most valuable thing to do next?
  • 28. The amazing Kirre project tool (data migration) Team‟s purpose Test plan Short term plan (Kanban style) The purpose statement helped maintain focus and prioritize backlog. backlog
  • 29. About team organization Tempting the dark side is Integrations – 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.
  • 30. Leadershipment (case Kirre) A single project manager, about twenty people A bottleneck, not parallel! A risk! When faced with a serious situation. (final deadline) Divided the responsibility (leadership) to five individuals No reports (or management duties) required No 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 - purpose Support and coaching. A scrum master who was not part of the team. Big picture priorization over teams. Together with everyone.
  • 31. 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.
  • 33. 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 size Motivation, complexity, human limitations. No single architect, PO, manager to make all decisions. Do not ”manage” and control, lead instead Good employees don‟t need ”management” Get real cross-functional teams. Motivated & autonomous.
  • 34. Stuff that victories are made of Lean Agile Continuous innovation Continuous flow Continuous feedback Use-cases in backlog Parallel development Continuous Delivery End-user needs Compositional design Continuous Integration MVP first Form follows function Automated tests Empowered teams Realistic shared vision and plan (backlog) Motivation Transparency Honesty Trust
  • 35. Resources and further reading Even more books Lean 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
  • 36. @SolitaOy Antti Virtanen | antti.virtanen@solita.fi THANK YOU.

Editor's Notes

  1. The other one was much smaller in terms of source code, but the domain is more challenging. In both cases a failure would have been a devastating blow both to the customer and fatal to Solita’s reputation and business.
  2. My point for being here is to help you avoid these mistakes.About the books, It seems there still isn’t much.But since a big project takes years, this is understandable.
  3. To be honest, we should have acted earlier in the project. Some of the changes were done at the last possible moment,not in the last responsible moment.Coaches: to help and challenge us and the customer.
  4. Neither one talks about project size! Actually Lean doesn’t talk about projects at all.
  5. Codemightbeself-documentingitself, buthowfastcanyoucrawl a million LOC to get an overview of the design? Treatingpeople as resources is a bad idea anyway, butitmaywork on a short-term.Motivation is a obviouslyhugeissuewhenyouneed to keeppeopleworking on something for years.
  6. Ourhunter-gathererbrainsworkbrilliantly in teams of fivepeople. Team Organization: part science, partart and youcan’talwaysmakeithappen.
  7. Thisactuallyworks in a suitablecontext. Given a smallproject and familiardomainyoucan just applyyour engineering skills and a ”working software” willemerge!Vanguard, TQM, Lean, Non-violent communication….
  8. Calling these fundamental principles is a bit bold, but just a bit.
  9. ”Scrum of scrums” oftentranslates to pushingI wasactuallyimpressedbyNokia securityposseon this a couple of yearsback.
  10. But in this case the PO had a rock solid vision 20 years before deployment. In agile projects we deal with uncertain visions.Compositionofferssuperioragility. Itrequiresmoreeffort and experience.
  11. Weareusingthisamazingtoolvendor/productlock-ineventhoughyoudon’tknowthatyouaregoing to build.Whycommit to a specific design early?Didyouspecify the technologystackup-frontbecause of insecurity? Customerdidnottrustyou? Theyareyourfavoritetools? Orbecausethesetoolswereused in previousprojectIn hisbookCoplientalks a lotaboutform and function. My semanticshereareslightlydifferent, butfundamentallywearetalkingabout the samething and offering the samesolution.
  12. Enduser’smentalmodel is not data model. Is not UI is notintegration API.Version control, build, CI, testsuites and reports, deploymentpipeline, configuration management (DevOps) areallseparateissues.
  13. Youcansee my cottage’s ”minimumviableproduct” on the right. I’m in a process of fixingit and thatcornerstone is prettyminimalsolution for the moment.A workingPoC for someintegration is betterthan 99% complete design for a perfectone.A draft of the essentialparts for UI is betterthan 85% completespecification with no implementation.
  14. I actuallylike REST a lot.
  15. These are in no particular order
  16. And hey.. Youwillhaveall the riskyoucanhandle.
  17. Thesearenotactuallydependent on eachother. In fact, search and queueareprettygeneric and notspecific to domain.Canwethenspecify, implement and testthese in parallel?Ifyoucan’tdecoupledifferentuse-cases and issuesitwillbeenormouslydifficult to do a big project.
  18. The relationalmodel and normalformarewonderfulideas, butnot general silverbulletsbut at the momenttheyaretreated as such.The model is big. It’sunderdevelopment. It is complex. Wedonotknowwhatitwill look likewhenready.The NoSQLmovementhasgone to the otherextreme with theirwebscalemongodbstuff. Since the schema is sopainfultheydecided to removeitaltogether. Sigh.
  19. You want to be in the “results” category. When you get there you need no longer worry about customer being happy. They will be ThoughtWorks was actually talking about this “elite” level today. Go see their presentation for further thoughts on this.
  20. To have the team’s purpose up there was very helpful.
  21. Multipleteams – how to split the work?See, weareagainback at thatcross-functionalteam.Wereinstated,butnowconsciousabout the good and badsides.
  22. It is important to understandthisproperly. This ”leadrole” is a bitweirdbut PO comesclosest to describewhatitmeant in our case.So.. It’snotobviouswhoshouldbe the ”leader” sinceit’snotrelated to actualskillsororganizational position. And youcan’tassignthisresponsibility. And noteveryonewilling to acceptitareacceptedby the team.Nowthere’s a puzzle indeed.Whatifyoucan’tfind the person? No idea. But I suspectthatifyouhave a realteam with a purpose a leaderwillemerge.By ”makeitso” management I’mnotsuggestingyoushouldnotsupport. By allmeansoffer help, butdonotcontrol.
  23. Sane and experiencedpeoplewillnotaccept a futiledeath-marchassigmentvoluntarily! Deming: “Eliminate management by objective. Eliminate management by numbers and numerical goals. Instead substitute with leadership.”Wikipedia defines Leadership as: “a process of social influence in which one person can enlist the aid and support of others in the accomplishment of a common task”
  24. (Well, ifscope, budget and timetablearefixedit is not an agileprojectanyways)The employeeswant to do the rightthingevenif no one ”manages” them!
  25. THERE ARE FEEDBACK LOOPS!And it’s a complex system.Dean talked about leadership in the opening keynote and put it as the “foundation”. Interestingly I have had the same conclusion..
  26. https://submissions.agilealliance.org/system/sessions/attachments/000/001/143/original/FinishEarlyAccelerateFasterHICSS2014.pdf