SlideShare a Scribd company logo
You can’t be Agile
if your code sucks

Peter Gfader
twitter.com/peitor
My Mission
#1 Agile??
#2 Code & Craftmanship
About me
Peter Gfader

peter.gfader@zuehlke.com
http://blog.gfader.com
twitter.com/peitor
Agile
What is Agile for you?
http://agilemanifesto.org/
You cant be agile if your code sucks
You cant be agile if your code sucks
The Agile Manifesto invites wimpy-ness
"… Individuals and interactions over processes & tools…"
Yayy!! I don't have to follow those stupid processes any more!
"… Working software over comprehensive documentation…"
W00t!! Dump the documentation! I LOVE this agile stuff!
"… Customer collaboration over contract negotiations…"
I'm done when I'm done and I never have to say when!
"… Responding to change over following a plan…"
No plans! No project managers! No architects!

Where do I sign up?

© Alistair Cockburn
What is Agile for you?
What is all this stuff?

XP
Lean

RUP

SAFe

Agile
© Henrik Knieberg
Thinking tools

Tool

a.k.a. ”mindsets” or ”philosophies”

”anything used as a means of
accomplishing a task or purpose.”
- dictionary.com

Physical tools

Lean

Agile
Systems Thinking
Theory of Constraints

Toolkits

a.k.a. ”frameworks”
Scrum RUP XP
Kanban

Process tools

a.k.a. ”organizational patterns”

Product Owner role
Pair programming
Visualize the workflow
5

Dev
3

H

Test

Release

D

To do

C

2

G

3

Done!
A
B

K
FLOW

© Henrik Knieberg
© Henrik Knieberg
The illusion of a ”bad tool”

The old
tool
was
better!
Don’t blame
the tool!

© Henrik Knieberg
Compare for
understanding, not
judgement

Key
point

© Henrik Knieberg
Compare for
understanding, not
judgement

Key
point

Tools can be
combined
© Henrik Knieberg
• Know your Goal

Take-away points

o Why

• Agile/Lean are tools, not goals
• Don’t limit yourself to one tool
• Experiment & enjoy the ride
o Don’t worry about getting it right from
start
© Henrik Knieberg
• We won’t
RUP

XP
Lean

SAFe

Agile
© Henrik Knieberg
The important thing isn’t the process.

© Henrik Knieberg
The important thing isn’t the process.

The important thing is the process for
improving your process.

© Henrik Knieberg
The important thing isn’t the process.

The important thing is the process for
improving your process.

Continuous Improvement
© Henrik Knieberg
3 essential skills needed
regardless of process

Splitting the system into
useful pieces

Software
craftsmanship

Retrospectives

As a buyer
I want to save my shopping cart
so that I can continue shopping later

© Henrik Knieberg
3 essential skills needed
regardless of process

Splitting the system into
useful pieces

As a buyer
I want to save my shopping cart
so that I can continue shopping later

Software
craftsmanship

Retrospectives
3 essential skills needed
regardless of process

Splitting the system into
useful pieces

As a buyer
I want to save my shopping cart
so that I can continue shopping later

Software
craftsmanship

Retrospectives
Essential Skill:
Software craftsmanship
1) Software is never written
once and never changed
[LARM03]
2) How to slow down your
project?
You cant be agile if your code sucks
You cant be agile if your code sucks
Write crappy code
 Make code easier to read
Easy code to read
 Easy code to change
maintain
Why do you write bad code?
#1 reason for Bad code
We write bad code,
because we read bad code
Code Readings?
•
•
•
•

Code Reviews
Peer Reviews
Pair Programming
Open source
Good code is like a joke!
No need for explanation
#TODO: Code to read
https://github.com/nsubstitute/NSubstitute
https://github.com/techtalk/SpecFlow
https://github.com/sf105/goos-code
https://github.com/machine/machine.specifications
https://github.com/BjRo/xunitbddextensions
https://github.com/dtchepak/DaveSquared.StringsTheThing
#TODO: Review Code
•
•
•
•

In your team
With 1 peer
Open source
Brown bags – Lunch time discussion
Code Reviews
• Code, !Person
• Constructively propose changes
 Questions!
Code Reviews
• Code, !Person
• Constructively propose changes
 Questions!

• Review not only code
o Tests
o Build process
o ..
Code Reviews
• Code, !Person
• Constructively propose changes
 Questions!

• Review not only code
o Tests
o Build process
o ..

 Grow as a team
Instead of
“That lousy long method”

Say
“Why don’t you split that
method”

“I reviewed your code and
found 1,2,3 things to
change”

“Can you help me?”

“If you don’t want to do it. I
do it”

“Can I help you with this? I
think we can improve it”
#2 reason for Bad code
Nobody can write good code in 1 sit-in

-> Refactoring
it’s an art of designing code
#TODO Refactoring
https://github.com/NotMyself/GildedRose
https://github.com/jcbozonier/Refactoring-Katas
The little issue with
Refactoring?
Development With and Without Testing
Without Tests

• Don’t know our own quality
• Unclear what works and what
doesn't
• Unintended consequences of
changes remain hidden
• We are never done

With Tests

• Change and refactor without
fear
• Add new features faster

• Confidence that we didn't
break anything
• We can actually be done
Done = Tested!
Refactoring
+
Tests
=
?
Refactoring
+
Tests
=
Waste?? Overhead??
Test-Driven Development (TDD)
• Writing tests prior to writing the production code
• Test-Driven Development is
o
o
o
o

A design practice
A powerful way to avoid defects in software
A feedback loop for validating code changes
A way to write tests
REFACTOR

RED

GREEN
Test-Driven Development (TDD)
Goal is not to write tests
but to write good code

RED

REFACTOR

GREEN
What is Quality
“Why should I care?
We have a QA department!”
**** ADD PIC ****
How do you measure
Quality?
You cant be agile if your code sucks
First Law of Programming

“Lowering Quality Lengthens
Development Time”
http://c2.com/cgi/wiki?FirstLawOfProgramming
Only Quality lets us go faster!
http://manifesto.softwarecraftsmanship.org/
Who?
Quality?
• Measure of how well the software is
designed and implemented
• Subjective
Quality?
•
•
•
•
•
•

LOC
Code Coverage
Class Coupling
Cohesion
Code Duplication
Cyclomatic Complexity
Quality: How to measure?
•
•
•
•
•
•
•

Highly subjective
Highly qualitative
Is the code readable, understandable?
Is the code verbose?
Variable/method names that are meaningful
Simple code that works
Does it have tests? What’s the coverage?
Quality: How to measure?
• Trends
Quality: How to measure?
• Trends
• “Output” over time
o Velocity - Trend
o Business Value - Trend
o Bug – Trends

• #TODO: How do you measure Business value?
Ways to Improve Quality
• Avoid Silo Thinking
o

•
•
•
•
•
•
•

Its not “us” vs “them”

Start early
Don’t Compromise
Schedule time to lower your technical debt
Make it work; make it right (right away)
Requires monitoring and changing behavior
Be willing to help and be helped
Devise lightweight non-bureaucratic measures
Simple Design == High Quality?
•
•
•
•

Passes its tests
Minimizes duplication
Maximizes clarity
Has fewer elements
http://c2.com/cgi/wiki?XpSimplicityRules
#TODO Visualize
•
•
•
•
•

Bug Trends
Build Status
Performance Report
Technical Debt
Code Quality
Visualize Technical Debt

http://verraes.net/2013/07/managed-technical-debt/
Build Monitor
Checkin Frequently
• Focus your work on small tasks
• Easier to describe what you did in your check-in
comment
• Clear code history
• Easier merging -> if you really need to branch and merge
• Fast code reviews
• Never get merge hell -> only give it :-)
http://blog.gfader.com/2011/12/tfs-see-your-application-grow-like.html
Team Efforts
• Avoid Shortcuts
• Take collective ownership
Team should own the code
• Promote positive interaction
• Provide constructive feedback
• Constant code review
Guantanamo Code Tool
• All code is guilty until tested innocent
• Do you have problems maintaining high test coverage?

• Send the untested code to
Guantanamo!
http://docs.codehaus.org/display/ASH/Guantanamo
Agile – the bar is rising

http://blog.gfader.com/2013/05/the-1st-principle-of-agile-manifesto-30.html
Our highest priority is to satisfy the customer

through early and continuous delivery
of valuable software
1st principle of the Agile Manifesto
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software
1st principle of the Agile Manifesto
Recap
The important thing isn’t the process

The important thing is the process for
improving your process
Essential skills needed
regardless of process

Splitting the system into
useful pieces

As a buyer
I want to save my shopping cart
so that I can continue shopping later

Software
craftsmanship

Retrospectives
#TODO TO READ
E. Goldratt “The Goal”

S.Freeman, N.Price GOOS
#TODO References
•
•
•
•

•
•
•

Pragmatics of Agile Development
http://www.agiledeveloper.com/presentations/pragmatics_of_agile_development.pdf
Kanban VS Scrum
http://www.infoq.com/minibooks/kanban-scrum-minibook
Agile Software Development
http://www.agiledeveloper.com/presentations/AgileSoftwareDevelopment.zip
A Thinking Tool called Agile
https://sites.google.com/site/leanagileandscrum/lean-agile-scrum-conference2010/presentations-las-2010/00_Kniberg_Keynote.pdf?attredirects=0&d=1
The Four Elements of Simple Design
http://www.jbrains.ca/permalink/the-four-elements-of-simple-design
http://agilemanifesto.org/
http://manifesto.softwarecraftsmanship.org/
Now you
1.
2.
3.
4.

Download presentation
Search for #TODO
Get it done
Send me a tweet “I’m done”
Continue the conversation
peter.gfader@zuehlke.com
twitter.com/peitor
http://blog.gfader.com

More Related Content

What's hot

SharePoint functionality: To Build or to Buy? Let's ask Pareto!
SharePoint functionality: To Build or to Buy? Let's ask Pareto!SharePoint functionality: To Build or to Buy? Let's ask Pareto!
SharePoint functionality: To Build or to Buy? Let's ask Pareto!
Femke Goedhart
 
Richard Wilburn - Lean Truth
Richard Wilburn - Lean TruthRichard Wilburn - Lean Truth
Richard Wilburn - Lean Truth
AgileNZ Conference
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
Peter Gfader
 
Product backlog
Product backlogProduct backlog
Product backlog
Mahmoud Asadi
 
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
Scrum Bangalore
 
UX in a Dual Track Agile World
UX in a Dual Track Agile WorldUX in a Dual Track Agile World
UX in a Dual Track Agile World
Andrea Neuhoff
 
Product Backlog Management
Product Backlog ManagementProduct Backlog Management
Product Backlog Management
Silvana Wasitova, Scrum & Agile Coach
 
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
Ryan McKergow
 
Agile Presentation To IIBA MInneapolis
Agile Presentation To IIBA MInneapolisAgile Presentation To IIBA MInneapolis
Agile Presentation To IIBA MInneapolis
Bill Gaiennie
 
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
Adrian Jones
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product Teams
Jeremy Horn
 
Agile Business Analyst - Huong Tran
Agile Business Analyst - Huong TranAgile Business Analyst - Huong Tran
Agile Business Analyst - Huong Tran
Huong Tran
 
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Pedro Teixeira
 
Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech Lead
Ben Limmer
 
Breaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large CompanyBreaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large Company
Ilia Kuznetsov (ilia.v.kuznetsov@gmail.com)
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
Lisa Whalen
 
Story Mapping in Depth
Story Mapping in DepthStory Mapping in Depth
Story Mapping in Depth
LitheSpeed
 
The Creative Product Owner
The Creative Product OwnerThe Creative Product Owner
The Creative Product Owner
Al Bennett
 
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Agile Software Community of India
 
Journey from Business Analyst to Product Owner
Journey from Business Analyst to Product OwnerJourney from Business Analyst to Product Owner
Journey from Business Analyst to Product Owner
AgileNetwork
 

What's hot (20)

SharePoint functionality: To Build or to Buy? Let's ask Pareto!
SharePoint functionality: To Build or to Buy? Let's ask Pareto!SharePoint functionality: To Build or to Buy? Let's ask Pareto!
SharePoint functionality: To Build or to Buy? Let's ask Pareto!
 
Richard Wilburn - Lean Truth
Richard Wilburn - Lean TruthRichard Wilburn - Lean Truth
Richard Wilburn - Lean Truth
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
Product backlog
Product backlogProduct backlog
Product backlog
 
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
What It Takes To Be a Product Owner - Pratap Kumble - Scrum Bangalore 19th Me...
 
UX in a Dual Track Agile World
UX in a Dual Track Agile WorldUX in a Dual Track Agile World
UX in a Dual Track Agile World
 
Product Backlog Management
Product Backlog ManagementProduct Backlog Management
Product Backlog Management
 
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
The secret life of an Agile Business Analyst - Sydney Agile Meetup group - 13...
 
Agile Presentation To IIBA MInneapolis
Agile Presentation To IIBA MInneapolisAgile Presentation To IIBA MInneapolis
Agile Presentation To IIBA MInneapolis
 
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product Teams
 
Agile Business Analyst - Huong Tran
Agile Business Analyst - Huong TranAgile Business Analyst - Huong Tran
Agile Business Analyst - Huong Tran
 
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
Implementing Dual-Track Agile :: Lessons from the trenches @ITSpring.by May 2019
 
Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech Lead
 
Breaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large CompanyBreaking the mold: Lean Product Management and MVP in a Large Company
Breaking the mold: Lean Product Management and MVP in a Large Company
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
 
Story Mapping in Depth
Story Mapping in DepthStory Mapping in Depth
Story Mapping in Depth
 
The Creative Product Owner
The Creative Product OwnerThe Creative Product Owner
The Creative Product Owner
 
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
Thinking more product: Moving from Scrum to a dual-track agile approach by Su...
 
Journey from Business Analyst to Product Owner
Journey from Business Analyst to Product OwnerJourney from Business Analyst to Product Owner
Journey from Business Analyst to Product Owner
 

Similar to You cant be agile if your code sucks

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
Peter Gfader
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
Ampersand
 
What designers can learn from (code) review
What designers can learn from (code) reviewWhat designers can learn from (code) review
What designers can learn from (code) review
Ida Aalen
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
Xebia India
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Jason Tice
 
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Dave Hulbert
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
Mahesh Salaria
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
gsporar
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
Einar Ingebrigtsen
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Atlassian
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
SmartBear
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
Maven Logix
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
Mustafa Savaşcı
 
Kku2011
Kku2011Kku2011
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
SmartBear
 
Test-Driven Development Reference Card
Test-Driven Development Reference CardTest-Driven Development Reference Card
Test-Driven Development Reference Card
Seapine Software
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
SSW
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Steve Mercier
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 

Similar to You cant be agile if your code sucks (20)

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
 
What designers can learn from (code) review
What designers can learn from (code) reviewWhat designers can learn from (code) review
What designers can learn from (code) review
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Kku2011
Kku2011Kku2011
Kku2011
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
 
Test-Driven Development Reference Card
Test-Driven Development Reference CardTest-Driven Development Reference Card
Test-Driven Development Reference Card
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 

More from Peter Gfader

You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
Peter Gfader
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
Peter Gfader
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
Peter Gfader
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
Peter Gfader
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
Peter Gfader
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
Peter Gfader
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
Peter Gfader
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
Peter Gfader
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
Peter Gfader
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
Peter Gfader
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
Peter Gfader
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
Peter Gfader
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
Peter Gfader
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
Peter Gfader
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
Peter Gfader
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
Peter Gfader
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
Peter Gfader
 
Work with data in ASP.NET
Work with data in ASP.NETWork with data in ASP.NET
Work with data in ASP.NET
Peter Gfader
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
Peter Gfader
 
Web services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows FormsWeb services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows Forms
Peter Gfader
 

More from Peter Gfader (20)

You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 
Work with data in ASP.NET
Work with data in ASP.NETWork with data in ASP.NET
Work with data in ASP.NET
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Web services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows FormsWeb services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows Forms
 

Recently uploaded

Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
aakash malhotra
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
moinahousna
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
Edge AI and Vision Alliance
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
WhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring AppsWhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring Apps
HackersList
 

Recently uploaded (20)

Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
WhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring AppsWhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring Apps
 

You cant be agile if your code sucks

Editor's Notes

  1. Click to add notesPeter Gfader
  2. 3 ingredients for success
  3. Wiekommeichzu Agile?1. Scrum/AgileSüdtirolProjekte: Alles gut -> ZumSchluss (Graph from xscd)Graph: Happiness, Definition Wahnsinn: Immerwieder das Gleichemacht, abereinanderesErgebniserwartet2. AgileMinimize Risk: Deployment dayFertigmitEntwickeln. Deploy -> Hardware ist da, OS und tools alles da. Deploy to Production.Funzt net. **TODO: Find the problem we had @AuctionsPlus, @POK, POK: IP filtering, ...
  4. Wiekommeichzu Scrum und CD?1. Scrum/AgileSüdtirolProjekte: Alles gut -> ZumSchluss (Graph from xscd)Graph: Happiness, Definition Wahnsinn: Immerwieder das Gleichemacht, abereinanderesErgebniserwartet2. AgileMinimize Risk: Deployment dayFertigmitEntwickeln. Deploy -> Hardware ist da, OS und tools alles da. Deploy to Production.Funzt net. **TODO: Find the problem we had @AuctionsPlus, @POK, POK: IP filtering, ...
  5. Develop relevant softwareDeliver value earlierCreate value fastWelcome changes and gapsOpen communicationEmpowering peopleKeep it simple
  6. 2011 Snowbird
  7. Develop relevant softwareDeliver value earlierCreate value fastWelcome changes and gapsOpen communicationEmpowering peopleKeep it simple
  8. Purpose of this presentation is to clarify how some of these things fit togetherHow does agile look when done well?
  9. Pretty meaningless question right? Because the answer depends on your context. For eating meatballs the fork is probably best. For chopping mushrooms the knife is probably best. For drumming on the table either will do fine. For eating a steak you probably want to use both tools together. For eating rice... well... some prefer fork while others prefer chopsticks.
  10. Never blame the tool!
  11. Vergleichen um zuVerstehen und Lernen und nichtBeurteilen und Schlechtmachen
  12. Vergleichen um zuVerstehen und Lernen und nichtBeurteilen und Schlechtmachen
  13. Don’t love agile.Know your GoalFocus on WhyAgile/Lean are tools, not goalsTools sind nicht erfolgreich oder scheitern. Menschen sind aber.Es gibt kein gutes oder schlechtes Tool. Nur gute oder Schlechte Entscheidungen wenn, wo, wie und wieso wir ein Tool einsetzenDon’t limit yourself to one toolMix & matchCompare for understanding, not judgement.Experiment & enjoy the rideDon’t worry about getting it right from start. You won’t.The important thing isn’t your process.The important thing is your process for improving your process.
  14. Purpose of this presentation is to clarify how some of these things fit togetherHow does agile look when done well?
  15. - Communication Skills- Facilitator / ScrumMaster- Vision
  16. Having good tests is like have great brakes on a sports car. Good brakes allow us to go faster.We do not know the QualityFearless refactoring requires Tests. Refactoring is required to react on a changing worldWe are faster releasing the SWDone = Tested. No DoneDone!
  17. waste?
  18. Sometimes you don’t need well designed codeGoal is not to write tests but to write good code
  19. Sometimes you don’t need well designed codeGoal is not to write tests but to write good code
  20. Tester
  21. Go fast -> Go well
  22. Cyclomatic Complexity NumberGives an indication of degree of hardnessDoes not indicate degree of defectAddresses problems arising from large, low cohesive codeCode Size Rules check for the size of code and flags if it exceedsHow small is smallCode must fit into a screen (without lowering font size)[about 15 to 20 statements per method]