Skip to content

Cprime Private Training

Engineering for Agility

Engineering for Agility

Course Description

Agility is not just for humans. If our software is brittle and inflexible, our ability to pivot with market demands is severely compromised. Whether we are working with new code or old, the agility we need has to be designed in, deliberately. This course combines the human and technology elements to form a basis for intentional, thoughtful development of high-quality, easy-to-change architecture and code.

Our base 2-day Engineering for Agility course leverages automated testing as a framework for thinking about code — whether legacy or greenfield — and for liberating teams to experiment freely and safely. Students learn patterns and anti-patterns of testing, architecture, collaboration, and tooling for making software releases a monotonously frequent and uneventful experience. Extend the learning experience with additional hands-on workshops that expand this course with a deeper dive into areas of particular interest using your own systems, teams, and backlog as the subject matter. Topics include:

  1. Architecting Socially – Collaborating with Architects and Each Other
  2. Managing Technical Debt – Maneuvering in Legacy Codeand Incremental Modernization
  3. Effective Usage of Git – Branching Models, Clean History
  4. Social Programming – Mobbing, Pairing, and Product Owner Collaboration
  5. Testing Strategies – API, Exploratory, Contract, Performance
  6. DevSecOps & CI/CD – Pipeline Design, Continuous and Automated Deployment

Learning Outcomes

  1. Understand how to recognize and remediate code that will limit future agility
  2. Managing Technical Debt-Maneuvering in Legacy Codeand Incremental Modernization
  3. Understanding and practice test-driven development (TDD) as a design tool to create flexible, modular, maintainable software
  4. Overview of architectural styles, patterns, and principles that design agility into the system
  5. Understand how to iteratively re-engineer and introduce agility into a legacy codebase
  6. Familiarize with typical tools for supporting agile engineering and how to use them well
  7. Understanding of and practice with teaming and social programming concepts and methods including pair-programming and mob programming
  8. Familiarize with the testing pyramid and strategies for testing at each level of it
  9. Overview of advanced testing concepts for further exploration

Intended Audience

Technical practitioners, including developers, architects and testers, who are interested in improving the quality and flexibility of their software systems.

Bring us onsite to train your teams