SlideShare uma empresa Scribd logo
1 de 10
Why you need more
documentation
Even if you favour working software over comprehensive
documentation
Andy Longshaw, Quantiv Ltd.
(andrew.longshaw@quantiv.com or andy@blueskyline.com)
some
Please keep questions, booing and
rotten fruit till the end
Why do you need documentation? (1)
• Because I don’t know what you’re doing
– Who the hell am I?
– New starter on the team
• “What are the main parts of the system?”
• “Where’s the simple, big picture?”
[pause, blank looks]
• I have been here quite a few times…
– Sheltering manager
• I need a vague idea of what’s going on
• I need a warm fuzzy feeling that you know what
you’re doing
Why do you need documentation? (2)
• Because you don’t know what you’re doing
– Some bits are clear but other bits are:
fuzzier, older, broader, outside your domain, etc.
– I have been here quite a few times as well…
What documentation do you need?
• NOT 200-page specs
• A clean, understandable codebase with clear
domain abstractions at its heart is a good start…
– …but beyond that…
• Mostly pictures
– Maps of the world, which could be hand-drawn
– Plus some more detailed documentation of trickier
bits like complex, infrequent config
• wiki is usually good for this
Maps of your world (1)
• Tribal Maps
– Meaningful to the natives
Or, more usefully, “Fred met a
dragon here once. It was definitely
a dragon, not a tiger and he was
able to get away by doing…”
Maps of your world (2)
• Real maps
– Different levels + different info
– Contours, major towns, etc.
• In the software world…
• Simon Brown
– Context, Containers, Components, Classes
• For bigger or more complex systems, can
split down into Viewpoints and Perspectives
– IEEE 1471 or Rozanski & Woods
– Especially if there are a lot of NFRs and/or lots
of things outside the software
How does this work in practice? (1)
• Choose a core, non-volatile subset of your system
– If you can’t decide on this then maybe you have more
problems than a lack of documentation
– Be selective!
– Stick them on the wall
– Keep them up to date (see “Be selective!”)
• In general
– let the code tell the detailed “what”
– …and document the high-level “what” and the “why”
How does this work in practice? (2)
• Environments often need attention
– Maps of what talks to what in DEV, TST, STG, PRD
– If these artefacts are painful to maintain then maybe you
should be automating your environment builds…
How does this work in practice? (3)
• Ask some questions…
• Who is it for?
• When and why will you/they use it?
• How long should it live for?
– Is it enduring or…
– Is it transient
• Draw a diagram to work out your thoughts then throw it
away…
– No, don’t leave it on a fileshare to confuse people in the
future, throw it away…
»Now!
Don’t forget
At the end of the day…
“It’s all writing”
(Pragmatic Programmers)
Except when it’s drawing

Mais conteúdo relacionado

Semelhante a Why you need more documentation

How can i... reduce my backup window.
How can i... reduce my backup window.How can i... reduce my backup window.
How can i... reduce my backup window.
Andrew Nicholson
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew eng
CineSoft
 
Babysitting your orm essenmacher, adam
Babysitting your orm   essenmacher, adamBabysitting your orm   essenmacher, adam
Babysitting your orm essenmacher, adam
Adam Essenmacher
 
Whats A Data Warehouse
Whats A Data WarehouseWhats A Data Warehouse
Whats A Data Warehouse
None None
 

Semelhante a Why you need more documentation (20)

Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
How can i... reduce my backup window.
How can i... reduce my backup window.How can i... reduce my backup window.
How can i... reduce my backup window.
 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In Between
 
Dmk audioviz
Dmk audiovizDmk audioviz
Dmk audioviz
 
Preservation and institutional repositories for the digital arts and humanities
Preservation and institutional repositories for the digital arts and humanitiesPreservation and institutional repositories for the digital arts and humanities
Preservation and institutional repositories for the digital arts and humanities
 
Introduction to Operating system
Introduction to Operating systemIntroduction to Operating system
Introduction to Operating system
 
Write a better FM
Write a better FMWrite a better FM
Write a better FM
 
Hard Coding as a design approach
Hard Coding as a design approachHard Coding as a design approach
Hard Coding as a design approach
 
Let's get along
Let's get alongLet's get along
Let's get along
 
CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis Methodology
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew eng
 
Babysitting your orm essenmacher, adam
Babysitting your orm   essenmacher, adamBabysitting your orm   essenmacher, adam
Babysitting your orm essenmacher, adam
 
Whats A Data Warehouse
Whats A Data WarehouseWhats A Data Warehouse
Whats A Data Warehouse
 
SQL Server High Availability and DR - Too Many Choices!
SQL Server High Availability and DR - Too Many Choices!SQL Server High Availability and DR - Too Many Choices!
SQL Server High Availability and DR - Too Many Choices!
 
DNS in IR: Collection, Analysis and Response
DNS in IR: Collection, Analysis and ResponseDNS in IR: Collection, Analysis and Response
DNS in IR: Collection, Analysis and Response
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
 
Data science and Hadoop
Data science and HadoopData science and Hadoop
Data science and Hadoop
 
Embedded Systems PPt.pptx
Embedded Systems PPt.pptxEmbedded Systems PPt.pptx
Embedded Systems PPt.pptx
 
CNIT 152 11 Analysis Methodology
CNIT 152 11 Analysis MethodologyCNIT 152 11 Analysis Methodology
CNIT 152 11 Analysis Methodology
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Why you need more documentation

  • 1. Why you need more documentation Even if you favour working software over comprehensive documentation Andy Longshaw, Quantiv Ltd. (andrew.longshaw@quantiv.com or andy@blueskyline.com) some Please keep questions, booing and rotten fruit till the end
  • 2. Why do you need documentation? (1) • Because I don’t know what you’re doing – Who the hell am I? – New starter on the team • “What are the main parts of the system?” • “Where’s the simple, big picture?” [pause, blank looks] • I have been here quite a few times… – Sheltering manager • I need a vague idea of what’s going on • I need a warm fuzzy feeling that you know what you’re doing
  • 3. Why do you need documentation? (2) • Because you don’t know what you’re doing – Some bits are clear but other bits are: fuzzier, older, broader, outside your domain, etc. – I have been here quite a few times as well…
  • 4. What documentation do you need? • NOT 200-page specs • A clean, understandable codebase with clear domain abstractions at its heart is a good start… – …but beyond that… • Mostly pictures – Maps of the world, which could be hand-drawn – Plus some more detailed documentation of trickier bits like complex, infrequent config • wiki is usually good for this
  • 5. Maps of your world (1) • Tribal Maps – Meaningful to the natives Or, more usefully, “Fred met a dragon here once. It was definitely a dragon, not a tiger and he was able to get away by doing…”
  • 6. Maps of your world (2) • Real maps – Different levels + different info – Contours, major towns, etc. • In the software world… • Simon Brown – Context, Containers, Components, Classes • For bigger or more complex systems, can split down into Viewpoints and Perspectives – IEEE 1471 or Rozanski & Woods – Especially if there are a lot of NFRs and/or lots of things outside the software
  • 7. How does this work in practice? (1) • Choose a core, non-volatile subset of your system – If you can’t decide on this then maybe you have more problems than a lack of documentation – Be selective! – Stick them on the wall – Keep them up to date (see “Be selective!”) • In general – let the code tell the detailed “what” – …and document the high-level “what” and the “why”
  • 8. How does this work in practice? (2) • Environments often need attention – Maps of what talks to what in DEV, TST, STG, PRD – If these artefacts are painful to maintain then maybe you should be automating your environment builds…
  • 9. How does this work in practice? (3) • Ask some questions… • Who is it for? • When and why will you/they use it? • How long should it live for? – Is it enduring or… – Is it transient • Draw a diagram to work out your thoughts then throw it away… – No, don’t leave it on a fileshare to confuse people in the future, throw it away… »Now!
  • 10. Don’t forget At the end of the day… “It’s all writing” (Pragmatic Programmers) Except when it’s drawing

Notas do Editor

  1. And he got all his files back from GIT…