0345 4506120

Agile Software Design Professional

Learn effective approaches to Agile software design and improve quality through simplicity at a low cost of change. Use design patterns to develop robust, maintainable and testable software in this course. Gain the skills to do the right level of design at the right time within the Agile development cycle and earn the industry-recognized ICAgile Agile Software Design certification (ICP-ASD).

Learning Objectives

You Will Learn How To

  • Leverage Agile software design techniques to improve efficiency and testability
  • Conduct a Class Responsibility Collaboration (CRC) Design Workshop
  • Create a minimum viable architecture
  • Apply SOLID design principles and refactor design smells
  • Use test patterns and write tests using BVA and All-Pairs

Pre-Requisites

  • Requirements

    • Prior to attending this course, attendees should have attended:
      • Agile Fundamentals: Scrum, Kanban, Lean and XP, or
      • Certified ScrumMaster®
    • Experience in programming and broad understanding of the software development life cycle
  • Recommended Experience

    • Work experience as any of the following: Software Developer, System Designer, Technical Architect Development Manager, Technical Team Lead, or other roles involved in technical design and development.
    • Taking Course Agile Programming Professional, is highly recommended, either before or after this course, to complete the ICAgile certification pathway for Agile Engineering
  • Course Materials

    • While the course qualifies for an ICAgile certificate, the class is not written like an exam prep course. The material is designed for hands-on, Agile training in Software Design.

Course Content

Course Outline

Setting the Stage

  • Agile design myths
  • Applying the Agile principles to software design
  • Where design fits into the Agile life cycle

Planning Patterns and Risk

Planning patterns

  • ROI-based
  • WSJF
  • Risk-based
  • Dependency-based
  • Other considerations

Risk

Technical risk reduction

  • Risk spikes
  • Prototypes
  • Walking skeleton

Scheduling risk mitigation

  • Non-technical risks
  • Scheduling risk mitigation
  • Risk-adjusted backlog

Architecture & Design

Architecture

  • Role of design-in-the-large
  • Agile architecture principles
  • Minimal viable architecture
  • Partitioning and component level architecture
  • Technology decisions and architecture spikes
  • CRC card workshops 
  • Behaviour drive design and specification by example

Detailed design

  • Design principles – DRY, YAGNI and SOLID
  • Design patterns – Observer and Factory
  • Pros and cons of using design patterns

Stakeholders and the Wisdom of the Crowd

  • Tester-Developer-Developer collaboration
  • The three amigos
  • Discussing technical debt with stakeholders
  • Developer operations collaboration

Testing

ATDD

  • Testing as specification and document
  • ATDD process
  • ATDD as an aid to design thinking
  • ATDD styles and tools

Testing patterns

  • Designing for automated testing
  • Testing the tests
  • Test smells and their solution
  • Test refactoring

Test coverage and speed

  • Test coverage – BVA and All-Pairs
  • Test speed and dealing with slow tests

Continuous integration and delivery

  • Build pipeline
  • Build tools
  • Version control
  • Continuous delivery

Exams & Certification

Exam Information

  • ICAgile: To obtain ICAgile Certified Professional in Agile Software Design, students will need to pass the exam. Once notification of passing the exam has been received, contact our customer service team to request registration with ICAgile.

Certification

  • This course can help you earn ICAgile certification.

Pre-Reading

Course Preparation

  • Students will be emailed a short document to review before class. Understanding the content of this pre-course reading is required before class, so more in-class time can be devoted to Software Design in an Agile environment.

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the request service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.

 

Online Courses

You may prefer an online course if you are looking for a flexible and cost-effective solution. Online courses allow you to study at your own pace, at a time that suits you.

We have the following eLearning options available:

Virtual Classroom

Virtual classrooms provide all the benefits of attending a classroom course without the need to arrange travel and accomodation. Please note that virtual courses are attended in real-time, commencing on a specified date.

Virtual Course Dates

Our Customers Include