Modularization, testing and technical debt (in a large agile project)

1,064 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,064
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Modularization, testing and technical debt (in a large agile project)

  1. 1. © Computas AS 04.06.2010<br />Modularization, testing and technical debt<br />in a large agile project<br />Morten Forfang, Harald Søvik<br />{mfo, hso} @ computas.com<br />
  2. 2. Speakers<br />Morten Forfang<br />Architect, Ph.D.<br />mfo@computas.com<br />Harald Søvik<br />Tech Lead, M.Sc.<br />hso@computas.com<br />2<br />© Computas AS 04.06.2010<br />
  3. 3. 3<br />© Computas AS 04.06.2010<br />Computas<br />work support systems (bpm)<br />knowledgemanagement<br />consultancy services<br />custom software solutions<br />180 employees w/ M.Sc. or Ph.D.<br />100% owned by employees<br />
  4. 4. 4<br />© Computas AS 04.06.2010<br />The customer<br />Mattilsynet<br />NorwegianFood Safety Authority<br />consolidationof 4 gov. bodies<br />1300 employees<br />
  5. 5. 5<br />© Computas AS 04.06.2010<br />The project<br />challengescreated by merger<br />model business processes<br />consolidate 40 legacy systems<br />reducenumberoftech. platforms<br />reduce data duplication<br />
  6. 6. Mats !<br />6<br />© Computas AS 04.06.2010<br />
  7. 7. 7<br />© Computas AS 04.06.2010<br />Scrumish<br />waterfall ~> iterative<br />4 teams á 5 devs<br />sprint<br />backlog<br />burndown<br />retrospective<br />
  8. 8. 8<br />© Computas AS 04.06.2010<br />Somelessionslearned<br />coupling and modularization<br />testing environments<br />technicaldebt<br />
  9. 9. 9<br />© Computas AS 04.06.2010<br />Subject 1<br />Coupling and modularization<br />
  10. 10. 10<br />© Computas AS 04.06.2010<br />Coupling and modularization<br />
  11. 11. 11<br />© Computas AS 04.06.2010<br />Coupling and modularization<br />My code<br />Maven2<br />IDEA<br />FrameSolution<br />WebServer<br />Client<br />AppServer<br />
  12. 12. 12<br />© Computas AS 04.06.2010<br />Lessionslearned<br />Abstractions is not a substitute for decoupling and formally controlled module interfaces.<br />Abstraction and generalization should been driven by necessity and experience, not guesswork and intentions.<br />
  13. 13. 13<br />© Computas AS 04.06.2010<br />Subject 2<br />Testing environments<br />
  14. 14. 14<br />© Computas AS 04.06.2010<br />Testing environments<br />client / terminal<br />web server<br />ws front end<br />ePhorte<br />app server<br />integration server<br />Agresso<br />…<br />
  15. 15. 15<br />© Computas AS 04.06.2010<br />Testing environments<br />environment 1 <br />build server a<br />environment 2<br />environment 3<br />environment 4<br />build server b<br />environment 5<br />environment 6<br />
  16. 16. 16<br />© Computas AS 04.06.2010<br />Testing environments<br />2 x 3 environments<br />Staging levels<br />Availability and stability<br />Monitoringand SLA<br />Automated build and deployment<br />Staticcodeanalysis<br />
  17. 17. 17<br />© Computas AS 04.06.2010<br />Lessonslearned<br />Treat your testing environment like a small production <br />environment. <br />Define a Service Level Agreement for your domain <br />experts and testers. <br />Automate everything.<br />
  18. 18. 18<br />© Computas AS 04.06.2010<br />Subject 3<br />Scrum and technicaldebt<br />
  19. 19. 19<br />© Computas AS 04.06.2010<br />Priority<br />newfunctionality<br />vs.<br />technicaldebt<br />
  20. 20. 20<br />© Computas AS 04.06.2010<br />Scrum, you say ?<br />Productowner<br />Project manager<br />Test manager<br />Solutionarchitect<br />Scrum master<br />Developer<br />
  21. 21. 21<br />© Computas AS 04.06.2010<br />In thebacklog ..<br />Easilydefineableuserstories<br />priority<br />estimate<br />value<br />Technical stuff<br />new or changed<br />= Business stuff<br />
  22. 22. 22<br />© Computas AS 04.06.2010<br />Outsidethebacklog (1)<br />Smallthings<br />Useradministration<br />Developmentplatform<br />Merging and conflicts<br />Scripts, tools and utils<br />..<br />
  23. 23. 23<br />© Computas AS 04.06.2010<br />Outsidethebacklog (2)<br />Quick, dirtysolutions<br />integration<br />domainmodel<br />initcode<br />plugins<br />framework<br />
  24. 24. 24<br />© Computas AS 04.06.2010<br />Outsidethebacklog (3)<br />Lots of code<br />proprietary patterns<br />new patterns <br />retroactive decisions<br />Tests<br />didn’t write it first<br />overdue<br />no time<br />
  25. 25. 25<br />© Computas AS 04.06.2010<br />Technical debt punch lines <br />Bad time ..<br />In the middle of ..<br />Very important ..<br />Unsure of the cost ..<br />Unsure of the consequence ..<br />Not my problem ..<br />
  26. 26. 26<br />© Computas AS 04.06.2010<br />Consequences<br />Inexpectability<br />wrong estimates<br />No reuse<br />Duplicate code<br />Bugs and defects<br />Unhappy developers<br />
  27. 27. 27<br />© Computas AS 04.06.2010<br />Nowwhat ?<br />transparency<br />easy to tell ..<br />responsibility<br />nopunishment<br />priorization<br />right person<br />
  28. 28. 28<br />© Computas AS 04.06.2010<br />Lessionslearned<br />Do not underestimate the accumulated overhead caused by small problems being ignored over a lengthy period of time.<br />Do not underestimate the seriousness of technical debt.<br />
  29. 29. 29<br />© Computas AS 04.06.2010<br />Summary<br />coupling and modularization<br />testing environments<br />technicaldebt<br />
  30. 30. Questions ?<br />Morten Forfang<br />Web Architect, Ph.D.<br />mfo@computas.com<br />Harald Søvik<br />Tech Lead, M.Sc.<br />hso@computas.com<br />30<br />© Computas AS 04.06.2010<br />jobopenings for experienceddevelopers !<br />www.computas.com<br />

×