✕
ICT & Digital Skills

Software Engineering Best Practices and Agile Development

This intensive programme equips software professionals and technical teams with industry-proven engineering best practices and Agile methodologies to deliver high-quality software faster and more reliably. Participants explore the full software development lifecycle, from requirements and design through coding standards, testing, and continuous delivery, all within an Agile and DevOps-oriented framework. The course blends hands-on exercises, real-world case studies, and collaborative workshops to build skills that are immediately applicable on the job.

⏱ 10 Days 📡 In-Person 🎯 Intermediate From KES 160,000

About This Course

In today's fast-paced technology landscape, organisations that deliver software with speed, reliability, and quality hold a decisive competitive advantage. Yet many development teams still struggle with technical debt, missed deadlines, poor collaboration between business and engineering, and fragile codebases that are difficult to maintain or scale. Bridging the gap between intention and execution requires more than talent — it demands a disciplined, structured approach to how software is conceived, built, tested, and deployed.

The Software Engineering Best Practices and Agile Development course offered by TrainingComplex is a comprehensive ten-day programme designed to embed proven engineering disciplines and Agile ways of working into the daily practice of software professionals. Drawing on widely adopted frameworks such as Scrum, Kanban, and Extreme Programming, alongside industry standards for clean code, automated testing, and continuous integration and delivery, this course provides a thorough and practical grounding in what modern software engineering excellence actually looks like.

Participants will progress through the complete software development lifecycle, learning how to gather and refine requirements collaboratively, design maintainable and scalable systems, write clean and well-tested code, manage work in short iterative cycles, and deploy confidently using automated pipelines. Crucially, they will also develop the soft skills and team dynamics competencies — such as effective retrospectives, stakeholder communication, and cross-functional collaboration — that make Agile teams genuinely high-performing rather than merely process-compliant.

This programme is structured for working professionals who already have some grounding in software development and are ready to move from ad hoc practices to a more disciplined, value-driven approach. Whether you are a developer looking to deepen your craft, a team lead transitioning to Agile leadership, or a technical project manager seeking to align delivery with business outcomes, this course will equip you with the frameworks, techniques, and practical tools to transform the way your team builds software.

Who Should Attend

Learning Objectives

Course Modules

Module 1: Foundations of Modern Software Engineering

  • The evolution of software engineering and why best practices matter
  • Core engineering values: correctness, maintainability, reliability, and performance
  • Overview of the software development lifecycle and where quality is built in
  • Common failure patterns in software projects and their root causes
  • The role of feedback loops in modern engineering: shortening cycles from code to learning
  • Balancing technical rigour with delivery pressure: trade-offs every engineer must navigate

Module 2: Agile Principles and the Agile Manifesto

  • The four Agile values and twelve principles unpacked for practical application
  • Agile versus traditional plan-driven development: when each approach fits
  • Overview of major Agile frameworks: Scrum, Kanban, XP, and SAFe
  • Building an Agile mindset: embracing change, collaboration, and continuous improvement
  • Common Agile adoption pitfalls: cargo-culting ceremonies without embracing underlying values
  • Measuring Agile maturity: self-assessment models and indicators of genuine organisational agility

Module 3: Scrum Framework in Depth

  • Scrum roles: Product Owner, Scrum Master, and the Development Team
  • Scrum events: sprint planning, daily stand-up, sprint review, and retrospective
  • Scrum artefacts: product backlog, sprint backlog, and the definition of done
  • Scrum in practice: running effective sprints and managing team velocity
  • Handling mid-sprint disruptions: scope changes, blockers, and maintaining sprint integrity
  • Scaling Scrum with multiple teams: Scrum of Scrums and cross-team dependency coordination

Module 4: Requirements Engineering with Agile Techniques

  • Writing effective user stories using the As a / I want / So that format
  • Defining clear acceptance criteria and mapping them to test scenarios
  • Backlog refinement: prioritisation, story splitting, and dependency management
  • Collaborating with stakeholders to maintain a living, value-ordered product backlog
  • Estimation techniques for Agile teams: story points, t-shirt sizing, and Planning Poker
  • Identifying and managing non-functional requirements within an Agile backlog

Module 5: Clean Code and Coding Standards

  • Principles of clean code: naming, functions, comments, and formatting conventions
  • Design principles: SOLID, DRY, YAGNI, and the Law of Demeter
  • Code smells: identifying and eliminating common anti-patterns
  • Peer code review practices: structured feedback, review checklists, and psychological safety
  • Writing code for readability: optimising for the next developer, not just the compiler
  • Managing legacy codebases: strategies for incrementally applying clean code principles to inherited code

Module 6: Software Design and Architecture Best Practices

  • Layered and modular architecture patterns for maintainable systems
  • Microservices versus monolithic design: trade-offs, migration considerations, and use cases
  • Design patterns: creational, structural, and behavioural patterns with practical examples
  • Documenting architecture decisions using lightweight Architecture Decision Records
  • Event-driven architecture: asynchronous communication, message queues, and eventual consistency
  • Architecture fitness functions: defining and automating checks to ensure designs stay aligned with quality goals

Module 7: Test-Driven Development and Automated Testing

  • The TDD red-green-refactor cycle and its impact on design and quality
  • Unit testing, integration testing, and end-to-end testing: scope, tools, and best practices
  • Behaviour-Driven Development: writing Gherkin-style specifications with stakeholders
  • Building and maintaining a reliable test suite: test coverage, test doubles, and avoiding brittle tests
  • Test pyramid strategy: balancing unit, service, and UI tests for speed and confidence
  • Mutation testing: using fault injection to evaluate the true effectiveness of a test suite

Module 8: Version Control and Collaborative Development Workflows

  • Git fundamentals: commits, branching, merging, and resolving conflicts
  • Branching strategies: Gitflow, trunk-based development, and feature flagging
  • Pull request and code review workflows for quality control and knowledge sharing
  • Managing monorepos versus multi-repo structures in team environments
  • Writing meaningful commit messages and maintaining a clean, navigable project history
  • Handling secrets and sensitive configuration: preventing credential leakage in version-controlled repositories

Module 9: Continuous Integration and Continuous Delivery

  • CI/CD pipeline architecture: build, test, package, and deploy stages
  • Configuring automated pipelines with tools such as Jenkins, GitHub Actions, or GitLab CI
  • Shift-left testing: integrating quality checks early in the pipeline
  • Deployment strategies: blue-green deployments, canary releases, and rollback mechanisms
  • Pipeline performance optimisation: caching dependencies, parallelising stages, and reducing feedback latency
  • Securing the CI/CD pipeline: supply chain integrity, secrets management, and least-privilege access controls

Module 10: Managing Technical Debt and Code Quality Metrics

  • Defining and quantifying technical debt: types, causes, and business impact
  • Code quality metrics: cyclomatic complexity, code churn, test coverage, and duplication
  • Using static analysis tools and quality gates to enforce standards automatically
  • Refactoring strategies: safe, incremental improvement without breaking functionality
  • Prioritising technical debt repayment: balancing debt reduction against feature delivery in sprint planning
  • Communicating technical debt to non-technical stakeholders: framing cost and risk in business terms

Module 11: DevOps Culture and Practices for Development Teams

  • DevOps principles: CALMS framework — Culture, Automation, Lean, Measurement, Sharing
  • Infrastructure as code concepts: provisioning and configuration management basics
  • Containerisation fundamentals: understanding Docker and container-based deployment
  • Observability basics: logging, metrics, and alerting to support production systems
  • Site reliability engineering practices: error budgets, SLOs, and balancing reliability with development pace
  • Feedback loops between development and operations: using production telemetry to drive backlog decisions

Module 12: Agile Team Dynamics and High-Performance Engineering Culture

  • Self-organising teams: trust, accountability, and distributed decision-making
  • Facilitating productive retrospectives using structured techniques and psychological safety
  • Managing conflict and maintaining team health in cross-functional Agile teams
  • Scaling Agile across multiple teams: coordination, dependencies, and programme-level planning
  • Onboarding new team members into an Agile culture: accelerating contribution without disrupting team rhythm
  • Recognising and countering burnout: sustainable pace, workload visibility, and engineering well-being practices

Module 13: Measuring Engineering Performance and Continuous Improvement

  • DORA metrics: deployment frequency, lead time, change failure rate, and time to restore
  • Agile metrics: velocity, sprint goal achievement, escaped defects, and cycle time
  • Building a continuous improvement culture: kaizen, learning from incidents, and blameless post-mortems
  • Creating a personal and team improvement roadmap using insights from the programme
  • Avoiding metric dysfunction: understanding Goodhart's Law and designing measures that drive genuine improvement
  • OKRs for engineering teams: aligning team-level technical goals to organisational outcomes

Requirements & Prerequisites

Participants should have at least one to two years of practical experience in software development or a closely related technical role. Familiarity with at least one programming language and a basic understanding of the software development lifecycle are expected. Prior exposure to any version control system such as Git is helpful, though deep expertise is not required before attending.

Training Methodology

Organisational Benefits

Where Is Software Engineering Best Practices and Agile Development Training Offered?

This course runs in-person across: Mombasa, Johannesburg, Lagos, Nakuru, Cape Town, Accra, Dar es Salaam, Riyadh, Addis Ababa, Kampala, Naivasha, Kigali, Dubai, Abuja, Kisumu, Zanzibar, Nairobi, Arusha, Pretoria, plus Live Virtual (online) cohorts. Browse live dates for your city below.

Upcoming Schedules

LocationFormatDatesPrice
Mombasa, Kenya In-Person 5 Oct 2026 – 16 Oct 2026 KES 230,000
Johannesburg, South Africa In-Person 5 Oct 2026 – 16 Oct 2026 USD 7,000
Lagos, Nigeria In-Person 12 Oct 2026 – 23 Oct 2026 USD 5,000
Nakuru, Kenya In-Person 12 Oct 2026 – 23 Oct 2026 KES 230,000
Cape Town, South Africa In-Person 19 Oct 2026 – 28 Oct 2026 USD 7,600
Accra, Ghana In-Person 19 Oct 2026 – 28 Oct 2026 USD 7,600
Dar es Salaam, Tanzania In-Person 19 Oct 2026 – 30 Oct 2026 USD 4,600
Riyadh, Saudi Arabia In-Person 19 Oct 2026 – 28 Oct 2026 USD 9,000
Addis Ababa, Ethiopia In-Person 19 Oct 2026 – 30 Oct 2026 USD 4,800
Kampala, Uganda In-Person 19 Oct 2026 – 28 Oct 2026 USD 3,800
Naivasha, Kenya In-Person 19 Oct 2026 – 28 Oct 2026 KES 240,000
Kigali, Rwanda In-Person 19 Oct 2026 – 28 Oct 2026 USD 3,800
Live Virtual Online 24 Oct 2026 – 13 Dec 2026 KES 160,000
Live Virtual Online 26 Oct 2026 – 4 Nov 2026 KES 160,000
Dubai, United Arab Emirates In-Person 26 Oct 2026 – 4 Nov 2026 USD 8,200

+237 more dates — view live schedule →

Frequently Asked Questions

Do I need to be an experienced software developer to attend this course?

Participants should have at least one to two years of hands-on experience in software development or a closely related technical role. The course is pitched at the intermediate level, so those who are completely new to programming would benefit from gaining foundational experience first. Developers with some background who want to professionalise their practice will gain the most value.

Which programming language is used during the hands-on exercises?

The coding exercises are language-agnostic in principle, with examples and demonstrations primarily using Python and JavaScript as accessible reference languages. Participants are encouraged to apply the concepts in whichever language is most relevant to their work. The focus is on principles and patterns rather than language-specific syntax.

Will I receive a certificate upon completing the course?

Yes. Participants who attend the full ten-day programme and complete the required practical assignments will receive a TrainingComplex Certificate of Completion in Software Engineering Best Practices and Agile Development. This certificate is a recognised professional development credential that can be cited in your professional profile and CV.

Is this course relevant if my organisation is not yet using Agile?

Absolutely. The course covers both the technical engineering best practices — such as clean code, automated testing, and CI/CD — and the Agile methodology components in a way that allows participants to apply either or both, depending on their current organisational context. Many participants use the programme to build the case for adopting Agile within their organisations.

Can this course be delivered on-site for an entire development team?

Yes, TrainingComplex offers customised on-site delivery for organisations wishing to upskill an entire engineering team together. Group delivery allows the course exercises and case studies to be contextualised around the organisation's own codebase, tools, and delivery challenges, which significantly amplifies the practical impact. Please contact our corporate training team to discuss tailored options.

View Live Schedule & Book →