Improving conceptual understanding in development
OR
Would you make assumptions 

about a dragon?
presented by Sebastian Helzle
Who am I?
1990 Pen & Paper
1996 Geocities
2005 TYPO3
2007 Freelancer
2013 Neos CMS
2015 CSM
Love hiking, mountains and baking
Chapters
I. Dungeons & Dragons & Conceptual understanding
II. A light through the fog of requirements
III. Evade traps with agile methods
IV. Gain experience and grow your strengths
V. Slay the dragon of Golive and retrieve it’s treasures
Why is conceptual
understanding important?
Our web projects are not
Just pieces of code
Fluffy mythical
creatures
COMPLEX
Websites and apps are
Idea & final result
Can look similar but the result might behave unexpected
So, why are they complex?
People working together
Team:
„A group of people with individual views 

on the same(?) thing“
Technology
Dependencies
Continuous delivery
Performance
Scalability
Next:
The real complexity
People must actually be able
to use your product!
The connection to
Pen & Paper games
Parts of a Pen & Paper game
Game master (Storyteller, Visionary, PO)
2-6 Adventurers (Different strengths and personalities)
Space where everyone sits together
Books describing the rules of the game
Motivation
Common goal
Sounds like a project
How people play
I. Game master describes the situation
II. Everyone synchronizes their view
III. Player do actions
IV. Game master explains results according to the story and the rules
V. Players evaluate result and adapt
VI. Start again from step I.
Sounds like a Sprint
II. The fog of requirements
From far a forest might look
very nice
It will lead you to your
goal and reveal the dragon
Beware: There is always
something lurking there!
Shifting priorities
Described workflows don’t fit anymore
External dependencies
Demanding stakeholders
Technical debts
What makes a product usable?
Customised solutions
Well thought out workflows
Good performance
Clients are used to bad
solutions
And sometimes ask for more of it
III. Evade traps with agile
methods
Daily stand-up
Synchronize
Reviews
Do internal reviews and user testing
Let developers present their work
Invite the client
Check for dents in your armors
Keep some slack in your
planning
Improvements need time too
Sharpen your weapons
Don’t kill ideas with
overcomplicated processes
A process can be bent
Frameworks adapted
Refresh a projects vision
regularly
Sometimes the trees block your view on the dragon
IV. Gain experience and grow
your strengths
Retrospectives
Talk about your processes
Practise communication
Grow as a team
Miscommunication is
expensive
Every change can have
undesired effects
Performance degradation
Usability
Stability issues
Relationship with the client
There are already some
solutions
Automated testing (stability & performance)
A/B testing for user experience
Sadly, no automatic tests for editors
efficiency or clients happiness :(
Many developers don’t know
what clients are doing
Ignorance?
I don’t think so 

(maybe sometimes)
Fostering project ownership
Empathy
Client has bad experience?
Feel the urge to improve it
Find sustainable solutions
Work with the client
Try to understand the client
Get to know the client (he’s not the dragon)
As a developer you can
See tasks as challenge
Try to see your work from a different point of view
Involve in shaping a project
Defend your ideas and concepts
Teach others
Cooperate & ask for help
Write down or draw what you know
Get coaching
Enable developers
Let coaches coach, not do the work
Help developers not to depend on coaches
V. Slay the dragon of Golive
and retrieve it’s treasures
Things might be different
than expected
Is the dragon hungry?
Did he have enough sleep?
Is he unhappy?
Assumptions might be deadly!
Thank you!
Questions?
More
🐦 @sebobo
✉ me@helzle.it
📖 http://www.mind-the-seb.de

Conceptual understanding in development