Log On/Register  

855.838.5028

Agile Software Design Professional

Duration: 3 Days
Course Price: $2,650

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 Development certification (ICP-ASD).

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

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 Development certification (ICP-ASD).

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

Requirements:

  • Prior to attending this course, attendees should have attended:
  • 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 933, 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 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.

Exam Information:

  • ICAgile: To obtain ICAgile Certified Professional in Agile Software Design, students will need to pass the Learning Tree exam. Once notification of passing the exam has been received, contact Learning Tree's customer service to request registration with ICAgile.
  • Scrum Alliance: To obtain Scrum Education Units (SEUs), students will need to pass the Learning Tree exam. Once notification of passing the exam has been received, contact Learning Tree's customer service to request registration with Scrum Alliance.

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
  • Behavior 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
Learn More
Please type the letters below so we know you are not a robot (upper or lower case):