SlideShare une entreprise Scribd logo
1  sur  28
Copyright © 2012 3P Vantage, Inc.
Is Your Agile Team Busy Producing
Legacy Code?
Gil Broza
The 7 Elements of Technical Agility
TheHumanSideOfAgile.com
3PVantage.com
OnTheWayToAgile.com
2 Copyright © 2012 3P Vantage, Inc.
The Four Dimensions of Agility
Technical Agility:
Executing value-adding development mechanics with agility
Our focus now
Planning /
Process
Business Leadership / People
Technical
3 Copyright © 2012 3P Vantage, Inc.
All Dimensions Are Vital
 “Early and continuous delivery of working software”
– This business promise must be backed by planning and
technical mechanisms
 “Build projects around motivated individuals. Give them
the environment and support they need, and trust them
to get the job done.”
– This leadership premise can’t work when the technical
environment hurts or process gets scary (e.g. the demo)
The effects of insufficient technical Agility are
only felt after the first few months of excitement
4 Copyright © 2012 3P Vantage, Inc.
6 “Tells” of a Team Producing Legacy Code
 Demo-driven development
 “We don’t have time to clean the code or its design”
 Surprisingly high estimates for easy-looking features
 Coding, testing, fixing anything? “It’s not that simple.”
 “In an ideal world, the estimate would be twice as much
to do this story right.”
 The Definition of Done doesn’t cover developers
5 Copyright © 2012 3P Vantage, Inc.
Attitudes Are Telling, Too
Things take long,
and that’s just the way it is
If it ain’t broken,
don’t fix it!
A valuable solution is
a large solution
Everyone should
focus on completing
their own part
6 Copyright © 2012 3P Vantage, Inc.
The Long-Term Costs
 Progress slows down (Tracker)
 Variability in task duration becomes high (MarketWire)
 Motivation and engagement go down (Randy the architect)
 Over-reliance on experts/silos is risky and expensive
 Harder to maintain teamwork and collaboration
You cannot remain a leader.
Your ability to innovate and respond will fall behind.
7 Copyright © 2012 3P Vantage, Inc.
Technical Agility Falls Through the Cracks
If you use Scrum, all you’re told is “self-organization and
improvement through feedback, data, and discovery”
Who’s likely to drive technical Agility?
 The delivery team?
– not usually
 Team leader or technical lead?
– they usually need greater clout
 Development managers?
– more likely
– need support as far up as CTO
8 Copyright © 2012 3P Vantage, Inc.
The 7 Elements of
Technical Agility
9 Copyright © 2012 3P Vantage, Inc.
1. Evolutionary Design
Have sizable work?
1. Understand its purpose
2. Lay it out (e.g. story mapping, wireframes)
3. Identify an increment of behaviour and structure that
would give value and useful information/feedback
4. Build it, get feedback
5. Adjust your plans based on that feedback and your
project’s constraint tradeoff (time/scope/quality/cost)
6. Repeat 3-5
As opposed to dividing work by layer, component, expert
10 Copyright © 2012 3P Vantage, Inc.
2: Guest Searches For Items
Optional category. Search for
text in title, description and
location. Results in scrollable
table. Assume >100K listings.
1: Guest Posts Listing
6 text fields + category
from preconfigured list.
Up to 4 images.
3: Guest Opens Listing
Show all fields as uneditable
text. Render email so it’s
unspammable. Fit wide
images to 500px.
Release 1: “Non-Registered Buy & Sell”
STUFF
Post
Search
Basic homepage
VIEW LISTING
Bike for sale, as new!Title
BMX bike, kids 8-12Description
Close
Category Bicycles
Location Yonge & Sheppard
Price $35
Phone (Withheld)
Email joe@home.com
SEARCH LISTING
Category
Text in listing
Search
Close
Title category price loc
Title category price loc
Title category price loc
Title category price loc
Title category price loc
CREATE LISTING
Title
Description
Price
Phone
Email
Location
Category
Remove Image Add Image
Submit Cancel
After one image
has been added
10
5 5
11 Copyright © 2012 3P Vantage, Inc.
SEARCH LISTING
Category
Text in listing
Search
Close
Title category price loc
Title category price loc
Title category price loc
Title category price loc
Title category price loc
2.1: Guest Opens All-Listing
View
Show all listings in scrollable table.
1.1: Guest Posts Flat Listing
Just the 6 text fields. Store in a
file.
Iteration #1: Flat Post & Search
STUFF
Post
Search
Basic homepage
3 2
CREATE LISTING
Title
Description
Price
Phone
Email
Location
Category
Remove Image Add Image
Submit Cancel
After one image
has been added
12 Copyright © 2012 3P Vantage, Inc.
2.2: Guest Searches For Text in
Listings
Text box value used to search title,
description and location
Iteration #2: Flat Post-Search-Open
STUFF
Post
Search
Basic homepage
SEARCH LISTING
Category
Text in listing
Search
Close
Title category price loc
Title category price loc
Title category price loc
Title category price loc
Title category price loc
32
3.1: Guest Opens Listing
Show all text fields (no images or
categories yet); make email non-
spammable.
VIEW LISTING
Bike for sale, as new!Title
BMX bike, kids 8-12Description
Close
Category Bicycles
Location Yonge & Sheppard
Price $35
Phone (Withheld)
Email joe@home.com
13 Copyright © 2012 3P Vantage, Inc.
2.3: Guest Searches For Items
using Category
Narrow down the text search to the
chosen category (default: none).
Iteration #3: Post With Images & Categories
STUFF
Post
Search
Basic homepage
SEARCH LISTING
Category
Text in listing
Search
Close
Title category price loc
Title category price loc
Title category price loc
Title category price loc
Title category price loc
1
1.2: Guest Posts Categorized
Listing with Images
Add category dropdown,
populated with fixed options.
Up to 4 images. User can remove
uploaded image. Save all images
only once listing is submitted.
CREATE LISTING
Title
Description
Price
Phone
Email
Location
Category
Remove Image Add Image
Submit Cancel
After one image
has been added
4
14 Copyright © 2012 3P Vantage, Inc.
2.4: Guest Searches Among
>100K Listings
Refactor to scalable DB. Optimize
for search. Post and Open need to
be reasonably quick.
Iteration #4: Close Loop With Scalable DB
24
3.2: Guest Opens Categorized
Listing with Images
Show images one below the other.
Scale down wide images to max
500 width. Also show category.
VIEW LISTING
Bike for sale!! As new!!Title
BMX bike for kids 8-12Description
Close
Category Bicycles
Location Yonge & Sheppard
Price $35
Phone (Withheld)
Email joe@home.com
15 Copyright © 2012 3P Vantage, Inc.
2. Rapid Feedback
 “How does it behave?”
 “What have we broken?”
 “What works for sure?”
 “How easy is it to use?”
“Stable knowable code that has built-in functional verification allows you
to be confident that your change is still functionally correct and only
affected the part of the system you intended… less regressions, less
hotfixes, less new bugs... more features.”
16 Copyright © 2012 3P Vantage, Inc.
3. Small, Safe Steps
 Break everything down smaller than you think
 You can refactor everything using safe behaviour-
preserving transformations
“Learning about safe and testable refactoring was the most interesting part
for me. I can really see myself doing that in the future, as changing an API
or some logic is always the riskiest process and can lead to the most bugs.”
17 Copyright © 2012 3P Vantage, Inc.
Especially Good for Evolution
Are you looking at evolution rather than revolution?
With evolution, keep the architecture, construction, use,
behaviour and flow in lockstep. Small steps help!
18 Copyright © 2012 3P Vantage, Inc.
4. Simplicity
19 Copyright © 2012 3P Vantage, Inc.
Understand the Problem
On both the delivery and definition
sides, get to the heart of the
problem you’re solving – and find
a simple, sufficient solution.
“We’ve started pairing often on areas with
interesting behaviours, and have noticed much
more diverse tests emerging than if a single
developer had tackled the task.”
20 Copyright © 2012 3P Vantage, Inc.
5. Clean Code
 The principles still hold: high cohesion/loose coupling,
good OOD/OOP, reuse
 The standards have changed
– Team progress, and ability to respond, are key
– If a team is to quickly upgrade/change/fix code, programmers
must be able to read and understand it quickly
“The focus on identifying and removing code smells is something we should
be training all of our developers on.”
21 Copyright © 2012 3P Vantage, Inc.
Design Anti-Patterns
for (Employee employee : payroll) {
// Consider only full-time employees
if (!employee.isTemp() && !employee.isPartTime())
public class UserInfo…
private String password;
public boolean isPasswordValid()…
public String scramblePassword()…
switch (vehicle.getType()) {
case SEDAN:
return new Money(0);
case HYBRID:
return new Money(-100); …
Deodorant Comment
Primitive Obsession
Switch Statement
22 Copyright © 2012 3P Vantage, Inc.
public boolean checkSSNForDupes() {
//build cmd to go to DB
Envelope env = new Envelope();
CmdStatus cmdStatus = new CmdStatus();
PublicServiceAgent agt = session_.getAWFormsServiceAgent();
AWCmdCheckSSN cmd = new AWCmdCheckSSN();
//set stuff in cmd
cmd.iServerID_ = uboEmployee_.getServerID();
cmd.iPersonID_ = uboEmployee_.getPersonID();
cmd.iMarketCountryID_ = iMarketCountryID_;
cmd.sSSN_ = sSSN_;
cmd.udsaPossibleDupe_ = new UDSPossibleDupe[0];
//execute cmd
env.insert(cmd);
agt.executeCmd(env, cmdStatus);
if (cmdStatus.getCode().equals(Constant.CMDSUCCESS)) {
return true;
}
else {
return false;
}
}
Low Tolerance for Method Length
23 Copyright © 2012 3P Vantage, Inc.
6. Ownership vs. Rental
Treat it as not as
your own a rental!
24 Copyright © 2012 3P Vantage, Inc.
Stuff You Would Do With a Rental
Car Code
Eat or drink in it Introduce code smells and leave them there
Drive on back roads Build unsound code
Accidentally break a handle or
knob, hope nobody finds out
Notice that you introduced a serious bug,
and not log it
Report faults and minor
nuisances to the agency
Leave TODO comments in the code
Rental property depreciates faster than owned property.
Ownership is a mind-set, not a matter of process.
How soon will you have to pay for today’s decisions?
25 Copyright © 2012 3P Vantage, Inc.
7. Shared Responsibility
 Shared ownership (no more @author)
 Friends don’t let friends code alone
 Boy Scout rule
 Specializing generalists
 Break down the silos
– Built because Urgent > Important
“We worked together in refactoring one of the existing legacy classes.
This was a big piece of complex code that did not have any unit test. At
the end of the exercise, we were able to simplify the code dramatically
and made the code easily testable.”
26 Copyright © 2012 3P Vantage, Inc.
Getting There
Technology, skills, and process won’t suffice. You must
get started… and the deck is stacked against you:
 Inertia (there’s always something more urgent)
 Perceived barriers
– Distributed / Large / C++ / Deep in Legacy Code / Siloed
 Whose problem is it, anyway?
 Developers feel powerless
 The costs are long-term and hard to see
27 Copyright © 2012 3P Vantage, Inc.
But Once You Have It…
 Developers programming without fear
 Team development: more realistic, fewer surprises
 True partnership with the business
 Boost motivation through pride and ownership
28 Copyright © 2012 3P Vantage, Inc.
Tomorrow: The Coding Part of It
May 8-9, I’ll lead the XP/Agile Engineering workshop:
 Effective unit testing
 Safe refactoring (including refactoring of large messes)
 Simple design
 Clean code
Two days of hands-on exercises and guided discovery.
Three seats remain. Will I see you there?

Contenu connexe

Tendances

Role of Manager in LeSS (Large-Scale Scrum)
Role of Manager in LeSS (Large-Scale Scrum)Role of Manager in LeSS (Large-Scale Scrum)
Role of Manager in LeSS (Large-Scale Scrum)Naveen Kumar Singh
 
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agile
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agileATC2013-Harshawardhan- Effective requirement management-in_distributed_agile
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agileIndia Scrum Enthusiasts Community
 
Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Cprime
 
Scaling agile Principles and Practices
Scaling agile Principles and PracticesScaling agile Principles and Practices
Scaling agile Principles and PracticesJosef Scherer
 
Life Has Not Been That Rosy With Agile : Rahul Sudame
Life Has Not Been That Rosy With Agile : Rahul SudameLife Has Not Been That Rosy With Agile : Rahul Sudame
Life Has Not Been That Rosy With Agile : Rahul SudameoGuild .
 
cPrime - Agile Quality Engineering
cPrime - Agile Quality EngineeringcPrime - Agile Quality Engineering
cPrime - Agile Quality EngineeringCprime
 
Exin Agile Scrum Master - Course Preview
Exin Agile Scrum Master - Course PreviewExin Agile Scrum Master - Course Preview
Exin Agile Scrum Master - Course PreviewInvensis Learning
 
Agile Tool Selection
Agile Tool SelectionAgile Tool Selection
Agile Tool SelectionChad Holdorf
 
Agile Framework Overview
Agile Framework OverviewAgile Framework Overview
Agile Framework OverviewNitin KR
 
Agile Resourcing
Agile ResourcingAgile Resourcing
Agile ResourcingCprime
 
Validating Delivered Business Value – Going Beyond “Actual Business Value”
Validating Delivered Business Value – Going Beyond “Actual Business Value”Validating Delivered Business Value – Going Beyond “Actual Business Value”
Validating Delivered Business Value – Going Beyond “Actual Business Value”Yuval Yeret
 
Top 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | EdurekaTop 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | EdurekaEdureka!
 
Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum FrameworkNaveen Kumar Singh
 
DevOps or Devops - living in silos or living as a team
DevOps or Devops -  living in silos or living as a teamDevOps or Devops -  living in silos or living as a team
DevOps or Devops - living in silos or living as a teamVinay Krishna
 
Essential SAFe and Launching your first Agile Release Train
Essential SAFe and Launching your first Agile Release TrainEssential SAFe and Launching your first Agile Release Train
Essential SAFe and Launching your first Agile Release TrainCprime
 
DevOps-driving-blind
DevOps-driving-blindDevOps-driving-blind
DevOps-driving-blindPaul Peissner
 
A Gentle Introduction To Agile
A Gentle Introduction To AgileA Gentle Introduction To Agile
A Gentle Introduction To AgileMichael Sahota
 

Tendances (20)

Role of Manager in LeSS (Large-Scale Scrum)
Role of Manager in LeSS (Large-Scale Scrum)Role of Manager in LeSS (Large-Scale Scrum)
Role of Manager in LeSS (Large-Scale Scrum)
 
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agile
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agileATC2013-Harshawardhan- Effective requirement management-in_distributed_agile
ATC2013-Harshawardhan- Effective requirement management-in_distributed_agile
 
Achieving Balanced Agile Testing
Achieving Balanced Agile Testing Achieving Balanced Agile Testing
Achieving Balanced Agile Testing
 
Scaling agile Principles and Practices
Scaling agile Principles and PracticesScaling agile Principles and Practices
Scaling agile Principles and Practices
 
Life Has Not Been That Rosy With Agile : Rahul Sudame
Life Has Not Been That Rosy With Agile : Rahul SudameLife Has Not Been That Rosy With Agile : Rahul Sudame
Life Has Not Been That Rosy With Agile : Rahul Sudame
 
Getting Started with Scrum
Getting Started with ScrumGetting Started with Scrum
Getting Started with Scrum
 
cPrime - Agile Quality Engineering
cPrime - Agile Quality EngineeringcPrime - Agile Quality Engineering
cPrime - Agile Quality Engineering
 
Exin Agile Scrum Master - Course Preview
Exin Agile Scrum Master - Course PreviewExin Agile Scrum Master - Course Preview
Exin Agile Scrum Master - Course Preview
 
Agile Tool Selection
Agile Tool SelectionAgile Tool Selection
Agile Tool Selection
 
Agile Framework Overview
Agile Framework OverviewAgile Framework Overview
Agile Framework Overview
 
Agile Resourcing
Agile ResourcingAgile Resourcing
Agile Resourcing
 
Validating Delivered Business Value – Going Beyond “Actual Business Value”
Validating Delivered Business Value – Going Beyond “Actual Business Value”Validating Delivered Business Value – Going Beyond “Actual Business Value”
Validating Delivered Business Value – Going Beyond “Actual Business Value”
 
Top 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | EdurekaTop 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | Edureka
 
Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum Framework
 
DevOps or Devops - living in silos or living as a team
DevOps or Devops -  living in silos or living as a teamDevOps or Devops -  living in silos or living as a team
DevOps or Devops - living in silos or living as a team
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Essential SAFe and Launching your first Agile Release Train
Essential SAFe and Launching your first Agile Release TrainEssential SAFe and Launching your first Agile Release Train
Essential SAFe and Launching your first Agile Release Train
 
DevOps-driving-blind
DevOps-driving-blindDevOps-driving-blind
DevOps-driving-blind
 
QA in an Agile Environment
QA in an Agile EnvironmentQA in an Agile Environment
QA in an Agile Environment
 
A Gentle Introduction To Agile
A Gentle Introduction To AgileA Gentle Introduction To Agile
A Gentle Introduction To Agile
 

En vedette

Real world experience from Microsoft - Deniz Ercoskun
Real world experience from Microsoft - Deniz ErcoskunReal world experience from Microsoft - Deniz Ercoskun
Real world experience from Microsoft - Deniz ErcoskunAgileSparks
 
Rightshifting explained - Bob Marshal - Agile Israle 2013
Rightshifting explained - Bob Marshal - Agile Israle 2013Rightshifting explained - Bob Marshal - Agile Israle 2013
Rightshifting explained - Bob Marshal - Agile Israle 2013AgileSparks
 
How to do planning meetings - Danko Kovatch
How to do planning meetings - Danko KovatchHow to do planning meetings - Danko Kovatch
How to do planning meetings - Danko KovatchAgileSparks
 
How and when to use tools
How and when to use toolsHow and when to use tools
How and when to use toolsyaelRabinovich
 
Collaborating with the customer – a Bank Leumi Agile pilot
Collaborating with the customer – a Bank Leumi Agile pilotCollaborating with the customer – a Bank Leumi Agile pilot
Collaborating with the customer – a Bank Leumi Agile pilotAgileSparks
 
Individuals and interactions - Gil Broza - Agile Israel 2013
Individuals and interactions - Gil Broza - Agile Israel 2013Individuals and interactions - Gil Broza - Agile Israel 2013
Individuals and interactions - Gil Broza - Agile Israel 2013AgileSparks
 

En vedette (6)

Real world experience from Microsoft - Deniz Ercoskun
Real world experience from Microsoft - Deniz ErcoskunReal world experience from Microsoft - Deniz Ercoskun
Real world experience from Microsoft - Deniz Ercoskun
 
Rightshifting explained - Bob Marshal - Agile Israle 2013
Rightshifting explained - Bob Marshal - Agile Israle 2013Rightshifting explained - Bob Marshal - Agile Israle 2013
Rightshifting explained - Bob Marshal - Agile Israle 2013
 
How to do planning meetings - Danko Kovatch
How to do planning meetings - Danko KovatchHow to do planning meetings - Danko Kovatch
How to do planning meetings - Danko Kovatch
 
How and when to use tools
How and when to use toolsHow and when to use tools
How and when to use tools
 
Collaborating with the customer – a Bank Leumi Agile pilot
Collaborating with the customer – a Bank Leumi Agile pilotCollaborating with the customer – a Bank Leumi Agile pilot
Collaborating with the customer – a Bank Leumi Agile pilot
 
Individuals and interactions - Gil Broza - Agile Israel 2013
Individuals and interactions - Gil Broza - Agile Israel 2013Individuals and interactions - Gil Broza - Agile Israel 2013
Individuals and interactions - Gil Broza - Agile Israel 2013
 

Similaire à Seven elements of technical Agility - Gil Broza - Agile Israel 2013

Sumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 yearsSumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 yearssumeet kumar
 
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices Agile Guru - Agile Culture, Management Best Practices and App Dev Practices
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices CollabNet
 
Agile for developers
Agile for developersAgile for developers
Agile for developersJerome Eteve
 
SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactoryNCCOMMS
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshopdrewz lin
 
How to Scale and Grow your Enterprise Technical SEO Strategy
How to Scale and Grow your Enterprise Technical SEO StrategyHow to Scale and Grow your Enterprise Technical SEO Strategy
How to Scale and Grow your Enterprise Technical SEO StrategySearch Engine Journal
 
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...Open Group Presentation on MSBI method of creating Enterprise Architecture Co...
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...Nick Malik
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
Atlogys presentation
Atlogys presentationAtlogys presentation
Atlogys presentationRitika Garga
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclassMagenTys
 
Where the Warehouse Ends: A New Age of Information Access
Where the Warehouse Ends: A New Age of Information AccessWhere the Warehouse Ends: A New Age of Information Access
Where the Warehouse Ends: A New Age of Information AccessInside Analysis
 
How To Review The Sprints Efficiently
How To Review The Sprints EfficientlyHow To Review The Sprints Efficiently
How To Review The Sprints EfficientlyLemi Orhan Ergin
 
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...Codemotion
 

Similaire à Seven elements of technical Agility - Gil Broza - Agile Israel 2013 (20)

Ashish
AshishAshish
Ashish
 
Sumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 yearsSumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 years
 
Ketul
KetulKetul
Ketul
 
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices Agile Guru - Agile Culture, Management Best Practices and App Dev Practices
Agile Guru - Agile Culture, Management Best Practices and App Dev Practices
 
Agile for developers
Agile for developersAgile for developers
Agile for developers
 
SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint Factory
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshop
 
How to Scale and Grow your Enterprise Technical SEO Strategy
How to Scale and Grow your Enterprise Technical SEO StrategyHow to Scale and Grow your Enterprise Technical SEO Strategy
How to Scale and Grow your Enterprise Technical SEO Strategy
 
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...Open Group Presentation on MSBI method of creating Enterprise Architecture Co...
Open Group Presentation on MSBI method of creating Enterprise Architecture Co...
 
Outsourcing With Agile
Outsourcing With AgileOutsourcing With Agile
Outsourcing With Agile
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
egyprog
egyprogegyprog
egyprog
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
 
Atlogys Technical Consulting
Atlogys Technical ConsultingAtlogys Technical Consulting
Atlogys Technical Consulting
 
Atlogys presentation
Atlogys presentationAtlogys presentation
Atlogys presentation
 
Resume
ResumeResume
Resume
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclass
 
Where the Warehouse Ends: A New Age of Information Access
Where the Warehouse Ends: A New Age of Information AccessWhere the Warehouse Ends: A New Age of Information Access
Where the Warehouse Ends: A New Age of Information Access
 
How To Review The Sprints Efficiently
How To Review The Sprints EfficientlyHow To Review The Sprints Efficiently
How To Review The Sprints Efficiently
 
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...
The Sociotechnical Organisation Design Playbook - Nick Tune - Codemotion Amst...
 

Plus de AgileSparks

What Do Agile Leaders Do by Kurt Bittner
What Do Agile Leaders Do by Kurt Bittner What Do Agile Leaders Do by Kurt Bittner
What Do Agile Leaders Do by Kurt Bittner AgileSparks
 
Distributed Teams by Kevin Goldsmith
Distributed Teams by Kevin GoldsmithDistributed Teams by Kevin Goldsmith
Distributed Teams by Kevin GoldsmithAgileSparks
 
A Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiA Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiAgileSparks
 
Jira Portfolio by Elad Ben-Noam
Jira Portfolio by Elad Ben-NoamJira Portfolio by Elad Ben-Noam
Jira Portfolio by Elad Ben-NoamAgileSparks
 
Agile Hiring at Scale by Yon Bergman
Agile Hiring at Scale by Yon Bergman Agile Hiring at Scale by Yon Bergman
Agile Hiring at Scale by Yon Bergman AgileSparks
 
Are We Really Using Our Resources in The Most Effective Way? by Perry Yaqubo...
Are We Really Using Our Resources in The Most Effective Way?  by Perry Yaqubo...Are We Really Using Our Resources in The Most Effective Way?  by Perry Yaqubo...
Are We Really Using Our Resources in The Most Effective Way? by Perry Yaqubo...AgileSparks
 
Honest Experimentation by Jonathan Bertfield
 Honest Experimentation by Jonathan Bertfield Honest Experimentation by Jonathan Bertfield
Honest Experimentation by Jonathan BertfieldAgileSparks
 
Pango Journey to an Agile Cloud by Yaniv Kalo
Pango Journey to an Agile Cloud by Yaniv KaloPango Journey to an Agile Cloud by Yaniv Kalo
Pango Journey to an Agile Cloud by Yaniv KaloAgileSparks
 
ClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny DuekClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny DuekAgileSparks
 
Augury's Journey Towards CD by Assaf Mizrachi
Augury's Journey Towards CD by Assaf Mizrachi Augury's Journey Towards CD by Assaf Mizrachi
Augury's Journey Towards CD by Assaf Mizrachi AgileSparks
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisAgileSparks
 
Creating a Culture of Ownership and Trust with Visibility and Transparency by...
Creating a Culture of Ownership and Trust with Visibility and Transparency by...Creating a Culture of Ownership and Trust with Visibility and Transparency by...
Creating a Culture of Ownership and Trust with Visibility and Transparency by...AgileSparks
 
Real Innovation is with Real Customers by Baat Enosh
Real Innovation is with Real Customers by Baat EnoshReal Innovation is with Real Customers by Baat Enosh
Real Innovation is with Real Customers by Baat EnoshAgileSparks
 
True Continuous Improvement with Toyota Kata by Jesper Boeg
True Continuous Improvement with Toyota Kata by Jesper BoegTrue Continuous Improvement with Toyota Kata by Jesper Boeg
True Continuous Improvement with Toyota Kata by Jesper BoegAgileSparks
 
Homo-Adaptus Agile Worker by Lior Frenkel
Homo-Adaptus Agile Worker by Lior FrenkelHomo-Adaptus Agile Worker by Lior Frenkel
Homo-Adaptus Agile Worker by Lior FrenkelAgileSparks
 
Intel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraIntel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraAgileSparks
 
Leading Innovation by Jonathan Bertfield
Leading Innovation by Jonathan BertfieldLeading Innovation by Jonathan Bertfield
Leading Innovation by Jonathan BertfieldAgileSparks
 
Organization architecture autonomy and accountability
Organization architecture autonomy and accountability Organization architecture autonomy and accountability
Organization architecture autonomy and accountability AgileSparks
 
Tribal Unity, Agile Israel 2017
Tribal Unity, Agile Israel 2017Tribal Unity, Agile Israel 2017
Tribal Unity, Agile Israel 2017AgileSparks
 
The mindful manager, Agile Israel 2017
The mindful manager, Agile Israel 2017The mindful manager, Agile Israel 2017
The mindful manager, Agile Israel 2017AgileSparks
 

Plus de AgileSparks (20)

What Do Agile Leaders Do by Kurt Bittner
What Do Agile Leaders Do by Kurt Bittner What Do Agile Leaders Do by Kurt Bittner
What Do Agile Leaders Do by Kurt Bittner
 
Distributed Teams by Kevin Goldsmith
Distributed Teams by Kevin GoldsmithDistributed Teams by Kevin Goldsmith
Distributed Teams by Kevin Goldsmith
 
A Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi GostynskiA Back-End Approach to Customer Driven by Adi Gostynski
A Back-End Approach to Customer Driven by Adi Gostynski
 
Jira Portfolio by Elad Ben-Noam
Jira Portfolio by Elad Ben-NoamJira Portfolio by Elad Ben-Noam
Jira Portfolio by Elad Ben-Noam
 
Agile Hiring at Scale by Yon Bergman
Agile Hiring at Scale by Yon Bergman Agile Hiring at Scale by Yon Bergman
Agile Hiring at Scale by Yon Bergman
 
Are We Really Using Our Resources in The Most Effective Way? by Perry Yaqubo...
Are We Really Using Our Resources in The Most Effective Way?  by Perry Yaqubo...Are We Really Using Our Resources in The Most Effective Way?  by Perry Yaqubo...
Are We Really Using Our Resources in The Most Effective Way? by Perry Yaqubo...
 
Honest Experimentation by Jonathan Bertfield
 Honest Experimentation by Jonathan Bertfield Honest Experimentation by Jonathan Bertfield
Honest Experimentation by Jonathan Bertfield
 
Pango Journey to an Agile Cloud by Yaniv Kalo
Pango Journey to an Agile Cloud by Yaniv KaloPango Journey to an Agile Cloud by Yaniv Kalo
Pango Journey to an Agile Cloud by Yaniv Kalo
 
ClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny DuekClickSoftware Agile Tranistion by Meny Duek
ClickSoftware Agile Tranistion by Meny Duek
 
Augury's Journey Towards CD by Assaf Mizrachi
Augury's Journey Towards CD by Assaf Mizrachi Augury's Journey Towards CD by Assaf Mizrachi
Augury's Journey Towards CD by Assaf Mizrachi
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 
Creating a Culture of Ownership and Trust with Visibility and Transparency by...
Creating a Culture of Ownership and Trust with Visibility and Transparency by...Creating a Culture of Ownership and Trust with Visibility and Transparency by...
Creating a Culture of Ownership and Trust with Visibility and Transparency by...
 
Real Innovation is with Real Customers by Baat Enosh
Real Innovation is with Real Customers by Baat EnoshReal Innovation is with Real Customers by Baat Enosh
Real Innovation is with Real Customers by Baat Enosh
 
True Continuous Improvement with Toyota Kata by Jesper Boeg
True Continuous Improvement with Toyota Kata by Jesper BoegTrue Continuous Improvement with Toyota Kata by Jesper Boeg
True Continuous Improvement with Toyota Kata by Jesper Boeg
 
Homo-Adaptus Agile Worker by Lior Frenkel
Homo-Adaptus Agile Worker by Lior FrenkelHomo-Adaptus Agile Worker by Lior Frenkel
Homo-Adaptus Agile Worker by Lior Frenkel
 
Intel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen EzraIntel CHD Case Study by Ronen Ezra
Intel CHD Case Study by Ronen Ezra
 
Leading Innovation by Jonathan Bertfield
Leading Innovation by Jonathan BertfieldLeading Innovation by Jonathan Bertfield
Leading Innovation by Jonathan Bertfield
 
Organization architecture autonomy and accountability
Organization architecture autonomy and accountability Organization architecture autonomy and accountability
Organization architecture autonomy and accountability
 
Tribal Unity, Agile Israel 2017
Tribal Unity, Agile Israel 2017Tribal Unity, Agile Israel 2017
Tribal Unity, Agile Israel 2017
 
The mindful manager, Agile Israel 2017
The mindful manager, Agile Israel 2017The mindful manager, Agile Israel 2017
The mindful manager, Agile Israel 2017
 

Dernier

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Dernier (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Seven elements of technical Agility - Gil Broza - Agile Israel 2013

  • 1. Copyright © 2012 3P Vantage, Inc. Is Your Agile Team Busy Producing Legacy Code? Gil Broza The 7 Elements of Technical Agility TheHumanSideOfAgile.com 3PVantage.com OnTheWayToAgile.com
  • 2. 2 Copyright © 2012 3P Vantage, Inc. The Four Dimensions of Agility Technical Agility: Executing value-adding development mechanics with agility Our focus now Planning / Process Business Leadership / People Technical
  • 3. 3 Copyright © 2012 3P Vantage, Inc. All Dimensions Are Vital  “Early and continuous delivery of working software” – This business promise must be backed by planning and technical mechanisms  “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” – This leadership premise can’t work when the technical environment hurts or process gets scary (e.g. the demo) The effects of insufficient technical Agility are only felt after the first few months of excitement
  • 4. 4 Copyright © 2012 3P Vantage, Inc. 6 “Tells” of a Team Producing Legacy Code  Demo-driven development  “We don’t have time to clean the code or its design”  Surprisingly high estimates for easy-looking features  Coding, testing, fixing anything? “It’s not that simple.”  “In an ideal world, the estimate would be twice as much to do this story right.”  The Definition of Done doesn’t cover developers
  • 5. 5 Copyright © 2012 3P Vantage, Inc. Attitudes Are Telling, Too Things take long, and that’s just the way it is If it ain’t broken, don’t fix it! A valuable solution is a large solution Everyone should focus on completing their own part
  • 6. 6 Copyright © 2012 3P Vantage, Inc. The Long-Term Costs  Progress slows down (Tracker)  Variability in task duration becomes high (MarketWire)  Motivation and engagement go down (Randy the architect)  Over-reliance on experts/silos is risky and expensive  Harder to maintain teamwork and collaboration You cannot remain a leader. Your ability to innovate and respond will fall behind.
  • 7. 7 Copyright © 2012 3P Vantage, Inc. Technical Agility Falls Through the Cracks If you use Scrum, all you’re told is “self-organization and improvement through feedback, data, and discovery” Who’s likely to drive technical Agility?  The delivery team? – not usually  Team leader or technical lead? – they usually need greater clout  Development managers? – more likely – need support as far up as CTO
  • 8. 8 Copyright © 2012 3P Vantage, Inc. The 7 Elements of Technical Agility
  • 9. 9 Copyright © 2012 3P Vantage, Inc. 1. Evolutionary Design Have sizable work? 1. Understand its purpose 2. Lay it out (e.g. story mapping, wireframes) 3. Identify an increment of behaviour and structure that would give value and useful information/feedback 4. Build it, get feedback 5. Adjust your plans based on that feedback and your project’s constraint tradeoff (time/scope/quality/cost) 6. Repeat 3-5 As opposed to dividing work by layer, component, expert
  • 10. 10 Copyright © 2012 3P Vantage, Inc. 2: Guest Searches For Items Optional category. Search for text in title, description and location. Results in scrollable table. Assume >100K listings. 1: Guest Posts Listing 6 text fields + category from preconfigured list. Up to 4 images. 3: Guest Opens Listing Show all fields as uneditable text. Render email so it’s unspammable. Fit wide images to 500px. Release 1: “Non-Registered Buy & Sell” STUFF Post Search Basic homepage VIEW LISTING Bike for sale, as new!Title BMX bike, kids 8-12Description Close Category Bicycles Location Yonge & Sheppard Price $35 Phone (Withheld) Email joe@home.com SEARCH LISTING Category Text in listing Search Close Title category price loc Title category price loc Title category price loc Title category price loc Title category price loc CREATE LISTING Title Description Price Phone Email Location Category Remove Image Add Image Submit Cancel After one image has been added 10 5 5
  • 11. 11 Copyright © 2012 3P Vantage, Inc. SEARCH LISTING Category Text in listing Search Close Title category price loc Title category price loc Title category price loc Title category price loc Title category price loc 2.1: Guest Opens All-Listing View Show all listings in scrollable table. 1.1: Guest Posts Flat Listing Just the 6 text fields. Store in a file. Iteration #1: Flat Post & Search STUFF Post Search Basic homepage 3 2 CREATE LISTING Title Description Price Phone Email Location Category Remove Image Add Image Submit Cancel After one image has been added
  • 12. 12 Copyright © 2012 3P Vantage, Inc. 2.2: Guest Searches For Text in Listings Text box value used to search title, description and location Iteration #2: Flat Post-Search-Open STUFF Post Search Basic homepage SEARCH LISTING Category Text in listing Search Close Title category price loc Title category price loc Title category price loc Title category price loc Title category price loc 32 3.1: Guest Opens Listing Show all text fields (no images or categories yet); make email non- spammable. VIEW LISTING Bike for sale, as new!Title BMX bike, kids 8-12Description Close Category Bicycles Location Yonge & Sheppard Price $35 Phone (Withheld) Email joe@home.com
  • 13. 13 Copyright © 2012 3P Vantage, Inc. 2.3: Guest Searches For Items using Category Narrow down the text search to the chosen category (default: none). Iteration #3: Post With Images & Categories STUFF Post Search Basic homepage SEARCH LISTING Category Text in listing Search Close Title category price loc Title category price loc Title category price loc Title category price loc Title category price loc 1 1.2: Guest Posts Categorized Listing with Images Add category dropdown, populated with fixed options. Up to 4 images. User can remove uploaded image. Save all images only once listing is submitted. CREATE LISTING Title Description Price Phone Email Location Category Remove Image Add Image Submit Cancel After one image has been added 4
  • 14. 14 Copyright © 2012 3P Vantage, Inc. 2.4: Guest Searches Among >100K Listings Refactor to scalable DB. Optimize for search. Post and Open need to be reasonably quick. Iteration #4: Close Loop With Scalable DB 24 3.2: Guest Opens Categorized Listing with Images Show images one below the other. Scale down wide images to max 500 width. Also show category. VIEW LISTING Bike for sale!! As new!!Title BMX bike for kids 8-12Description Close Category Bicycles Location Yonge & Sheppard Price $35 Phone (Withheld) Email joe@home.com
  • 15. 15 Copyright © 2012 3P Vantage, Inc. 2. Rapid Feedback  “How does it behave?”  “What have we broken?”  “What works for sure?”  “How easy is it to use?” “Stable knowable code that has built-in functional verification allows you to be confident that your change is still functionally correct and only affected the part of the system you intended… less regressions, less hotfixes, less new bugs... more features.”
  • 16. 16 Copyright © 2012 3P Vantage, Inc. 3. Small, Safe Steps  Break everything down smaller than you think  You can refactor everything using safe behaviour- preserving transformations “Learning about safe and testable refactoring was the most interesting part for me. I can really see myself doing that in the future, as changing an API or some logic is always the riskiest process and can lead to the most bugs.”
  • 17. 17 Copyright © 2012 3P Vantage, Inc. Especially Good for Evolution Are you looking at evolution rather than revolution? With evolution, keep the architecture, construction, use, behaviour and flow in lockstep. Small steps help!
  • 18. 18 Copyright © 2012 3P Vantage, Inc. 4. Simplicity
  • 19. 19 Copyright © 2012 3P Vantage, Inc. Understand the Problem On both the delivery and definition sides, get to the heart of the problem you’re solving – and find a simple, sufficient solution. “We’ve started pairing often on areas with interesting behaviours, and have noticed much more diverse tests emerging than if a single developer had tackled the task.”
  • 20. 20 Copyright © 2012 3P Vantage, Inc. 5. Clean Code  The principles still hold: high cohesion/loose coupling, good OOD/OOP, reuse  The standards have changed – Team progress, and ability to respond, are key – If a team is to quickly upgrade/change/fix code, programmers must be able to read and understand it quickly “The focus on identifying and removing code smells is something we should be training all of our developers on.”
  • 21. 21 Copyright © 2012 3P Vantage, Inc. Design Anti-Patterns for (Employee employee : payroll) { // Consider only full-time employees if (!employee.isTemp() && !employee.isPartTime()) public class UserInfo… private String password; public boolean isPasswordValid()… public String scramblePassword()… switch (vehicle.getType()) { case SEDAN: return new Money(0); case HYBRID: return new Money(-100); … Deodorant Comment Primitive Obsession Switch Statement
  • 22. 22 Copyright © 2012 3P Vantage, Inc. public boolean checkSSNForDupes() { //build cmd to go to DB Envelope env = new Envelope(); CmdStatus cmdStatus = new CmdStatus(); PublicServiceAgent agt = session_.getAWFormsServiceAgent(); AWCmdCheckSSN cmd = new AWCmdCheckSSN(); //set stuff in cmd cmd.iServerID_ = uboEmployee_.getServerID(); cmd.iPersonID_ = uboEmployee_.getPersonID(); cmd.iMarketCountryID_ = iMarketCountryID_; cmd.sSSN_ = sSSN_; cmd.udsaPossibleDupe_ = new UDSPossibleDupe[0]; //execute cmd env.insert(cmd); agt.executeCmd(env, cmdStatus); if (cmdStatus.getCode().equals(Constant.CMDSUCCESS)) { return true; } else { return false; } } Low Tolerance for Method Length
  • 23. 23 Copyright © 2012 3P Vantage, Inc. 6. Ownership vs. Rental Treat it as not as your own a rental!
  • 24. 24 Copyright © 2012 3P Vantage, Inc. Stuff You Would Do With a Rental Car Code Eat or drink in it Introduce code smells and leave them there Drive on back roads Build unsound code Accidentally break a handle or knob, hope nobody finds out Notice that you introduced a serious bug, and not log it Report faults and minor nuisances to the agency Leave TODO comments in the code Rental property depreciates faster than owned property. Ownership is a mind-set, not a matter of process. How soon will you have to pay for today’s decisions?
  • 25. 25 Copyright © 2012 3P Vantage, Inc. 7. Shared Responsibility  Shared ownership (no more @author)  Friends don’t let friends code alone  Boy Scout rule  Specializing generalists  Break down the silos – Built because Urgent > Important “We worked together in refactoring one of the existing legacy classes. This was a big piece of complex code that did not have any unit test. At the end of the exercise, we were able to simplify the code dramatically and made the code easily testable.”
  • 26. 26 Copyright © 2012 3P Vantage, Inc. Getting There Technology, skills, and process won’t suffice. You must get started… and the deck is stacked against you:  Inertia (there’s always something more urgent)  Perceived barriers – Distributed / Large / C++ / Deep in Legacy Code / Siloed  Whose problem is it, anyway?  Developers feel powerless  The costs are long-term and hard to see
  • 27. 27 Copyright © 2012 3P Vantage, Inc. But Once You Have It…  Developers programming without fear  Team development: more realistic, fewer surprises  True partnership with the business  Boost motivation through pride and ownership
  • 28. 28 Copyright © 2012 3P Vantage, Inc. Tomorrow: The Coding Part of It May 8-9, I’ll lead the XP/Agile Engineering workshop:  Effective unit testing  Safe refactoring (including refactoring of large messes)  Simple design  Clean code Two days of hands-on exercises and guided discovery. Three seats remain. Will I see you there?