This presentation shows the problems and challenges in IT system evolution and the ways to deal with them, from Architect & Team Leader and Project & Portfolio Manager perspective
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
How to overcome challenges in it system evolution
1. How to overcome challenges in IT
system evolution
Adam Pietrzak, Grzegorz Sobczyk
2. 2
11
Project
Managerów
13
Testerów
12
Analityków
systemowych,
projektantów
UX
120 Programiści
PHP/JAVA/
.NET
10
HTML / CSS
Developerów
10
Strategia,
e-marketing,
konsultanci
A few words about us
Adam Pietrzak Grzegorz Sobczyk
Architect / Team leader
Sometimes: Java/JVM developer
Over 10 years experience
Likes: skateboarding and JVM meetups
Doesn't like: coffee
Working together in team of 20 people.
Project & Portfolio Manager
Previously: Business Analyst
Over 10 years experience
Hobby: MTB
3. 3
11
Project
Managerów
16
Marketing
w sieci
120 Programiści
PHP/JAVA/
.NET
10
Strategia,
e-marketing,
konsultanci
Welcome to Unity Group
21 years of experience | 200+ employees | 7 mln EUR turnover in 2017 | Over 100 actively supported clients |
Over 500 projects delivered since 1997 | Located in fastest growing IT outsourcing locations
in Europe: Wroclaw, Krakow (Cracow), Poznan
Bespoke software
solutions (web and
mobile)
CMS / CXM
& Marketing
Automation solutions
Team outsourcing
& Staff
augmentation
E-commerce
& omnichannel
solutions
4. Our experience in delivering services internationally
4
• We are well prepared for cooperation:
- either with big brands in various sectors that require experienced team and thorough - knowledge
- or smaller startups that expect proper guidance
7
Project
Managerów
Retail / Distribution / FMCG
Finance / Insurrance
Automotive / Industry
5. 5
11
Project
Managerów
How to overcome challenges in IT
system evolution
• Our experience in big e-commerce system development and
maintenance
• "Victims" of our actions:
• Customers
• Business Owners
• Project Managers
• Developers
• Challenges (evolution of big systems and long-term projects)
• Future and possibilities
We are going to talk about:
6. 6
11
Project
Managerów
Root problems:
1. Quick and dirty development in the
past and its natural consequences:
• "Spaghetti code"
• Significant technical debt
2. Inconsistent development due to:
• Lack of roadmap
• Lack of good coding practices
Bugs and failures
7. 7
11
Project
Managerów
Bugs and failures
Negative effects:
1. Repeating 'Out Of Service' situations
2. Error-prone and unstable system after
modifications
3. Dissatisfaction of customers
Victims:
- Customers - Yes
- Business Owners - Yes
- Project Managers - No
- Developers - No
13. 13
Long Time-To-Market
Root problems:
1. More complex and time-
consuming development cycle
2. Many Product Owners and
Stakeholders
3. Many simultaneous changes
14. 14
Long Time-To-Market
Negative effects:
1. Lost benefits and missed
opportunity to be a pioneer
2. Supplier's reluctance to start
immediately and work in
quick&dirty way
Victims:
- Customers - No
- Business Owners - Yes
- Project Managers - Yes
- Developers - No
20. 20
Low performance and HA
Root problems:
1. The system is complex and well-
organized, but it is complicated
2. Adding resources does not help
3. Traffic is growing. Especially during the
campaign
4. Background operations have an impact
on the entire system
21. 21
Low performance and HA
Negative effects:
1. Business Owners are irritated that their
applications do not support all traffic
(BlackFriday)
2. The system is not responsive
3. Users have negative opinion about the
application in social-media
4. Business Owners must agree on hot
fixes and downtimes
Victims:
- Customers - Yes
- Business Owners - Yes
- Project Managers - No
- Developers - No
22. 22
Low performance and HA
http2.unity.pl
Solutions:
1. Application profiling, stress tests and
metrics
2. Monitoring, analysis and regularity tests
3. Cache: local, central, http (varnish + ESI)
4. Queues and data buses
5. Turbo http/2
6. Horizontal scaling (allows rolling
deployments, continuous delivery,
flexible performance improvement)
24. 24
11
Project
Managerów
Expensive maintenance
and development
Negative effects:
1. Cost for client
2. Lower efficiency of team due to:
• Time-consuming communication
• Multitasking and lot of work in
progress
• Organization activities
• Necessity of „changeovers”
Victims:
- Customers - No
- Business Owners - Yes
- Project Managers -Yes
- Developers - No
25. 25
11
Project
Managerów
Expensive maintenance and development
Solutions:
1. Continuous improvement of team
organization
• Sharing knowledge
• More advanced project/task
management tools (e.g. JIRA)
• Another/Additional agile practices
26. 26
11
Project
Managerów
Expensive maintenance and development
Solutions:
2. DevOps
• Automated testing
• Internal tools created on one's own
• Shortening time to first commit (e.g. One
Click Run)
• Other automation tools (e.g. ANSIBLE)
27. 27
11
Project
Managerów
Expensive maintenance and development
Solutions:
3. Technical debt reducing
• Removing unused code and
simplifying the rest
• Using specialized tools (e.g.
SonarQube) as hints (potential bugs,
vulnerabilities, duplicated code,
untested code)
28. 28
11
Project
Managerów
Expensive maintenance and development
Solutions:
4. PoC (Proof of Concept) and MVP
(Minimum Viable Product)
• Not only for business sense verification
but also in order to reduce risk of
costly washouts and to evaluate the
final cost more precisely
29. 29
Unattractive maintenance
Root problem:
1. Old components and libraries
2. Old unused code
3. Unnecessary tools
4. Large entry threshold for new
employees
5. Differences between old and new
generation (different style of work,
focus on new products, familiar with
trends)
30. 30
11
Project
Managerów
Unattractive maintenance
Negative effects:
1. Acquiring a new person has
become difficult
2. Negative effects of employee
attrition
3. Frequent explanations "it's hard
to improve"
Victims:
- Customers - No
- Business Owners - No
- Project Managers -Yes
- Developers - Yes
32. 32
11
Project
Managerów
Trends and possibilities
• Big & complex monolithic application
• Modifications influence on system as a whole (fragility)
• Potential vendor lock
Where are we now
Possibilities
Be aware: There is no
silver bullet!
• Some systems are divided into smaller parts by specific
roles (UI, REST, etc.)
• In other systems we implement micro/macro services
• Other systems are divided between different server
rooms (but they can work independently)
34. 34
Making the right decision
• Making a decision what to do with your system boils down to analysis of
several factors e.g. expenses, current trends in technology as well as
condition of your platform. However, there is one essential issue that should
be considered - how important the system is for your business. In other
words, which phase of its evolution the system has reached (presented by the
vertical swimlanes in the picture).
• After your system has reached maturity level when Time-To-Market matters
the cost of IT maintenance and development is not so crucial anymore
compared to the cost of marketing, assortment management and logistics.
These expenses are much higer, however they bring huge money.
35. 35
Making the right decision
• At the same time IT system limitations or its unavailability - even during
very short period - can seriously lower company's reputation and deprive it
from huge profits. It is not important how much IT costs but whether
system is fully operational.
• There is no universal solution that can be applied to mature and complex
systems. Refactoring legacy code? Decomposing? Rewriting from scratch?
Definitely, thorough analysis is something that needs to be done.
36. ul. Przedmiejska 6–10
54-201 Wrocław
+48 71 358 41 00
biuro@unity.pl
Grupa Unity S.A
www.unity.pl
Adam Pietrzak
adam.pietrzak@unity.pl
Grzegorz Sobczyk
grzegorz.sobczyk@unity.pl
ul. Przedmiejska 6-10
54-201 Wrocław
en.unity.pl
.