AGILE SOFTWARE
DEVELOPMENT IN THE
UGANDAN CONTEXT
Stephen Senkomago Musoke – Technologist & Problem Solver
@ssmusoke and @styxtechgroup
WHY ME?
¨ Lifetime software tinkerer ….
¨ My fair share of failed, successful, mind blowing and
soul haunting projects
¨ I love tech & growing techies
¨ Served clients in UK, US, Australia, Europe, South Africa
¨ 12 years experience setting up, growing & running a
Ugandan custom software development shop
¨ Worked in and ran a large international custom
software service provider in South Africa & Uganda
¨ Now Tech lead for nationwide eHealth software rollout
2
WHY DO WE
HAVE TO BE
AGILE?
q Increased executive expectations for
impact of technology projects
q Shorter delivery timelines
q Project scope/features are getting
more complex due to integration and
need to respond to customers
q Cross cutting stakeholders – no longer
confined to a single department
q Relevant technology skillsets are in
short supply
q Customer behavior is changing at a
very fast rate (so moving target)
3
ag·ile
“able to move
quickly and
easily”..
”able to think
and understand
quickly”
UGANDA SPECIFIC CHALLENGES?
q Not special but some areas are
compounded
q Power & Internet
q Low appreciation of impact of technology
q Internal staff challenges
q Culture – we always have to be right
q Difficult to make Pragmatic technology choices that
meet client project needs
4
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
¨ Timelines are too short
¨ No single product owner
5
AGILE MANIFESTO
Uncovering better ways of
developing
software by doing it and
helping others do it
6
AGILE VALUES qIndividuals and interactions over
processes and tools
qWorking software over
comprehensive documentation
qCustomer collaboration over
contract negotiation
qResponding to change over
following a plan
7
“While there is
value in the
items on
the right, the
items on the left
are valued
more…”
So how do I apply
these values?
LET US APPLY SOME
AGILE SAUCE
8
INDIVIDUALS AND INTERACTIONS OVER PROCESS AND
TOOLS
• Define what success
looks like
• Find your end user
& determine how
your solution helps
them
• Find out why
management needs
this solution
o Use process and
tools for recording
your results
o Engage the
stakeholders while
keeping out of their
way
o How does your
team work together
internally?
9
WORKING SOFTWARE OVER COMPREHENSIVE
DOCUMENTATION
• Give me something
to play with NOW!
• Show stakeholders
how you are tackling
their challenges
• Demonstrate future
state
• SHOW PROGRESS
o Document
requirements
o Document feedback
o Document your
progress, status
update and future
plans
10
CUSTOMER COLLABORATION OVER CONTRACT
NEGOTIATION
• Identify what value
is to the customer
• Be creative within
your constraints
(time/scope/budget)
• Define & work with
SMART deliverables
• Be Realistic
o Make sure your
contract is airtight
o Keep your contract
deliverables in sight
– document any
changes
o Pareto 80/20 rule
11
RESPONDING TO CHANGE OVER FOLLOWING A PLAN
• Adapt and validate
your plan as you
learn more and
move forward
• The more things
change the more
they remain the
same
o Have a plan
o A plan is a guide,
framework
o Keep the lighthouse
(goal) in sight as you
change
o If you fail to plan,
plan to fail
12
AIDS TO SUCCESSFUL AGILE – NON TECH
¨Use Prototyping tools to give your users a sense of
what the final solution will feel like and work
¨Spend time collaborating with your clients in a manner
and language that they understand – remember they
have other full-time jobs not just your project
¨Discipline – keep time, promises, manage expectations,
pay attention
¨Document, document, document – in a way that makes
meaning to your end-users
13
On time is late!!!
AIDS TO SUCCESSFUL AGILE – TECH
¨Automate & simplify deployment – to dev, staging and
demo sites
¨Fanatical, Meticulous version control – use GitFlow
¨Testing – unit, integration, stress, load, Travis CI
¨Security – the price is too high at the end
¨Document, document, document for your development
team?
¨Use prebuilt frameworks, and libraries
¨Contribute back to #OpenSource
14
Every problem is a special case of a more general
problem and you are not the first one to solve it
CHALLENGES
¨Draft fatigue – too many back and forth cycles
¨As requirements change, then goals and deliverables
are 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
15
If I am given 4 hours to cut down a tree, I will
spend 3 hours sharpening my axe
~ Abraham Lincoln
READING LIST – BUSINESS & TECH
¨ Martin Fowler – Refactoring, Patterns of Enterprise
Architecture & http://martinfowler.com
¨ Andy Hunt/Dave Thomas – The Pragmatic Programmer
¨ Basecamp blog - https://m.signalvnoise.com/
¨ Blue Ocean Strategy
¨ Clean Code –
¨ Imposters Handbook by Rob Conery (I am reading it
now)
¨ Blogs/Articles in whatever language or problem
domain you are working in
16
IN CLOSING
DO NOT BE TOO BUSY
Enjoy your project
Keep learning
Read
Stand on the shoulders of Giants
Share your stories with others
Discipline, Discipline, Discipline
AND MOST OF ALL
Deliver and satisfy your clients
17
THANK YOU
For questions or suggestions
@ssmusoke and @styxtechgroup
http://ssmusoke.com
http://styxtechgroup.com

Agile Software Development for the Ugandan Context

  • 1.
    AGILE SOFTWARE DEVELOPMENT INTHE UGANDAN CONTEXT Stephen Senkomago Musoke – Technologist & Problem Solver @ssmusoke and @styxtechgroup
  • 2.
    WHY ME? ¨ Lifetimesoftware tinkerer …. ¨ My fair share of failed, successful, mind blowing and soul haunting projects ¨ I love tech & growing techies ¨ Served clients in UK, US, Australia, Europe, South Africa ¨ 12 years experience setting up, growing & running a Ugandan custom software development shop ¨ Worked in and ran a large international custom software service provider in South Africa & Uganda ¨ Now Tech lead for nationwide eHealth software rollout 2
  • 3.
    WHY DO WE HAVETO BE AGILE? q Increased executive expectations for impact of technology projects q Shorter delivery timelines q Project scope/features are getting more complex due to integration and need to respond to customers q Cross cutting stakeholders – no longer confined to a single department q Relevant technology skillsets are in short supply q Customer behavior is changing at a very fast rate (so moving target) 3 ag·ile “able to move quickly and easily”.. ”able to think and understand quickly”
  • 4.
    UGANDA SPECIFIC CHALLENGES? qNot special but some areas are compounded q Power & Internet q Low appreciation of impact of technology q Internal staff challenges q Culture – we always have to be right q Difficult to make Pragmatic technology choices that meet client project needs 4
  • 5.
    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 ¨ Timelines are too short ¨ No single product owner 5
  • 6.
    AGILE MANIFESTO Uncovering betterways of developing software by doing it and helping others do it 6
  • 7.
    AGILE VALUES qIndividualsand interactions over processes and tools qWorking software over comprehensive documentation qCustomer collaboration over contract negotiation qResponding to change over following a plan 7 “While there is value in the items on the right, the items on the left are valued more…” So how do I apply these values?
  • 8.
    LET US APPLYSOME AGILE SAUCE 8
  • 9.
    INDIVIDUALS AND INTERACTIONSOVER PROCESS AND TOOLS • Define what success looks like • Find your end user & determine how your solution helps them • Find out why management needs this solution o Use process and tools for recording your results o Engage the stakeholders while keeping out of their way o How does your team work together internally? 9
  • 10.
    WORKING SOFTWARE OVERCOMPREHENSIVE DOCUMENTATION • Give me something to play with NOW! • Show stakeholders how you are tackling their challenges • Demonstrate future state • SHOW PROGRESS o Document requirements o Document feedback o Document your progress, status update and future plans 10
  • 11.
    CUSTOMER COLLABORATION OVERCONTRACT NEGOTIATION • Identify what value is to the customer • Be creative within your constraints (time/scope/budget) • Define & work with SMART deliverables • Be Realistic o Make sure your contract is airtight o Keep your contract deliverables in sight – document any changes o Pareto 80/20 rule 11
  • 12.
    RESPONDING TO CHANGEOVER FOLLOWING A PLAN • Adapt and validate your plan as you learn more and move forward • The more things change the more they remain the same o Have a plan o A plan is a guide, framework o Keep the lighthouse (goal) in sight as you change o If you fail to plan, plan to fail 12
  • 13.
    AIDS TO SUCCESSFULAGILE – NON TECH ¨Use Prototyping tools to give your users a sense of what the final solution will feel like and work ¨Spend time collaborating with your clients in a manner and language that they understand – remember they have other full-time jobs not just your project ¨Discipline – keep time, promises, manage expectations, pay attention ¨Document, document, document – in a way that makes meaning to your end-users 13 On time is late!!!
  • 14.
    AIDS TO SUCCESSFULAGILE – TECH ¨Automate & simplify deployment – to dev, staging and demo sites ¨Fanatical, Meticulous version control – use GitFlow ¨Testing – unit, integration, stress, load, Travis CI ¨Security – the price is too high at the end ¨Document, document, document for your development team? ¨Use prebuilt frameworks, and libraries ¨Contribute back to #OpenSource 14 Every problem is a special case of a more general problem and you are not the first one to solve it
  • 15.
    CHALLENGES ¨Draft fatigue –too many back and forth cycles ¨As requirements change, then goals and deliverables are 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 15 If I am given 4 hours to cut down a tree, I will spend 3 hours sharpening my axe ~ Abraham Lincoln
  • 16.
    READING LIST –BUSINESS & TECH ¨ Martin Fowler – Refactoring, Patterns of Enterprise Architecture & http://martinfowler.com ¨ Andy Hunt/Dave Thomas – The Pragmatic Programmer ¨ Basecamp blog - https://m.signalvnoise.com/ ¨ Blue Ocean Strategy ¨ Clean Code – ¨ Imposters Handbook by Rob Conery (I am reading it now) ¨ Blogs/Articles in whatever language or problem domain you are working in 16
  • 17.
    IN CLOSING DO NOTBE TOO BUSY Enjoy your project Keep learning Read Stand on the shoulders of Giants Share your stories with others Discipline, Discipline, Discipline AND MOST OF ALL Deliver and satisfy your clients 17
  • 18.
    THANK YOU For questionsor suggestions @ssmusoke and @styxtechgroup http://ssmusoke.com http://styxtechgroup.com