Courses

The Essentials

 

Each of Agile Institute’s “Essentials” courses is:

  • Designed to deliver the key knowledge and experience necessary to put these practices into effect, truly and immediately, within software development organizations.
  • Taught by an instructor with actual long-term production experience and expertise in the described topics and practices.
  • Updated to reflect the latest knowledge, technologies, and pragmatic experiences available to the software development community.
  • Delivered using Sharon Bowman’s Training from the Back of the Room techniques to provide deep retention through a safe and enjoyable learning environment.

Essential Agile Engineering Skills

Certified Scrum DeveloperAn immersive, intensive 3-day course providing hands-on training in the most powerful and popular Agile Engineering Practices (aka Scrum Developer Practices, Extreme Programming practices), and the synergy gained by combining them.

Practices include Test-Driven Development, Refactoring, Continuous Integration, Collective Code Ownership, Pair Programming, Acceptance-Test Driven Development, time-boxed experimental “spikes,” Energized Work, and Emergent Design and Architecture.

Programming languages: The course is currently offered in Java, JavaScript, C#, or C++. (You can also request a course in Ruby, PHP, Python, et cetera, and we will give it serious consideration. Delivery would need to be scheduled three months in advance to give us time to build and test the materials.)


Essential Test-Driven Development

A 3-day course for developers, providing hands-on experience with the techniques of Test-Driven Development (TDD).

This set of practices for developers is at the heart of low-defect Agile software development. Attendees learn the techniques of test-first, refactoring, mock objects, and others. They learn how these techniques provide and maintain a very low defect-count, plus why TDD helps developers work fearlessly, swiftly, and comfortably on new features and bug-fixes. They will also learn how to work on legacy code: Building test-coverage for critical areas, and protecting areas of the legacy system that do not yet require any alteration.

Programming languages: The course is currently offered in Java, JavaScript, C#, or C++. (You can also request a course in Ruby, PHP, Python, et cetera, and we will give it serious consideration. Delivery would need to be scheduled three months in advance to give us time to build and test the materials.)

Ask about our very popular TDD-related coaching day, available with this course at 1/3 off the standard Agile Coaching rate (usually scheduled immediately following the course, but available for six months after the course is delivered). During this day the course participants and instructor explore your organization’s particular technologies, challenges, and technical debts.


Essential Agile Principles and Practices

This highly-interactive 2-day course is for individuals and teams who want to explore, adopt, or improve an Agile development methodology. You will discover how to work together, as a team, to deliver the highest value early and often, while maintaining a very high standard of quality. Designed for everyone involved in (and around) a development team, this course has the ability to adapt to a variety of experience levels and functional areas. You will learn about the various Agile methods, and their values, principles, and practices. Rather than leave you with a giant list of to-do items and further stress, this course helps you identify which techniques are essential for success, which are critical for your team’s current situation, and which are optional, customizable, or could be deferred. Scrum, Kanban, or XP can be selected as the sample starting point for this method-agnostic course.

Ask about our very popular 1/2-day extension to this course, which will help the team transition from “classroom” activities to the day-to-day creation of value.


Essential Agile Product Leadership

A 2-day immersion into the world of the Agile Product Champion (the Scrum “Product Owner” or the XP “Customer”). This course gives participants an in-depth understanding of their role on the Agile team. The course is designed for the beginning to intermediate level Agile Product Champion. Participants learn how to create user stories, and how to prioritize them into a product queue (or “backlog”). They learn the basics of how agile teams function and the responsibilities of their role through a series of labs immersing them in a simulated agile project utilizing various skills and techniques they have been taught during the course. Additionally, they learn about the importance of scaling and visualizing prioritization through story-mapping, Cost-of-Delay and business value modeling, choosing projects and balancing portfolios. They learn about encouraging innovation, and involving stakeholders and actual customers in the creative decision-making process.

Ask about our very popular 1/2-day extension to this course, which will help the team transition from “classroom” activities to the day-to-day creation of value.


Essentials of Emergent Design: Object-Oriented Patterns, Architectures, and Practices for the Agile Developer

Short iterations and ongoing customer involvement in an agile process means software needs to change frequently. This makes architecture and design even more important for the agile team. Without paying attention to how software is constructed, the agile process of iterative development can soon degrade code into a maintenance nightmare. This is the “Agilist’s Dilemma.” To successfully avoid it, the team must know which decisions have to be made up front and which can and should be deferred until later. This unique 2-day course for developers covers the critical skills needed to build software that can easily change.

What better way to explore Emergent Design than to first trace how the concept, itself, emerged over time? The following topics are introduced chronologically, and woven together in a historical narrative, allowing the developer to see the common principles underlying each family of practices:

  • Traditional attributes of good OO code: Cohesion, encapsulation, polymorphism, various forms of coupling and how to avoid unintended coupling.
  • The S.O.L.I.D. Principles, such as Open-Closed and Single Responsibility.
  • Design Patterns: Pattern-Oriented Design, The Timeless Way of Building, Wisdom from the Gang of Four, plus numerous software patterns such as Bridge, State, Strategy, Facade, Adapter, Abstract Factory, Decorator, and Chain of Responsibility.
  • Emergent Design: The ingredients for “emergent properties” in science and nature, whole-brain thinking, Kent Beck’s Rules of Simple Design, Code Smells, and Merciless Refactoring.

To support the above Emergent Design efforts, we interweave introductions to many pragmatic Agile Engineering Practices (aka Scrum Developer Practices, Extreme Programming practices), including Test-Driven Development, Merciless Refactoring, Continuous Integration/Build/Delivery, Collective Code Ownership, Pair Programming, time-boxed experimental “spikes,” and Energized Work.  This course is similar to Essential Agile Engineering Practices, with a greater emphasis on software design principles.


Essential Agile Testing

On an Agile team, testing truly is everyone’s job.  This course is perfect for agile teams exploring automated testing practices. This is a 2-day course for the whole team, including testers and developers, product owners and business analysts. The course covers the Agile testing practices that complete a team’s “testing pyramid,” such as Behavior-Driven Development (BDD) and automated acceptance testing. The course also explores how other testing practices such as TDD and exploratory testing fit into that pyramid.  We cover what the team, particularly testers, can do to provide up-front, “test-first” acceptance tests, which also serve as readable, executable specifications, and as part of a comprehensive regression suite. On the second day the team will begin to implement the tests using a pre-selected test framework’s primary format (see details below). Developers will learn how to provide the simple, thin two-way translation layer (e.g., “fixtures” or “steps”) between the human-readable tests and the system under test.

Prior to the course, assistance will be given to help you choose the particular collaborative Behavior-Driven Development tool appropriate for your team. Tools available include Cucumber (Ruby), SpecFlow (C#/.Net), Jasmine (JavaScript), and Spock (Java or Groovy).



 

One-Day Tutorials

Essential Agile Immersion Tutorial

A 1-day workshop designed for people who are new to agile. During this workshop participants learn how agile works and put that knowledge to use creating a product using an agile process. Participants take turns playing various roles in the process so that every attendee gets a chance to experience agile from all the different perspectives. Each attendee leaves with not only intellectual knowledge about agile, but a deeper understanding based on having experienced it.

Essential Agile Team Champion Tutorial

Focusing on strengthening the skills needed by Scrum Masters and Agile Coaches. Includes facilitation techniques specific to various meetings (stand-ups, retrospectives, demos/reviews, planning), speaking to leadership, and other SM-specific coaching skills.

Essential Agile Product Champion Tutorial

Focusing on the interactions between a Product Owner and the Agile team, plus (optionally) Agile Portfolio Planning, Business Value Modeling and Cost-of-Delay/CD3, Release Planning at the program level across multiple teams, or something we’ve identified as a constraint to your organization.



 

Packages

The Agile Ignition

This comprehensive 8-week program includes an assessment and the training and coaching necessary to “Go Agile.” This is a proven way to get your team on an efficient path to delivering valuable, quality software on-time and within budget. The basic package consists of an Agile Assessment Workshop, the 2.5-day Essential Agile Principles and Practices training, and coaching through a release-planning session and three iterations (iteration planning meetings, demos and retrospectives). Coaching generally totals 4-7 days over the course of 6 weeks (3 iterations).

The Agile Accelerator

For teams who want to take their agile process to “the next level.” This package includes an Agile Assessment Workshop, then we work closely with the client to create an outline addressing areas of weakness in order to improve the overall agile process. From this we deliver a customized course (1-3 days) designed to help your organization in specific areas of improvement. Organizations should be using an agile process for at least one year prior to using this package.

The Agile Jump-Start

This package is for the agile team in trouble: You’re building software iteratively, and holding daily stand-up meetings. Yet morale is low, quality is poor, and/or commitments are not being met. This package includes an Agile Assessment Workshop, followed by our recommendations for training or coaching, or both. Often this includes one of our technical “Essential” courses, and at least a day of coaching.



 

Agile Assessment Workshops

 

You know something is keeping your organization from successfully reaching its maximum potential, but you haven’t been able to decisively identify what that thing is. Treating symptoms has been an ineffective, ongoing struggle. And when you try to change many things at once it wastes energy and distracts your people.

What if you could find the one constraint which is holding your organization back? What if you could focus your energy in the one place which would make the most difference?

You can! The following are three assessment techniques we may recommend in order to identify realistic next steps. All three are powerful and effective: The selection depends on the stated scope of the engagement, the size of the organization to be examined, the expected leadership involvement, and organizational culture.

Agile Fluency™ Model Workshop: Where Are We? Where Do We Want to Be?

On any voyage, your next step depends on where you are, and where you want to go. If either is not clear, you may head off in the wrong direction. This workshop clarifies where you are on the Agile Fluency spectrum, and also where you want to be based on your needs. The Agile Fluency Model will provide you with guidelines delineating the work that you want to do in order to reach your business goals.

Lean Value-Stream Mapping / Kanban Modeling Workshop

You will gather people from all functions, at as many levels as practical, to contribute to a simple model of how you currently work. We will record and consolidate information on cycle times and delays. This will point us to a small number of adjustments to make to your production methodology, and will leave you with a model to update whenever you’re ready for further continuous improvement.

Theory of Constraints Assessment Workshop

This assessment workshop is based on Eli Goldratt’s Theory of Constraints, and uses tools such as a Current Reality Tree to identify a conflict or constraint.