In today’s agile and rapidly changing environment we may overlook important attributes of software development process. Design of the software and surrounding infrastructure are one of those things that usually do not get enough attention. Quality of design directly impacts quality of software and should follow development process all the way from the initial idea till the product end-of-life.
In this presentation I'm sharing what works for us to keep software ecosystem healthy, what challenges we are facing and how we are surviving them.
2. DAINIUS MEŽANSKAS
§ Telecommunications, E-commerce, Health Care, Insurance,
E-learning (17+ years)
§ Developer, Architect, Team Lead, IT Trainer
§ Software Architect at Intermedix Corp.
§ Co-Founder and Leader of Kaunas JUG
9. WHEN
§ LARGE CODE BASE
§ LONG LIVING PRODUCTS
§ DISTRIBUTED | BIG TEAMS
§ HIGH PRICE OF FAILURE
§ HIGH THROUGHPUT
DESIGNIS IMPORTANT?Especiallyfor...
10. § PRODUCTION CODE
§ TESTS
§ BUILDS | DEPLOYMENT | AUTOMATION
§ TOOLS
§ UX
§ PROCESSES
DESIGNapplies to
15. PAIRING
üSTART WITH PAIRING
...and define guidelines
üREVIEW RESULTS IN PAIR
...in case task were complex
üRETURN TO PAIRING
...if there are new ideas or challenges
16. GITFLOW
2 MEMBERS TO APPROVE
WORKFLOW
OFFLINE PAIRING
PULL REQUESTS
TWO HEADS ARE BETTER THAN ONE
...it is like
...are four even better?
17. POC
WORKING CODE CHUNKS
… in separate repo
...fully of partially functional
...discuss with team
DESIGN PROTOTYPE
a.k.a. proof of concept
24. TECHNICAL DEBT IS A METAPHOR THAT
REFLECTS THE EXTRA DEVELOPMENT WORK
THAT ARISES WHEN THINGS ARE DONE
QUICKLY AND DIRTY.
The term was coined by Ward Cunningham in 1992.
25. REASONS
✓ BUSINESS PRESSURELACKOF
✗ PROCESS, KNOWLEDGE or COLLABORATION
✗ ALIGNMENT TO STANDARDS
✗ TEST SUITE, DOCUMENTATION
✗ LOOSELY COUPLED COMPONENTS
✓ PARALLEL DEVELOPMENT
✓ DELAYED REFACTORING
TECHNICAL DEBT
26. § POSTPONED RELEASES
§ CONSTANT HOT FIXES
§ BEING SCARED ON CHANGING ANYTHING
§ LOW CODE COVERAGE
§ UNREDABLE CODE, EVIL HACKS
... what are your TD symptoms?
SMYTOPMS
TNECHAICL
27. § CLEAN CONSTANTLY (10%+)
§ ATTACK NEXT T.D.
§ DEFINE OUTCOMES
§ EVALUATE CHANGES
§ CLEANUP RELEASES
REMOVINGTECHNICAL DEBT
of P 1
31. § BETTERTESTABILITY
§ ALL DEPENDENCIES VISIBLE IN ONE PLACE
§ ENCAPSULATION IS PRESERVED
§ TOO MANY DEPENDENCIES - SRP IS BROKEN?
CONSTRUCTOR DI
32. “
Prediction is very difficult, especially if it's about the future.
— Niels Bohr“
Great software is not built, it is grown.
— Bill de hÓra“
There is nothing noble in being superior to your fellow man; true nobility is being
superior to your former self.
— ErnestHemingway
“
Stay clean, stay agile. Encourage others.
— Internetwisdom
LAST...but not least