Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,095 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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 />

×