![Page 1: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/1.jpg)
© Computas AS 07.04.2023
Modularization, testing and technical debt
in a large agile project
Morten Forfang, Harald Søvik{mfo, hso} @ computas.com
![Page 2: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/2.jpg)
Speakers
Morten Forfang
Architect, Ph.D.
Harald Søvik
Tech Lead, M.Sc.
2 © Computas AS 07.04.2023
![Page 3: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/3.jpg)
3 © Computas AS 07.04.2023
Computas
work support systems (bpm)
knowledge management
consultancy services
custom software solutions
180 employees w/ M.Sc. or Ph.D.
100% owned by employees
![Page 4: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/4.jpg)
4 © Computas AS 07.04.2023
The customer
Mattilsynet
Norwegian Food Safety Authority
consolidation of 4 gov. bodies
1300 employees
![Page 5: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/5.jpg)
5 © Computas AS 07.04.2023
The project
challenges created by merger
model business processes
consolidate 40 legacy systems
reduce number of tech. platforms
reduce data duplication
![Page 6: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/6.jpg)
Mats !
6 © Computas AS 07.04.2023
![Page 7: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/7.jpg)
7 © Computas AS 07.04.2023
Scrumish
waterfall ~> iterative
4 teams á 5 devs
sprint
backlog
burndown
retrospective
![Page 8: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/8.jpg)
8 © Computas AS 07.04.2023
Some lessions learnedcoupling and modularization
testing environments
technical debt
![Page 9: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/9.jpg)
9 © Computas AS 07.04.2023
Subject 1
Coupling and modularization
![Page 10: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/10.jpg)
10 © Computas AS 07.04.2023
Coupling and modularization
![Page 11: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/11.jpg)
11 © Computas AS 07.04.2023
Coupling and modularization
My code
Maven2IDEA
FrameSolution
AppServer
WebServerClient
![Page 12: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/12.jpg)
12 © Computas AS 07.04.2023
Lessions learned
Abstractions is not a substitute for decoupling and formally controlled module interfaces.
Abstraction and generalization should been driven by necessity and experience, not guesswork and intentions.
![Page 13: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/13.jpg)
13 © Computas AS 07.04.2023
Subject 2
Testing environments
![Page 14: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/14.jpg)
14 © Computas AS 07.04.2023
Testing environments
app server
client / terminal
web server
ws front end
integration server
ePhorte
Agresso
…
![Page 15: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/15.jpg)
15 © Computas AS 07.04.2023
Testing environments
build server a
build server b
environment 1
environment 2
environment 3
environment 4
environment 5
environment 6
![Page 16: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/16.jpg)
16 © Computas AS 07.04.2023
Testing environments
2 x 3 environments
Staging levels
Availability and stability
Monitoring and SLA
Automated build and deployment
Static code analysis
![Page 17: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/17.jpg)
17 © Computas AS 07.04.2023
Lessons learned
Treat your testing environment like a small production
environment.
Define a Service Level Agreement for your domain
experts and testers.
Automate everything.
![Page 18: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/18.jpg)
18 © Computas AS 07.04.2023
Subject 3
Scrum and technical debt
![Page 19: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/19.jpg)
19 © Computas AS 07.04.2023
Priority
new functionalit
yvs.
technical debt
![Page 20: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/20.jpg)
20 © Computas AS 07.04.2023
Scrum, you say ?
Product ownerProject managerTest managerSolution architectScrum masterDeveloper
![Page 21: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/21.jpg)
21 © Computas AS 07.04.2023
In the backlog ..
Easily defineable user stories
priorityestimatevalue
Technical stuffnew or changed
= Business stuff
![Page 22: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/22.jpg)
22 © Computas AS 07.04.2023
Outside the backlog (1)Small things
User administrationDevelopment platformMerging and conflictsScripts, tools and utils..
![Page 23: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/23.jpg)
23 © Computas AS 07.04.2023
Outside the backlog (2)Quick, dirty solutions
integration domain modelinit codepluginsframework
![Page 24: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/24.jpg)
24 © Computas AS 07.04.2023
Outside the backlog (3)
Lots of codeproprietary patternsnew patterns retroactive decisions
Testsdidn’t write it firstoverdueno time
![Page 25: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/25.jpg)
25 © Computas AS 07.04.2023
Technical debt punch lines
Bad time ..In the middle of ..Very important ..Unsure of the cost ..Unsure of the consequence ..Not my problem ..
![Page 26: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/26.jpg)
26 © Computas AS 07.04.2023
Consequences
Inexpectabilitywrong estimatesNo reuseDuplicate codeBugs and defectsUnhappy developers
![Page 27: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/27.jpg)
27 © Computas AS 07.04.2023
Now what ?
transparencyeasy to tell ..
responsibilityno punishment
priorizationright person
![Page 28: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/28.jpg)
28 © Computas AS 07.04.2023
Lessions learned
Do not underestimate the accumulated overhead caused by small problems being ignored over a lengthy period of time.
Do not underestimate the seriousness of technical debt.
![Page 29: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/29.jpg)
29 © Computas AS 07.04.2023
Summary coupling and modularization testing environmentstechnical debt
![Page 30: Modularization, testing and technical debt (in a large agile project)](https://reader030.vdocuments.us/reader030/viewer/2022020217/544112acb1af9ffb4b8b4605/html5/thumbnails/30.jpg)
Questions ?
Morten Forfang
Web Architect, Ph.D.
Harald Søvik
Tech Lead, M.Sc.
30 © Computas AS 07.04.2023
www.computas.com
job openings for experienced developers !