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

30
© Computas AS 23.01.2022 Modularization, testing and technical debt in a large agile project Morten Forfang, Harald Søvik {mfo, hso} @ computas.com

Post on 17-Oct-2014

1.039 views

Category:

Technology


6 download

DESCRIPTION

 

TRANSCRIPT

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

© 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)

Speakers

Morten Forfang

Architect, Ph.D.

[email protected]

Harald Søvik

Tech Lead, M.Sc.

[email protected]

2 © Computas AS 07.04.2023

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

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)

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)

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)

Mats !

6 © Computas AS 07.04.2023

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

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)

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)

9 © Computas AS 07.04.2023

Subject 1

Coupling and modularization

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

10 © Computas AS 07.04.2023

Coupling and modularization

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

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)

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)

13 © Computas AS 07.04.2023

Subject 2

Testing environments

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

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)

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)

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)

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)

18 © Computas AS 07.04.2023

Subject 3

Scrum and technical debt

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

19 © Computas AS 07.04.2023

Priority

new functionalit

yvs.

technical debt

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Questions ?

Morten Forfang

Web Architect, Ph.D.

[email protected]

Harald Søvik

Tech Lead, M.Sc.

[email protected]

30 © Computas AS 07.04.2023

www.computas.com

job openings for experienced developers !