SlideShare a Scribd company logo
Why documentation in
agile processes sucks...
and how to fix it
Brenda Nyokabi
Introduction
Brenda Nyokabi
Technologist
Code for Africa
Github
Twitter
Pan-African
Federation
Code for Africa is a
federation of indigenous
civic tech + civic media
labs in 9 countries, in
Ghana, Kenya, Morocco,
Nigeria, Sierra Leone,
Senegal, South Africa,
Tanzania, and Uganda,
operating alongside a
sister network of
independent
investigative
newsrooms in 22
countries.
Global
Networks
Code for Africa is
underwritten by a
network of global
partners who offer deep
industry know-how,
cutting-edge technology
and substantive
resources.
CfA is an initiative of the
International Center for
Journalists (ICFJ) in the
U.S.
What is Agile development?
Agile software development refers to software development
methodologies centered around the idea of iterative
development, where requirements and solutions evolve
through collaboration between self-organizing cross-
functional teams.
Agile manifesto
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on
the left more.
Documentation
Working software over comprehensive documentation
“The main goal of effective documentation is to ensure that
developers and stakeholders are headed in the same
direction to accomplish the objectives of the project.”
TYPES OF DOCUMENTATION
Process Documentation
Standards, project plans, reports, schedules
Product Documentation
Requirements, business logic, tech specification
Our focus is on system documentation
GENERAL STRUCTURE OF AGILE DOCUMENTATION
DEVELOPER’S
PERSPECTIVE
Why do developers find it hard to document code?
1. Frequent source
code
change/require
ment changes
Frequently changes
in requirements
and specification
leads to poor
documentation or
none at all
Why document when we the
requirements will change in the
next sprint
2. Pressure to
deliver the
project on time
The developer needs to
deliver the project on
time. The company wants
to deliver the project as
soon as possible because
of the client’s
requirements, and the
first thing that goes down
the drain is
documentation
No time to document , ship ASAP!
3. Developers
are too close to
the projects
Developers are in a
position where
they understand
whats going on in a
codebase and take
for granted the
need to explain
things as clearly as
possible.
Google is your friend
4. Developers don't
need documentation
Developers understand
what they are working
choose to skip
documentation which
sounds reasonable, until
you came back to your
codebase and have no
idea what problem your
code was solving
What do you mean by documentation,
UML diagrams?
Value of documentation in
Agile
Why document?
“Agile methods are not opposed to documentation, only to valueless
documentation. Documents that assist the team itself can have value,
but only if they are kept up to date.
Michael Nygard
Documentation verifies the
accuracy of our assumptions about
what we deem common
understanding, making it easier for
everyone to be on the same page.
Are we on the same page ?
1. Common
understanding
It’s not uncommon for developers
to complain about their product
managers, saying they “don’t
really understand how the
software actually works”.
Documentation can help
developers bridge that gap and
fosters Empathy Driven
development(EDD) by providing
context
2. Create empathy
Could you explain this to
me again ?
Documenting current and
past decisions helps with
future problem solving
3. Aid future self/team in
making better decisions
Why did we choose
technology x over y again ?
What problem were we solving?
Documenting team
processes helps junior hires
get started quicker on your
team. This can apply to any
category of documentation
like wiki’s , readmes or
any other automated tasks.
Example
4. Helps with onboarding
processes
How do you
set up this repo and other xn
questions
Every once in a while we end up
with problems that are not as
trivial as expected. For cases like
this, creating documentation
makes it easier to unpack the
problem analytically.
4. Creative problem
solving:
Why does the svg file not
inherit max height of container?
DOCUMENTATION METRICS
What makes for a good doc?
Can you measure good documentation? What I search for
when making design and software architecture decisions:
1. Easy to navigate
React.js
2. Offers sequential steps to reach specific goal.
Jekyll && Postgresql
3. Offers occasional visual aid, in form of diagram
MATERIAL UI
4. Embeds introductory learning 'back tracks' throughout docs
Redux.JS
5. Provides links that provide more useful insight
VICTORY.JS
MAKING DOCUMENTATION
WORK FOR AGILE TEAMS
SOURCE CODE DOCUMENTATION
1. Write good comments or none at all.
1. Define naming conventions and project structure. Include nice
to have tools for standardizing the your code base, using eslint
tools, maybe typescript if it works for your team.
2. Introducing tracking and documenting tools such as
READMEs, PR and ISSUE TEMPLATES, wikis for your projects.
1. Keep it simple and concise. DRY (Don’t Repeat Yourself)
principle.
Issue Template
Template
PR templates
Template
Tip for better documentation
1. Executable
specification:
Use the Just-In-Time (JIT)
approach to write the detailed
specifications which is a single
source information that is the
test to outline the
requirements/design and
validate your work.
DEMO:
Hurumap-ui/Storybook
2. Document late
Write system overviews
towards end of the
development of a
release. This way you
document what you
have actually built
DEMO:
CFA WIKI
3. Avoid
overlapping
documentation
This requires
building larger
documents from
smaller ones. You
can create Wikis
sort of
documentation to
create different
single pages for
single topics.
DEMO:
CFA WIKI
4. Simplify
documentation:
Write a 5-page
document, rather
than a a document
with 50 pages,
with bullet points
to provide context.
DEMO:
READ ME
5. Purpose oriented
goal
Create a document to
cater to some
immediate goal of your
project.
In the case of
documentation, one size
never fits all.
Each system has its own
unique documentation
needs that also mean
you cannot reuse the
repeatable process to
create documents.
BARE MINIMUM
CONCEPT NOTE
Builds on the work plan and the
reporting document
WORK PLAN
REPORTING DOCUMENT
Helpful tips for organizational teams
1. The documentation effort must be baked into the agile process
Wiki thursdays , ISSUE AND PR TEMPLATES
1. Everyone contributes to the documentation effort, for each
sprint
2. There should be a "point person" who manages the
documentation effort
3. The tech writers need to be engineers
4. No person is a silo => Write to be understood especially when
writing user facing documentation
Resources
https://www.atlassian.com/software/confluen
ce/templates
https://software-documentation-
template.readthedocs.io/en/latest/readme.ht
ml
https://keepachangelog.com/en/1.0.0/
https://opensource.guide/best-
practices/#documenting-your-processes
This presentation: bit.ly/2oMDP6u
Github: https://github.com/CodeForAfrica
Twitter: twitter.com/Code4Africa
Medium: https://medium.com/@CodeForAfrica
Q/A

More Related Content

What's hot

My Career Journey: An Unconventional Path into DevOps
My Career Journey: An Unconventional Path into DevOpsMy Career Journey: An Unconventional Path into DevOps
My Career Journey: An Unconventional Path into DevOps
VMware Tanzu
 
Introduction to Agile-Scrum
Introduction to Agile-ScrumIntroduction to Agile-Scrum
Introduction to Agile-Scrum
Praveen Nair
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
Skills Matter
 
What is-not-devops!
What is-not-devops!What is-not-devops!
What is-not-devops!
Narayanan Krishnamurthy
 
Developer week: An Engineer’s Essential Tool in Agile: Design Thinking
Developer week: An Engineer’s Essential Tool in Agile:  Design ThinkingDeveloper week: An Engineer’s Essential Tool in Agile:  Design Thinking
Developer week: An Engineer’s Essential Tool in Agile: Design Thinking
Aliza Carpio
 
The Art of Agile Documentation
The Art of Agile DocumentationThe Art of Agile Documentation
The Art of Agile Documentation
Agile Montréal
 
Grace Hopper 2019: Better Together, Intuit's Inner Source Journey
Grace Hopper 2019: Better Together, Intuit's Inner Source JourneyGrace Hopper 2019: Better Together, Intuit's Inner Source Journey
Grace Hopper 2019: Better Together, Intuit's Inner Source Journey
Aliza Carpio
 
Grandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoptionGrandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoption
Andrés García García
 
Day projectcon real-world-scrum
Day projectcon real-world-scrumDay projectcon real-world-scrum
Day projectcon real-world-scrum
ProjectCon
 
Agile & DevOps on top of Jira by Feras El Hajjar
Agile & DevOps on top of Jira by Feras El HajjarAgile & DevOps on top of Jira by Feras El Hajjar
Agile & DevOps on top of Jira by Feras El Hajjar
Agile ME
 
GDISD, Girl Develop It San Diego, intuit apprentice program
GDISD, Girl Develop It San Diego, intuit apprentice programGDISD, Girl Develop It San Diego, intuit apprentice program
GDISD, Girl Develop It San Diego, intuit apprentice program
Aliza Carpio
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
Padma Channal
 
5 Must-to-Read Books on DevOps
5 Must-to-Read Books on DevOps5 Must-to-Read Books on DevOps
5 Must-to-Read Books on DevOps
Ganesh Samarthyam
 
Agile And Documentation
Agile And DocumentationAgile And Documentation
Agile And Documentation
Susan Patch
 
ScrumOps - Featuring Dave West & Jayne Groll
ScrumOps - Featuring Dave West & Jayne GrollScrumOps - Featuring Dave West & Jayne Groll
ScrumOps - Featuring Dave West & Jayne Groll
Taylor Puleri
 
DOES15 - Mike Bland - Pain Is Over, If You Want It
DOES15 - Mike Bland - Pain Is Over, If You Want ItDOES15 - Mike Bland - Pain Is Over, If You Want It
DOES15 - Mike Bland - Pain Is Over, If You Want It
Gene Kim
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
Ievgenii Katsan
 
Continuous Deployment Through Technical Excellence
Continuous Deployment Through Technical ExcellenceContinuous Deployment Through Technical Excellence
Continuous Deployment Through Technical Excellence
Shawn Button
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
Ole Christian Rynning
 
DevTalk: Better Together- Adventures in Pair Programming
DevTalk: Better Together- Adventures in Pair ProgrammingDevTalk: Better Together- Adventures in Pair Programming
DevTalk: Better Together- Adventures in Pair Programming
Perforce
 

What's hot (20)

My Career Journey: An Unconventional Path into DevOps
My Career Journey: An Unconventional Path into DevOpsMy Career Journey: An Unconventional Path into DevOps
My Career Journey: An Unconventional Path into DevOps
 
Introduction to Agile-Scrum
Introduction to Agile-ScrumIntroduction to Agile-Scrum
Introduction to Agile-Scrum
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
 
What is-not-devops!
What is-not-devops!What is-not-devops!
What is-not-devops!
 
Developer week: An Engineer’s Essential Tool in Agile: Design Thinking
Developer week: An Engineer’s Essential Tool in Agile:  Design ThinkingDeveloper week: An Engineer’s Essential Tool in Agile:  Design Thinking
Developer week: An Engineer’s Essential Tool in Agile: Design Thinking
 
The Art of Agile Documentation
The Art of Agile DocumentationThe Art of Agile Documentation
The Art of Agile Documentation
 
Grace Hopper 2019: Better Together, Intuit's Inner Source Journey
Grace Hopper 2019: Better Together, Intuit's Inner Source JourneyGrace Hopper 2019: Better Together, Intuit's Inner Source Journey
Grace Hopper 2019: Better Together, Intuit's Inner Source Journey
 
Grandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoptionGrandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoption
 
Day projectcon real-world-scrum
Day projectcon real-world-scrumDay projectcon real-world-scrum
Day projectcon real-world-scrum
 
Agile & DevOps on top of Jira by Feras El Hajjar
Agile & DevOps on top of Jira by Feras El HajjarAgile & DevOps on top of Jira by Feras El Hajjar
Agile & DevOps on top of Jira by Feras El Hajjar
 
GDISD, Girl Develop It San Diego, intuit apprentice program
GDISD, Girl Develop It San Diego, intuit apprentice programGDISD, Girl Develop It San Diego, intuit apprentice program
GDISD, Girl Develop It San Diego, intuit apprentice program
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
 
5 Must-to-Read Books on DevOps
5 Must-to-Read Books on DevOps5 Must-to-Read Books on DevOps
5 Must-to-Read Books on DevOps
 
Agile And Documentation
Agile And DocumentationAgile And Documentation
Agile And Documentation
 
ScrumOps - Featuring Dave West & Jayne Groll
ScrumOps - Featuring Dave West & Jayne GrollScrumOps - Featuring Dave West & Jayne Groll
ScrumOps - Featuring Dave West & Jayne Groll
 
DOES15 - Mike Bland - Pain Is Over, If You Want It
DOES15 - Mike Bland - Pain Is Over, If You Want ItDOES15 - Mike Bland - Pain Is Over, If You Want It
DOES15 - Mike Bland - Pain Is Over, If You Want It
 
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank FrambachiSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
iSQI Certification Days DASA – DevOps & ISTQB Frank Frambach
 
Continuous Deployment Through Technical Excellence
Continuous Deployment Through Technical ExcellenceContinuous Deployment Through Technical Excellence
Continuous Deployment Through Technical Excellence
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
 
DevTalk: Better Together- Adventures in Pair Programming
DevTalk: Better Together- Adventures in Pair ProgrammingDevTalk: Better Together- Adventures in Pair Programming
DevTalk: Better Together- Adventures in Pair Programming
 

Similar to Agile presentation

Agile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptxAgile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptx
PerumalPitchandi
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
techweb08
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides again
Hima Challa
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
techweb08
 
Chen's second test slides
Chen's second test slidesChen's second test slides
Chen's second test slides
Hima Challa
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
techweb08
 
Professional project writing
Professional project writingProfessional project writing
Professional project writing
jkmaster
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
yedej15330
 
Importance of Documentation for programmers
Importance of Documentation for programmers Importance of Documentation for programmers
Importance of Documentation for programmers
NASSCOM
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
Tharindu Weerasinghe
 
Collaboration Beyond Code
Collaboration Beyond CodeCollaboration Beyond Code
Collaboration Beyond Code
David E. Weekly
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
Anwar Sadat
 
Documenting Good Practices in School: Part 3
Documenting Good Practices in School: Part 3Documenting Good Practices in School: Part 3
Documenting Good Practices in School: Part 3
JoseRadinGarduque2
 
Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?
Mediotype .
 
Distributed teams
Distributed teamsDistributed teams
Distributed teams
Kush Shah
 
Distributed_teams
Distributed_teamsDistributed_teams
Distributed_teams
ParthShah587
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
Ross Gardler
 
Prototyping & User Testing
Prototyping & User TestingPrototyping & User Testing
Prototyping & User Testing
Laura Levisay
 
Agile Fundamentals for Project Managers.pdf
Agile Fundamentals for Project Managers.pdfAgile Fundamentals for Project Managers.pdf
Agile Fundamentals for Project Managers.pdf
Borja ARRIZABALAGA URIARTE
 

Similar to Agile presentation (20)

Agile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptxAgile and its impact to Project Management 022218.pptx
Agile and its impact to Project Management 022218.pptx
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides again
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
Chen's second test slides
Chen's second test slidesChen's second test slides
Chen's second test slides
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
Professional project writing
Professional project writingProfessional project writing
Professional project writing
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
Importance of Documentation for programmers
Importance of Documentation for programmers Importance of Documentation for programmers
Importance of Documentation for programmers
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
Collaboration Beyond Code
Collaboration Beyond CodeCollaboration Beyond Code
Collaboration Beyond Code
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
 
Documenting Good Practices in School: Part 3
Documenting Good Practices in School: Part 3Documenting Good Practices in School: Part 3
Documenting Good Practices in School: Part 3
 
Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?
 
Distributed teams
Distributed teamsDistributed teams
Distributed teams
 
Distributed_teams
Distributed_teamsDistributed_teams
Distributed_teams
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
 
Prototyping & User Testing
Prototyping & User TestingPrototyping & User Testing
Prototyping & User Testing
 
Agile Fundamentals for Project Managers.pdf
Agile Fundamentals for Project Managers.pdfAgile Fundamentals for Project Managers.pdf
Agile Fundamentals for Project Managers.pdf
 

Recently uploaded

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

Agile presentation

  • 1. Why documentation in agile processes sucks... and how to fix it Brenda Nyokabi
  • 3. Brenda Nyokabi Technologist Code for Africa Github Twitter
  • 4. Pan-African Federation Code for Africa is a federation of indigenous civic tech + civic media labs in 9 countries, in Ghana, Kenya, Morocco, Nigeria, Sierra Leone, Senegal, South Africa, Tanzania, and Uganda, operating alongside a sister network of independent investigative newsrooms in 22 countries.
  • 5. Global Networks Code for Africa is underwritten by a network of global partners who offer deep industry know-how, cutting-edge technology and substantive resources. CfA is an initiative of the International Center for Journalists (ICFJ) in the U.S.
  • 6. What is Agile development? Agile software development refers to software development methodologies centered around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross- functional teams.
  • 7. Agile manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 8. Documentation Working software over comprehensive documentation “The main goal of effective documentation is to ensure that developers and stakeholders are headed in the same direction to accomplish the objectives of the project.”
  • 9. TYPES OF DOCUMENTATION Process Documentation Standards, project plans, reports, schedules Product Documentation Requirements, business logic, tech specification
  • 10. Our focus is on system documentation GENERAL STRUCTURE OF AGILE DOCUMENTATION
  • 11. DEVELOPER’S PERSPECTIVE Why do developers find it hard to document code?
  • 12. 1. Frequent source code change/require ment changes Frequently changes in requirements and specification leads to poor documentation or none at all Why document when we the requirements will change in the next sprint
  • 13. 2. Pressure to deliver the project on time The developer needs to deliver the project on time. The company wants to deliver the project as soon as possible because of the client’s requirements, and the first thing that goes down the drain is documentation No time to document , ship ASAP!
  • 14. 3. Developers are too close to the projects Developers are in a position where they understand whats going on in a codebase and take for granted the need to explain things as clearly as possible. Google is your friend
  • 15. 4. Developers don't need documentation Developers understand what they are working choose to skip documentation which sounds reasonable, until you came back to your codebase and have no idea what problem your code was solving What do you mean by documentation, UML diagrams?
  • 16. Value of documentation in Agile Why document?
  • 17. “Agile methods are not opposed to documentation, only to valueless documentation. Documents that assist the team itself can have value, but only if they are kept up to date. Michael Nygard
  • 18. Documentation verifies the accuracy of our assumptions about what we deem common understanding, making it easier for everyone to be on the same page. Are we on the same page ? 1. Common understanding
  • 19. It’s not uncommon for developers to complain about their product managers, saying they “don’t really understand how the software actually works”. Documentation can help developers bridge that gap and fosters Empathy Driven development(EDD) by providing context 2. Create empathy Could you explain this to me again ?
  • 20. Documenting current and past decisions helps with future problem solving 3. Aid future self/team in making better decisions Why did we choose technology x over y again ? What problem were we solving?
  • 21. Documenting team processes helps junior hires get started quicker on your team. This can apply to any category of documentation like wiki’s , readmes or any other automated tasks. Example 4. Helps with onboarding processes How do you set up this repo and other xn questions
  • 22. Every once in a while we end up with problems that are not as trivial as expected. For cases like this, creating documentation makes it easier to unpack the problem analytically. 4. Creative problem solving: Why does the svg file not inherit max height of container?
  • 24. What makes for a good doc? Can you measure good documentation? What I search for when making design and software architecture decisions:
  • 25. 1. Easy to navigate React.js
  • 26. 2. Offers sequential steps to reach specific goal. Jekyll && Postgresql
  • 27. 3. Offers occasional visual aid, in form of diagram MATERIAL UI
  • 28. 4. Embeds introductory learning 'back tracks' throughout docs Redux.JS
  • 29. 5. Provides links that provide more useful insight VICTORY.JS
  • 31. SOURCE CODE DOCUMENTATION 1. Write good comments or none at all. 1. Define naming conventions and project structure. Include nice to have tools for standardizing the your code base, using eslint tools, maybe typescript if it works for your team. 2. Introducing tracking and documenting tools such as READMEs, PR and ISSUE TEMPLATES, wikis for your projects. 1. Keep it simple and concise. DRY (Don’t Repeat Yourself) principle.
  • 34. Tip for better documentation
  • 35. 1. Executable specification: Use the Just-In-Time (JIT) approach to write the detailed specifications which is a single source information that is the test to outline the requirements/design and validate your work. DEMO: Hurumap-ui/Storybook
  • 36. 2. Document late Write system overviews towards end of the development of a release. This way you document what you have actually built DEMO: CFA WIKI
  • 37. 3. Avoid overlapping documentation This requires building larger documents from smaller ones. You can create Wikis sort of documentation to create different single pages for single topics. DEMO: CFA WIKI
  • 38. 4. Simplify documentation: Write a 5-page document, rather than a a document with 50 pages, with bullet points to provide context. DEMO: READ ME
  • 39. 5. Purpose oriented goal Create a document to cater to some immediate goal of your project. In the case of documentation, one size never fits all. Each system has its own unique documentation needs that also mean you cannot reuse the repeatable process to create documents. BARE MINIMUM CONCEPT NOTE Builds on the work plan and the reporting document WORK PLAN REPORTING DOCUMENT
  • 40. Helpful tips for organizational teams 1. The documentation effort must be baked into the agile process Wiki thursdays , ISSUE AND PR TEMPLATES 1. Everyone contributes to the documentation effort, for each sprint 2. There should be a "point person" who manages the documentation effort 3. The tech writers need to be engineers 4. No person is a silo => Write to be understood especially when writing user facing documentation
  • 42. This presentation: bit.ly/2oMDP6u Github: https://github.com/CodeForAfrica Twitter: twitter.com/Code4Africa Medium: https://medium.com/@CodeForAfrica
  • 43. Q/A

Editor's Notes

  1. EDD blog : https://www.empathy-driven-development.com/
  2. Get data to show this: