Program Outline
Lean, Agile & Scrum
What are lean, agile, and scrum? Scrum framework in brief. Essential elements of scrum covering roles (Product Owner, Scrum Master, and Developers), artifacts (Product Backlog, Sprint Backlog and Increment with commitment towards product goal, sprint goal and definition of done), and events (the sprint, sprint planning, daily scrum, sprint review, and sprint retrospective). It includes creating a sprint goal, selecting product backlog items (PBIs) with value orientation in mind, and decomposing PBIs into smaller work items. The workshop emphasizes the collaboration between the Scrum team members, especially the product owner and developers, for understanding the items and turning them into a valuable steppingstone toward the product goal. It includes asking for clarification, adding acceptance criteria, sizing or estimating items, breaking them down into smaller items.
Collaboration & Team Dynamics
Explain at least three differences between a working group and a team and discuss at least three attributes of effective teams. Additionally, demonstrate "working together as one team." Example definition of team: a small number of people with complementary skills, committed to a common purpose, performance goal, and approach, are mutually accountable. Example: T-shaped skill profile.
Learn pair programming, pair designing, pair working in general, and creating something – code or non-technical – in a Scrum simulation. Understand about shorter feedback loops, less work-in-progress, less misinterpretation of needs, direct feedback of the working solution, actually trying the built product.
Architecture & Design
Certified Scrum Developer training from Agilemania fosters an understanding of the work, improves shared ownership and responsibility, improves estimability and reliability, reduces defects, avoids an accumulation of technical debt. This could include test-first, quick design sessions, spikes to understand new technology, constant refactoring, metaphor, conversational modeling, CRC cards, pair programming. This training covers refactoring to improve a system without changing its observable behavior. Refactoring fosters automated testing, improves readability and maintainability, supports improving system performance, counter technical debt, and improves extensibility.
Test-Driven Development (TDD)
Test first focuses on the behavior of the system. The system design emerges dynamically through the adjustment to additional tests. Benefits include simplicity, avoidance of bloating, defect reduction, built-in regression checks with automated tests. The Certified Scrum Developer training from Agilemania points out important to have the simplest possible solution that passes the test in the first place to ensure the test is working and refactor it to a sensible design that gets verified immediately.
Continuous Integration
CI is the practice of reducing the feedback time between code creation and integration. It can be supported using technical means. CI changes habits and behaviors, creates awareness about shared responsibility, is the base for frequent deliveries, reduces defects, reduces risk from the late discovery of integration issues. Automation tools reduce manual repetition. A single repository acts as a recorded document, configuration as code for repeatable error-free process, and supports continuous delivery.