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
- Software developers and engineers seeking to deepen their technical craft and adopt modern development practices
- Technical team leads and engineering managers transitioning their teams to Agile ways of working
- Software architects and solution designers looking to integrate best practices into system design and delivery
- Quality assurance engineers and test leads aiming to adopt automated and continuous testing strategies
- DevOps engineers and build-and-release specialists working to improve CI/CD pipeline maturity
- Product owners and technical business analysts who collaborate closely with development teams
- IT project managers overseeing software delivery in Agile or hybrid environments
- Technology consultants advising organisations on software delivery modernisation
Learning Objectives
- Understand and apply the core values, principles, and practices of Agile software development across the full development lifecycle
- Write clean, readable, and maintainable code by applying established coding standards, design patterns, and refactoring techniques
- Design software systems using sound architectural principles that support scalability, modularity, and long-term maintainability
- Elicit, document, and manage software requirements using Agile techniques such as user stories, acceptance criteria, and backlog refinement
- Apply Test-Driven Development and Behaviour-Driven Development to improve code quality and reduce defect rates
- Plan and execute iterative work using Scrum ceremonies, sprint planning, velocity tracking, and Agile estimation techniques
- Implement and manage continuous integration and continuous delivery pipelines to accelerate safe and reliable software releases
- Apply version control best practices including branching strategies, code reviews, and pull request workflows
- Identify and address technical debt proactively, using refactoring, code metrics, and quality gates
- Facilitate productive Agile team events including retrospectives, sprint reviews, and daily stand-ups
- Collaborate effectively across cross-functional teams by applying Agile communication, transparency, and self-organisation principles
- Measure and improve software engineering performance using relevant metrics such as cycle time, defect density, and deployment frequency
- Apply basic DevOps practices including infrastructure as code, containerisation concepts, and monitoring fundamentals
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
- Hands-on coding labs where participants refactor real-world code samples to apply clean code and design pattern principles
- Scrum simulation exercises in which teams run condensed sprint cycles — including planning, stand-ups, reviews, and retrospectives — using a realistic product backlog
- Test-Driven Development workshops where participants write failing tests first and then build production code to pass them, reinforcing the TDD red-green-refactor cycle
- Case study analysis of real engineering failures and successes drawn from well-known technology organisations, examining root causes and lessons learned
- CI/CD pipeline build exercises using widely adopted tools to give participants direct experience configuring automated build, test, and deployment stages
- Peer code review sessions structured around a defined rubric, building the habit of constructive technical feedback and collaborative quality ownership
- Architecture design challenges in which small teams model system components using diagrams and discuss trade-offs in scalability, coupling, and modularity
- Kanban flow visualisation activities using physical or digital boards to surface bottlenecks and practise work-in-progress limit discipline
- Retrospective facilitation practice where participants take turns leading structured retrospectives using techniques such as Start-Stop-Continue and the Five Whys
- Personal action planning sessions at the end of each major topic block, prompting participants to map new skills directly to their current projects and team contexts
Organisational Benefits
- Faster time-to-market through streamlined Agile delivery cycles and reduced waste in the development process
- Higher software quality and fewer production defects resulting from systematic testing, code review, and continuous integration practices
- Reduced technical debt through proactive code quality management, refactoring discipline, and architectural best practices
- Improved team collaboration and morale driven by clear Agile roles, ceremonies, and shared ownership of outcomes
- Greater alignment between business objectives and technology delivery through Agile product ownership and iterative feedback loops
- More predictable project delivery enabled by sprint planning, velocity tracking, and transparent progress reporting
- Stronger DevOps culture with automated pipelines that reduce manual errors and increase deployment confidence
- Enhanced ability to attract and retain skilled engineering talent by promoting a professional, learning-oriented engineering culture
- Organisational resilience through modular, maintainable codebases that can adapt rapidly to changing requirements
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
| Location | Format | Dates | Price |
| 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 →