Anatolij is a passionate software engineer, which is using code to try and solve problems for about a decade. Sometimes he gets paid for it. Worked at a medium-sized old-guard LT IT company, a startup-style code agency, and now ended up in a large enterprise bank.
What’s the talk about:
Speaker will provide examples of the 9th principle about good design in practice, showing why good design is more important that fast design and how it can go wrong when this is avoided. He will try to explain why he see why these ideas were put together into the manifesto that they did and how they can be applied by regular nine to five developers.
Presentation video: http://bit.ly/Anatolij_video
Dealing with Poor Performance - get the full picture from 3C Performance Mana...
Anatolij Grigorjev. What were they thinking and why we agree
1. by Anatolij Grigorjev, 2020(C)
“Continued attention to technical
excellence and good design
enhances agility”
What were they thinking…
and why we agree
Principle No. 9
2. by Anatolij Grigorjev, 2020(C)
Disclaimer
All opinions stated are a matter of personal
preference of the speaker and are not endorsed
by DGITL, Danske Bank Lithuania or the
overarching Danske Bank Group.
3. by Anatolij Grigorjev, 2020(C)
In Focus
6.(...)
7.Working software is the primary measure of progress.
8.Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
9.Continuous attention to technical excellence and
good design enhances agility.
10.Simplicity–the art of maximizing the amount of work not done–is
essential.
11.The best architectures, requirements, and designs emerge from self-
organizing teams.
12.(...)
5. by Anatolij Grigorjev, 2020(C) 5
Problem patterns in consulting
Fast Delivery
Underdeveloped domain
metaphors in code
No suite of quick
validation tests
Slow Delivery
User needs changed
Lots of last minute decisions
due to incomplete planning
information
Unsatisfied
customers
Unmaintainable
code -
unsustainable
pace
6. by Anatolij Grigorjev, 2020(C) 6
What is technical excellence and good design?
Definitions
7. by Anatolij Grigorjev, 2020(C) 7
Code that represents the domain
“Every system is built from a
domain-specific language designed
by the programmers to describe
that system.
Functions are the verbs of that
language, and classes are the
nouns.”
- Robert C. Martin, Clean Agile
8. by Anatolij Grigorjev, 2020(C) 8
Code that is easy to change
“Software is a compound word. (...)
The word “soft” means easy to
change. (...)
Software was invented because we
wanted a way to quickly and easily
change the behavior of our
machines”
- Robert C. Martin, Clean Agile
15. by Anatolij Grigorjev, 2020(C) 15
Summary
●
Fast chaotic delivery is unsustainable
●
Agile practices enhance sustainability
●
Good design is code that is easy to change
●
Code that is tested is easy to change