Agile Software Delivery for the Ugandan Context - 2019 Edition
1. AGILE SOFTWARE DELIVERY IN THE
UGANDAN CONTEXT
Stephen Senkomago Musoke
Software Engineer
@ssmusoke
2. WHY ME?
Self taughtsoftware tinkerer
Love the craft & growing techies (to replaceme)
~2 decades offailed,successful,mind blowingand soulhauntingprojectsacross
finance, education,agriculture, health, genealogy, HR, ERP (time management)
Served clients inUG,UK, US, Australia,Europe,SA
12 years experience starting,setting up, growing & running a Ugandancustom
software development shop
Experiencebothsides – funder, productowner, consultant,clientconsultant,
customer, sales, technology service provider, architect,tech lead, developer, tester
2
3. CONTEXT SETTING
What issoftware delivery
The process of getting a softwareproductto market
Ideation Requirements Design Implementation Deployment
Support& Maintenance Evolution
Includingend user training,productionmonitoring, SecurityManagement, end-user
Security Management, end-user devices, performance management, change
management, change management
Don’tforget the importantstuff– contracts,pricing/funding, sales/marketing,
pricing/funding,sales/marketing, stakeholder needs, competition,regulatory
competition,regulatory compliance
3
4. SAMPLE
PROJECTS
Employee Management solution
Started 2004 as timesheet
Added recruitment & employee
onboarding, invoicing & billing, data
exports to external systems, calculators
2011 – no more changes could be made
PHP 3 4 5, MySQL 3 4 5
eHealth Solution – UgandaEMR
2015 – inherited 350 sites at 1.6.x, 2 forms
2016 – first upgrades to 1.9.x with 4 forms
2017/8 – Migrations to 2.0, 8 forms, 20
reports ~850 sites
2019/20 – 3.0, 10 forms, 30 reports, ~1000
4
If your dreams
do not scare you,
they are too
small
~Richard
Branson
Aim for the stars,
and you will
probably reach
the sky
5. WHY DO WE
HAVE TO BE
AGILE?
Increased executive expectations for
impact of technology projects
Shorter delivery timelines
Project scope/features are getting more
complex due to integration & need to
respond to more knowledgeable
customers
Cross cutting stakeholders – no longer
confined to a single department/sector
Relevant technology skillsets are in
short supply
Customer behavior is changing at a very
fast rate
5
ag·ile
“abletomovequickly
andeasily”..
”abletothink and
understandquickly”
6. UGANDA SPECIFIC CHALLENGES?
Not special but some areas are
compounded
Convincing stakeholders of your project relevance
Power & Internet
Low appreciation of impact of technology
Internal staff challenges
Culture – we always have to be right
Difficult to make pragmatic technology choices that
meet client project needs 6
8. YOUR TYPICAL PROJECT
After a long protracted negotiation
Fixed cost
Fixed timeline
Defined scope
What happens along the way
Requirements keep changing along the way
Stakeholder influencing on scope – we did not think about
that
Timelines are too short
No single product owner
Changing Technology platforms & choices
Changing business environment and problem 8
9. HOW DID WE GET HERE
Waterfall– rigidprocess Requirements Design Development QA
Production
RationalUnified Process – Waterfallin the large & small
9
12. AGILE VALUES Individualsand interactionsoverprocessesandtools
Working software overcomprehensivedocumentation
Customercollaborationovercontractnegotiation
Respondingto changeoverfollowingaplan
12
“Whilethereisvaluein
theitems on
theright,theitems on
theleftarevalued
more…” So how do I apply these
values?
14. INDIVIDUALS AND INTERACTIONS OVER PROCESS AND
TOOLS
• Define what successlooks like
• Find your enduser &
determinehow your solution
helpsthem
• Find outwhy management
needsthis solution
o Use processand tools for
recordingyour results
o Engage the stakeholderswhile
keepingout oftheirway
o How doesyour team work
togetherinternally?
14
16. WORKING SOFTWARE OVER COMPREHENSIVE
DOCUMENTATION
• Giveme something to play
with NOW!
• Show stakeholdershow you
aretackling theirchallenges
• Demonstratefuture state
• SHOW PROGRESS!!!
o Documentrequirements
o Documentfeedback
o Documentyour progress,
status updateand future plans
16
Documentation isaloveletterthatyouwritetoyourfutureself
-DamianConway
17. CUSTOMER COLLABORATION OVER CONTRACT
NEGOTIATION
• Identify what valueis tothe
customer
• Be creativewithin your
constraints
(time/scope/budget)
• Define& work with SMART
deliverables
• Be Realistic
o Makesure your contractis
airtight
o Keepyour contract
deliverablesin sight –
documentany changes
o Pareto80/20 rule
o Searchfor win-win-win
outcome
17
18. RESPONDING TO CHANGE OVER FOLLOWING A PLAN
• Adaptand validateyour plan as
you learnmoreand move
forward
• The morethings changethe
more they remainthe same
o Havea plan
o A planis a guide,framework
o Keepthe lighthouse (goal)in
sight as youchange
o If you failto plan, plan tofail
18
Theonlyconstantthingischange
20. CEREMONIES AND TOOLS
Standup– dailycheckin keep collaboratingeven after standup
Retrospective – if you do not know where you have come from, you willnot
understandwhere you are and where you have to go
Show case – release early, release often, statuscheck
Sprintplanning
Green build– code buildsand runs
QA – does it do what the customer expects?
20
21. AIDS TO SUCCESSFUL AGILE – NON TECH
Use Prototypingtoolsto give your users a sense of what thefinalsolutionwillfeel
like and work
Spendtime collaboratingwithyour clients ina manner and languagethat they
understand– remember they have other full-time jobsnotjust your project
Discipline– keep time, promises, manage expectations,pay attention
Document, document,document –in a way thatmakes meaning toyour end-users
21
Ontimeislate!!!
22. Good developers write excellent code
Great developers write no code
Zen developers delete code
22
23. AIDS TO SUCCESSFUL AGILE – TECH
Automate & simplify deployment – to dev, staging and
demo sites
Fanatical, Meticulous version control – use GitFlow/Trunk
based development
Testing – unit, integration, stress, load, Travis CI
Security – the price is too high at the end
Document, document, document for your development
team?
Use/Leverage prebuilt frameworks, and libraries
Use an IDE – Jetbrains, VS Code, Sublime
23
Every problem is a special case of a more general
problem and you are not the first one to solve it
24. AIDS TO SUCCESSFUL AGILE - TECH
Grit, persistence, perseverance, focus
The best tool for the job is the one you know how touse
Stick to the fundamental principles,experiment with implementation– where
necessary & possible
Frugalinnovation– stay hungry, keep lean
Kaizen~ SolomonKing – search for improvements, never stay stillwith the status
quo
Contribute back to #OpenSource – give back to the community you work in
Look after your health– what you eat, exercise
Connect withothers outsidetech – perspective
24
25. AIDS TO SUCCESSFUL AGILE – TECH - PRINCIPLES
Architecture:
Use the simplestarchitecturepossible
12 FactorApp
OWASP Security Considerations
API First Development – everything is a client
PhoenixServers
Schema.org for datadesigns
Open Source - give back
Don’t hesitate tospendmoney on a tool that willsave you time
25
26. CHALLENGES
Draft fatigue– toomany back and forthcycles
As requirements change, then goalsand deliverablesare forgotten
Team dynamics– changing requirements are stressful
Technology tools & choices – do not try to re-invent the wheel as much as you can,
solve the problem at hand+ know how to use your tools
26
IfIamgiven4hourstocutdownatree,Iwillspend3hourssharpening
myaxe
~AbrahamLincoln
28. READING LIST – BUSINESS & TECH
MartinFowler – Refactoring, Patterns ofEnterpriseArchitecture &
http://martinfowler.com
Andy Hunt/Dave Thomas – The Pragmatic Programmer
Basecamp ShapeUp - https://basecamp.com/shapeup
Blue Ocean Strategy
Clean Code
Imposters Handbookby Rob Conery (I am somewhere)
It does not have to be crazy at work
Blogs/Articles inwhatever languageor problem domainyou are working in
28
29. PARTING QUESTIONS
Is HighQualitySoftwareWorth the Cost by MartinFowler?
https://martinfowler.com/articles/is-quality-worth-cost.html
Yes it is, but ensure thatthis cost can be linkedto businessgoals& value such
higher revenue, market share growth/maintenance, new market entry etc
What aboutScrum, Kanban, SAFe, etc etc
The best tool for the job is the one you know how touse andwhichhas quick
support
Remember the prinicples
29