Agile Software Development for the Ugandan Context

  • Published on

  • View

  • Download


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 shopWorked in and ran a large international custom software service provider in South Africa & Uganda Now Tech lead for nationwide eHealth software rollout 2WHY DO WE HAVE TO BE AGILE?q Increased executive expectations for impact of technology projectsq Shorter delivery timelinesq Project scope/features are getting more complex due to integration and need to respond to customersq 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)3agileable to move quickly and to think and understand quicklyUGANDA SPECIFIC CHALLENGES?q Not special but some areas are compounded q Power & Internetq Low appreciation of impact of technology q Internal staff challengesq Culture we always have to be right q Difficult to make Pragmatic technology choices that meet client project needs 4YOUR 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 5AGILE MANIFESTO Uncovering better ways of developingsoftware by doing it and helping others do it6AGILE VALUES q Individuals and interactions over processes and toolsqWorking software over comprehensive documentationqCustomer collaboration over contract negotiationqResponding to change over following a plan7While there is value in the items onthe right, the items on the left are valued moreSo how do I apply these values?LET US APPLY SOME AGILE SAUCE8INDIVIDUALS 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 resultso Engage the stakeholders while keeping out of their wayo How does your team work together internally? 9WORKING SOFTWARE OVER COMPREHENSIVE DOCUMENTATION Give me something to play with NOW! Show stakeholders how you are tackling their challenges Demonstrate future state SHOW PROGRESSo Document requirementso Document feedbacko Document your progress, status update and future plans 10CUSTOMER 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 Realistico Make sure your contract is airtight o Keep your contract deliverables in sight document any changes o Pareto 80/20 rule 11RESPONDING 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 sameo Have a plan o A plan is a guide, frameworko Keep the lighthouse (goal) in sight as you changeo If you fail to plan, plan to fail 12AIDS 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 projectDiscipline keep time, promises, manage expectations, pay attention Document, document, document in a way that makes meaning to your end-users13On 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 CISecurity the price is too high at the end Document, document, document for your development team?Use prebuilt frameworks, and libraries Contribute back to #OpenSource 14Every problem is a special case of a more general problem and you are not the first one to solve it CHALLENGESDraft fatigue too many back and forth cycles As requirements change, then goals and deliverables are forgotten Team dynamics changing requirements are stressfulTechnology 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 tools15If I am given 4 hours to cut down a tree, I will spend 3 hours sharpening my axe ~ Abraham LincolnREADING LIST BUSINESS & TECH Martin Fowler Refactoring, Patterns of Enterprise Architecture & Andy Hunt/Dave Thomas The Pragmatic Programmer Basecamp blog - 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 16IN CLOSING DO NOT BE TOO BUSY Enjoy your projectKeep learning Read Stand on the shoulders of GiantsShare your stories with othersDiscipline, Discipline, Discipline AND MOST OF ALL Deliver and satisfy your clients 17THANK YOUFor questions or suggestions@ssmusoke and @styxtechgroup http://ssmusoke.com


View more >