Click here to load reader
Upload
avisi-bv
View
220
Download
1
Tags:
Embed Size (px)
DESCRIPTION
How to design and deliver large 24/7 systems in an agile manner
Citation preview
CoachingSOA / IntegrationSolution Quality Enterprise
JavaAgile / Scrum
Viktor Grgić @vgrgic, LeanArch.eu
Large 24/7 systems and Agile Soft. Dev.
Architecting Story 1 Story 2
Viktor Grgić @vgrgic, LeanArch.eu
Large software projects today
...are replacing something old for new.
Many of them have single goal: Replace outdated technology with new one.
Many of them are huge investments with long term promises of so called flexibility in future.
...and if your large project is none of these, then you’re maybe creating a christmas tree. Looks nice, but it is dead very soon.
…or your project is small and delivers value
Viktor Grgić @vgrgic, LeanArch.eu
Some nice False Dichotomies (fallacy of the false alternative)
“You can’t simply start coding, therefore you always have some up-front design.”
“Developers don’t care and are incapable of caring about architecture, because they need to focus on coding”“Agile / Scrum, that is something for frontend apps, not for 24/7 business critical systems”
We need to be more Agile
We need more architecture
“Some things cannot and should not change”
Viktor Grgić @vgrgic, LeanArch.eu
The biggest problem in software architecture is that we think we know what we are doing.
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Great Mosque of Djenné, Mali ruins 1828
Viktor Grgić @vgrgic, LeanArch.eu
Great Mosque of Djenné rebuilt 1895
Viktor Grgić @vgrgic, LeanArch.eu
Great Mosque of Djenné 1910
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Everyone is
involved
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
About 7 years ago...
Port of Rotterdam, Project HaMIS 1. Replace outdated traffic management system 2. Support the port of Rotterdam expansion
24/7 system for traffic management, transport, environmental safety and crisis management.
Viktor Grgić @vgrgic, LeanArch.eu
New (as defined about 6 years ago)
Viktor Grgić @vgrgic, LeanArch.eu
Lots of documents
Migration Plan
ArchitectureVisionOperations
Vision
....QA
Vision
Blueprint
ReferencedataVision
Viktor Grgić @vgrgic, LeanArch.eu
We just need...
100+ identified use cases
Project Start Architecture
Q&A department
Architecture with 4 layers & 6 subsystems
6 architects
800+ architectural decisions
RUP and Scrum but
BPEL process server
Viktor Grgić @vgrgic, LeanArch.eu
1 Use Case in 6 months
Viktor Grgić @vgrgic, LeanArch.eu
(Re)Started
Ship inspections process
Little risk
Significant business value
Migration stuff completely postponed
Agile / Scrum introduction
One sprint later, useful functions delivered in production
Viktor Grgić @vgrgic, LeanArch.eu
Viktor Grgić @vgrgic, LeanArch.eu
Optimize the whole
Marketing
User / Business
Requirements gathering Architecture
Planning
Analysis
Development
TestingDelivering
...has a challenge
Leadtime
Department 1 Department 2 Department 3
Department 4
Department 5
Department 6
Department 7Department 8
Agile team
Agile teamAgile team
Agile team
Viktor Grgić @vgrgic, LeanArch.eu
Product Vision Box
Viktor Grgić @vgrgic, LeanArch.eu
Architecting
Open space sessions
Knowledge sharing
Documentation is Wiki filled by “harvesting” the knowledge
Standardization is discovered and not predefined
Just-in-timejust-enough
Continuous refactoring towards better designArchitecture principles:
Simplicity and design for change
Viktor Grgić @vgrgic, LeanArch.eu
Business processes?
Viktor Grgić @vgrgic, LeanArch.eu
What was my role?
����� �
������� �
����� �
�������
Viktor Grgić @vgrgic, LeanArch.eu
Welcome to double legacy!
Viktor Grgić @vgrgic, LeanArch.eu
Which path to choose?
Should we do all reporting first in the new system?
Which part of the system should we replace first?
How do we prevent a big bang?
Where to start?
We followed ships in harbour!
Viktor Grgić @vgrgic, LeanArch.eu
Any decision that can be postponed is postponed
...also the migration path
…but, this is not easy
Viktor Grgić @vgrgic, LeanArch.eu
Migration = Strangulation
HaMIS (new)IVS (old)
User
Businessevent 1
Businessevent 1
Businessevent 2
Businessevent 2
data not yet managed in HaMIS
"The most important reason to consider a strangler application over a cut-over rewrite is reduced risk.” - Martin Fowler, StranglerApplication
24/7 system Every 2 weeks in production
Viktor Grgić @vgrgic, LeanArch.eu
We banned term: Generic or Reusable on every level
Viktor Grgić @vgrgic, LeanArch.eu
Aren’t you creating a mess?
One team delivers the simplest possible solution
Another team delivers another similar even simpler possible solution :-)
...and maybe third one.
Then, we get together and talk about what you learned and which one is really the best in this context.
Viktor Grgić @vgrgic, LeanArch.eu
Examples
Data model with production data is gradually extended and continually refactored
IBM Websphere replaced by JBoss
User interface redesigned 2 or more times
SOAP replaced by binary Hessian
Core domain model concepts (gradually) redesigned: inspection checklist, vessel visit vs. vessel
Viktor Grgić @vgrgic, LeanArch.eu
Each team is a cross-functional team and has intensive contact with end-users
Viktor Grgić @vgrgic, LeanArch.eu
Lessons learned
Never stop delivering business value.
Deal with migration gradually / strangulation
Everything in software can be soft even data / domain model!
Trust in business / context driven approach above standard / generic solutions
Involve everyone to solve complex problems
Don’t get stuck in complexities of architectural B.S.
Viktor Grgić @vgrgic, LeanArch.eu
“Everybody, all together, early on” James O. Coplien