How can agile help you in clearing the technical debt

14
How can Agile help you in clearing the Technical Debt? Manu PK @manupk12 http://www.jyops.blogspot.in/ Scrum Bangalore Meetup Sept 14,2013

description

 

Transcript of How can agile help you in clearing the technical debt

Page 1: How can agile help you in clearing the technical debt

How can Agile help you in clearing the

Technical Debt?

Manu PK

@manupk12

http://www.jyops.blogspot.in/

Scrum Bangalore Meetup Sept 14,2013

Page 2: How can agile help you in clearing the technical debt

About Me

� Associate Lead in Technology @ Schneider Electric

� Author @ DZone and Blogger @

http://www.jyops.blogspot.com/http://www.jyops.blogspot.com/

� Interested in knowing How great web applications

were built.

Page 3: How can agile help you in clearing the technical debt

Agenda

� Defining Technical Debt

� Clearing Technical Debt in Agile Projects

� Upfront Vs Evolving Design

� Summary

Page 4: How can agile help you in clearing the technical debt

Defining Technical Debt

� Technical Debt Metaphor - A term coined by Ward

Cunningham (1992) http://c2.com/cgi/wiki?WardExplainsDebtMetaphor

� Technical debt metaphor referring to the eventual consequences of poor software development practices within a codebase - Wiki.practices within a codebase - Wiki.

� Technical debt and Cost of Change

� I got your point!!.

Page 5: How can agile help you in clearing the technical debt

Defining Technical Debt - 2

Page 6: How can agile help you in clearing the technical debt

Technical Debt in Agile Context

� From the Agile Principles http://agilemanifesto.org/principles.html

”Continuous attention to technical excellence and

good design enhances agility”

� Working software over …� Working software over …

� Do Agile, but beware of being Fragile

Page 7: How can agile help you in clearing the technical debt

Your Must Do Defense

� Continuous Integration – Code Quality and Test Reports

� Tools to help ☺� Sonar� Static Analysis Tools� Good Programming practices and guidelines

Page 8: How can agile help you in clearing the technical debt

Negotiating with Product Owner

� Case Study:– Quote Reports

� Use the opportunity of Change requests to clean up the functionality.the functionality.

� Technical Stories in Release planning.

� Developers - As Software Professionals its our responsibility to push for clean code.

Page 9: How can agile help you in clearing the technical debt

Trying out new Stuff

� Spike – A time boxed experiment of the Unknown

� A daemon thread!

� Strategies for Major technical revamps

� Case Study :- Upgrading Tapestry, Spring and Hibernate to latest versions

Page 10: How can agile help you in clearing the technical debt

The dilemma : Ship it Fast Vs Ship it Clean!

� Ok, Get it working first

� Now, get back and fix it.

� How much to Design? – Upfront Vs Evolving Design

� More design => clear requirements.More design => clear requirements.

� You know the correct design when you are done!

� Re-Design is the only viable alternative!

Page 11: How can agile help you in clearing the technical debt

Summary

� Detect the evil within!

� Use the agile practices to Pay of your debt� Use the tools for first defense.� Negotiate and get the PO on board.Negotiate and get the PO on board.� Use Spikes when you try new stuff.

� Choose your design style

� Make your code base cleaner than Inherited ☺

Page 12: How can agile help you in clearing the technical debt

Questions / Comments /

Feedback

@manupk12| [email protected]

Slides @

http://www.slideshare.net/pkmanu

Page 13: How can agile help you in clearing the technical debt

References

� Martin Fowler Talk

� Martin Fowler on Technical Debt

� Agile Architecture Emerges -- or Does It

� Using Spikes

� Steve McConnell’s talk

� http://www.ontechnicaldebt.com

Ward Explains Debt Metaphor� Ward Explains Debt Metaphor

Page 14: How can agile help you in clearing the technical debt

Thank You Thank You

for Listening