.

COURSE OFFERINGS – A COMPLETE PORTFOLIO OF YOUR TRAINING NEEDS

Area: Team Transformation to Agile

Agile Immersion

Duration: 3 days

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development

Description:

The intent of the course is to:

  • provide an intense 3-day immersion into agile methods and their associated techniques
  • impart a deep understanding of why agile methods work so well
  • immediately position the team for utilization of these methods.

The course begins with a detailed look into well known software development lifecycle methods. Then, the course introduces Agile Methods as a better way to build software. All current agile methods such as Scrum, Extreme Programming, Lean, TDD, Crystal, DSDM, ASD, and FDD are discussed. How to develop an agile ecosystem tailored to your company's culture and comfort level is covered in detail. Agile requirements gathering through User Stories is described. The new role of the QA organization is presented.

The philosophical mindset changes offered by agile methods are reinforced using examples and introspective discussions. This class is extremely participatory as many exercises are used to drive knowledge deeper. At the conclusion of this 3-day immersion, the attendees will be "transformed" into agilists, ready to use their new found talents in pursuit of your company's product deliverables in a flexible agile way.

Note: this course can and should be tailored to fit the agile methods you are currently using or will use.

Introduction to Agile and Scrum

Duration: 2 days

Audience:

  • Developers, testers, product managers, people managers, executives
  • Teams new to agile or considering agile product development

Description:

This course provides a foundational understanding of what Agile is all about. The course begins with a detailed look into well known software development lifecycle methods. Then, the course introduces Agile Methods as a better way to build software. Empirical data and case studies are used to show the business case for Agile. The Agile Manifesto and agile practices are explored to help the student understand the philosophical underpinnings of this approach and how it is radically different than before. Team exercises are used to experience the new approach firsthand.

Scrum is presented as an example of a popular agile framework. The actual methods of Scrum are described in detail – sprint planning meeting, daily stand-ups, sprint reviews, sprint reflection, and sprint iteration. The artifacts of Scrum are described – product backlog, sprint backlog, burndown chart, and the potentially shippable product increment. Personnel roles such as Scrum Master, Product Owner, Chickens & Pigs, are described. Attendees will participate in a hands-on Scrum-based example project.

At the conclusion of the 2-day course, the attendees will be knowledgeable in Agile Methods and Scrum, ready to make roll-out decisions on organizational transformation.

Effective Requirements Management - the Agile Way!

Duration: 2 days

Audience:

  • Product managers, developers, testers, people managers
  • Teams new to agile or considering agile product development

Description:

Requirements management in an Agile project is very different than other approaches. This course covers the Agile techniques for managing requirements effectively, mitigating project risk, and insuring successful product delivery. Comprehensive topics such as customer engagement, vision statement formulation, user story development, product backlog management, ruthless prioritization, how to write a good user story, user story workshops, the role of acceptance test cases, tracking status of development, and others are discussed.

The class is participatory as individual and team-based exercises are used to enhance deeper understanding. The class ends with an introspective exercise discussing your current requirement management challenges and what agile techniques will benefit your situation.

Agile Offshore Outsourcing

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams considering both agile methods and offshore outsourcing

Description:

Teams are migrating to agile methods as a way to develop software faster and with higher quality. Many agile purists believe that agility and outsourcing are contradictory in nature. But the CEO and CFO would like both - an agile development team delivering tangible business value and the cost reductions associated with offshore outsourcing. This course covers the difficult topic of how to establish a successful agile development team located in different geographical regions. Best practices, collaboration tools, tips and techniques, success stories, failures, and what to avoid are all covered in this detailed review based on the presenter's 10+ years of experience leading agile teams across an oceanic divide.

The class ends with an exercise discussing your company's current plans for agile methods and offshore outsourcing and how the techniques presented can be used to help remedy this enormous challenge. At the conclusion of this course, the attendees will have a repertoire of techniques to utilize in pursuit of successful harmony between agile methods and offshore outsourcing.

Agile Lifecycles

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams considering agile methods

Description:

What does a software life-cycle look like when using agile methods? What are the major checkpoints? What does "done" mean? This course covers these topics and more. Lifecycle templates are introduced as a way to establish a conceptual framework for product development. These templates vary based on project dynamics such as level of research required, integration dynamics, requirements risk, etc. The lifecycle templates can be tailored to fit your team's exact situation.

Agile Methods - Leadership Team Responsibilities

Duration: 1/2 day

Audience:

  • Executives, product managers, people managers, developers, testers
  • Teams considering agile methods

Description:

Agile will not work effectively without executive and management support. Agile is not just a transformation of how products are built by the development teams. Agile also affects the leadership team.

This course begins with a business justification for the use of agile methods. Then, the course describes the leadership team's new responsibilities when managing an agile project. A compare and contrast approach is used to reinforce the learning by discussing responsibilities when leading agile projects versus non-agile projects. Case studies are used where appropriate. Management and team dysfunctions within an agile organization are discussed in terms of root causes, symptoms, and cures.

The course ends with a candid introspection evaluating if the leadership team is truly ready for agile.

Agile Role - Product Owner

Duration: 1 day

Audience:

  • Project managers, product managers, people managers
  • Teams about to begin agile product development

Description:

The course covers specifically the role of the Product/Project Manager (PM) as the “product owner” in an agile environment. The Agile Product Owner has new and different responsibilities than the “classic PM”. The Agile Product Owner roles, responsibilities, interactions, and mindset changes are covered in detail.

Product owner roles as project lead, customer liaison, vision creator, requirements developer, backlog manager, release planner, and valued team member are described. The Product Owner responsibilities are then mapped into these roles. The major responsibilities of the Product Owner are described and reinforced through participative learning.

The major Product Owner responsibilities include understanding and supporting the Scrum framework, getting the development team started as quickly as possible, maintaining a good relationship with the ScrumMaster, engaging the customer, building the initial project plan, establishing the project vision, creating and trolling for user stories, building and managing the product backlog, prioritization of backlog items, managing inter-team dependencies, preparing for the sprint planning and sprint review meetings, participation in the sprint reflection meeting, role in the daily scrum, handling requirement changes, monitoring team velocity, using velocity in release planning, encouraging self-organization and collaboration, monitoring team status, and making the tough decisions.

The course ends with some real world analogies and an introspective look into your company’s Product Owner (project manager, product manager) role and potential improvements based on what you have learned. The class is extremely participatory as exercises are used to enhance deeper understanding.

Agile Role - ScrumMaster

Duration: 1 day

Audience:

  • Project managers, product managers, people managers, team leads
  • Those who might be asked to be a Scrum Master

Description:

The course covers in detail the ScrumMaster role in an agile environment. ScrumMaster roles as facilitator, leader, coach, communicator, “chief listening officer”, and valued team member are described. The ScrumMaster responsibilities are then mapped into these roles. The major responsibilities of the ScrumMaster are described and reinforced through participative learning.

The ScrumMaster responsibilities include facilitating the sprint planning and review meetings, holding the sprint retrospective discussion, championing and evangelizing the Scrum values and practices, participating in the daily scrum, listening and trolling for impediments, working impediments, encouraging self-organization and collaboration, shielding the team, how to say “no”, when to say “yes”, identifying waste, making team status visible, identifying “ScrumBut smells”, establishing and using team velocity, verifying the definition of done, distributed ScrumMasters, scrum of scrums, and making the tough decisions.

The course ends with some real world analogies and an introspective look into your company’s ScrumMaster role and potential improvements based on what you have learned. The class is extremely participatory as exercises are used to enhance deeper understanding.


Area: User Stories – Requirements with Agility

User Stories - Driving Requirements with Agility

Duration: 1 day

Audience:

  • Customer proxies, product managers, people managers, developers, testers
  • Teams seeking a better way to elicit and clarify requirements

Description:

Eliciting and managing project requirements is often challenging for product owners and development teams. This course is a comprehensive 1-day immersion into a proven lightweight Agile technique of managing requirements – the User Story. Upon completion, attendees will be ready to introduce or improve their use of User Stories as an excellent means of managing requirements with agility.

User stories are inexpensive, low fidelity, simple, and brief descriptions of functionality from the user’s point of view. The promise of User Stories is that development teams can begin writing and demonstrating working code very early in the project lifecycle. The course covers important topics such as who develops the User Stories, how to find User Stories, how to create User Stories, good versus bad User Stories, how to estimate User Stories, how to measure development team velocity, how User Stories fit into the project lifecycle, managing requirement changes using User Stories, and others.

The course ends with an introspective discussion of the audience’s current challenges and how User Stories can help improve your ability to impact the bottom line. The course is participatory and uses many exercises to instill a deep understanding of how to find, create, manage, track, estimate, and derive velocity of User Stories.

User Stories – Estimation

Duration: 1 day

Audience:

  • Customer proxies, product managers, people managers, developers, testers
  • Teams seeking a better way to elicit and clarify requirements

Description:

The course covers the topic of Planning Poker in detail. Planning poker is a popular way to estimate the size of User Stories. A team that is able to estimate User Stories can establish velocity metrics and use these to plan the size of efforts in future sprints. Product managers can more accurately predict release content based on these velocity metrics and User Story estimates.

The course is participatory and uses many exercises to instill a deep understanding of how to estimate User Stories, how to use this data to derive velocity, and how to predict release content.

User Stories – 1 Hour Overview

Duration: 1 hour

Audience:

  • Customer proxies, product managers, people managers, developers, testers
  • Teams considering the use of agile methods and possibly User Stories

Description:

The course provides an overview of a new lightweight method of gathering requirements – the User Story. The promise of User Stories is that development teams can begin writing and demonstrating working code very early in the project lifecycle. Topics discussed include the how to write a User Story, what makes a User Story good or bad, and how User Stories fit into the overall software lifecycle.

The course ends with an introspective discussion of the audience’s current challenges regarding requirements management and how the User Story technique can help improve the team’s ability to start development quickly.

User Stories – Executive Overview

Duration: 1/2 day

Audience:

  • Executives, people managers, project managers
  • Those who have heard about User Stories and are curious about the hype

Description:

The course provides an executive overview of a new lightweight method of gathering requirements – the User Story. The promise of User Stories is that development teams can begin writing and demonstrating working code very early in the project lifecycle. Topics discussed include the technique of User Stories, where User Stories fit into the overall software lifecycle, and how this technique is different than classic requirements management.

Specific emphasis on the business impact of User Stories such as speed of requirements gathering, development impact, ROI, managing changing requirements, and potential efficiency gain are discussed.

The course ends with an introspective discussion of the audience’s current challenges and how User Stories can help improve the team’s ability to impact the bottom line.


Area: Scrum – A Popular Agile Method

Scrum Team Training – Building Successful Products

Duration: 2 days

Audience:

  • Product managers, people managers, developers, leads, testers, business analysts, HR, etc.
  • Teams about to begin product development using Scrum
  • Teams wanting a deeper look into Scrum and why it works

Description:

This course is an excellent way to train up your entire team on Scrum. The course is a fast-paced participative 2-day immersion in Scrum.

The course begins by discussing the origins of Scrum, market uptake, and a conceptual view of the methodology. The underlying philosophies of Scrum and Agile are covered in detail including an engaged customer, time-boxing, iterative development, sashimi, collaboration, command & control versus self-organization, trust, transparency, inspect & adapt, and just-in-time planning. The Scrum framework and the Scrum iteration (sprint) are then described using hands-on exercises which allow the attendee to experience how Scrum truly works. Changing requirements and how to manage these using Scrum is presented. All Scrum personnel roles such as Scrum Master, Product Owner, Chickens & Pigs, development team, and customer are described. The artifacts of Scrum are described – product backlog, sprint backlog, burndown chart, and the potentially shippable product increment. Then, the Scrum meetings are described in detail – sprint planning meeting, daily standups, sprint reviews, and sprint reflection. Additional topics are covered such as Scrum scalability, ScrumBut, managing dependencies with Scrum, managing technical debt with Scrum, and the relation of User Stories to Scrum.

The student’s understanding of Scrum is intensified with collaborative participation in many exercises emulating aspects of the entire Scrum framework. The class ends by putting it all together with a full lifecycle project exercise using Scrum.

Note: this course is not a Certified ScrumMaster (CSM) course. Instead, it covers all aspects and roles of Scrum for the entire team. The CSM course focuses solely on the ScrumMaster role, while this course explains all roles and responsibilities for the entire Scrum team.

Upon completion of the course, the attendee will be ready to implement the Scrum agile method in his/her organization with confidence.

Scrum – 1 Hour Overview

Duration: 1 hour

Audience:

  • Product managers, people managers, developers, leads, testers, business analysts, etc.
  • Teams considering the use of agile methods and possibly Scrum
  • Teams curious what all the hype about Scrum is

Description:

The course introduces the audience to the main concepts of Scrum such as the 30-calendar day sprint, sprint planning, sprint review, product backlog, daily standup, etc. This overview course also explores why Scrum is so successful.

The course ends with an introspective discussion of the audience’s current challenges and how the Scrum methodology can help improve the team’s ability to deliver working software early in the software lifecycle.

Scrum – Executive Overview

Duration: 1/2 day

Audience:

  • Executives, people managers, project managers, human resources, etc.
  • Those who have heard about Scrum and are curious about the hype

Description:

The course introduces the executive and management audience to the main concepts of Scrum such as the 30-calendar day sprint, sprint planning, sprint review, product backlog, daily standup, etc. Specific emphasis on the business impact of Scrum such as ROI, customer feedback, risk/reward, and potential efficiency gain are discussed. Additionally, people-oriented topics such as self-organizing teams, the new role of managers, mindset changes, organization structures, and scalability, are covered.

The course ends with an introspective discussion of the audience’s current challenges and how the Scrum methodology can help improve the team’s ability to impact the bottom line.


Area: Agile Methods - Others

Survey of Agile Methods

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what specific agile methods to use

Description:

The course covers all prominent agile methods being used, including Scrum, Lean, Extreme Programming, FDD, DSDM, ASD, and Crystal. Additional agile techniques such as User Stories and Test-Driven Development are discussed. How to develop an agile ecosystem tailored to your company’s culture and comfort level is covered in detail.

The class ends with an exercise discussing your company’s current challenges and development of an agile ecosystem to address those challenges.

Extreme Programming – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what XP really is

Description:

The course covers Extreme Programming as introduced by Kent Beck in his wonderful book Extreme Programming Explained: Embrace Change. The class refutes the popular notion that Extreme Programming is radical. The class also refutes the notion that Extreme Programming is equivalent with pair programming. The 12 fundamental tenets of Extreme Programming such as test-first, collective ownership, and continuous integration are explained using case studies and augmented with the presenter’s experiences.

The special relationship between Scrum and Extreme Programming is explored. The class ends with an exercise discussing your company’s current development challenges and how Extreme Programming can be used to help remedy the challenges.

Lean – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what Lean really is

Description:

The origins of formalized Lean began on the Toyota assembly lines. The course covers the Lean principles such as identifying and eliminating waste, value stream mapping, the use of feedback to amplify learning, decide as late as possible, deliver as fast as possible, etc. and how these relate to software product development.

Lean’s special relationship with Scrum and Extreme Programming is discussed. The class ends with an exercise discussing your company’s current development challenges and how Lean can be used to help remedy the challenges.

TDD – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what TDD really is

Description:

Test-Driven Development (TDD) holds the promise of increased software quality through automated unit testing. The course covers the TDD principles and the seemingly radical approach of writing a test case, running the code to fail the test case, then adding code to make the test case pass. In other words, “test first, then code.”

Minimalization of code source and Refactoring are discussed as integral topics to TDD. Unit test case automation using tools such as jUnit, cUnit, cppUnit, and FitNesse are discussed and demonstrated Case studies and empirical data evidence is shown proving the impact of TDD in a product development environment.

The class ends with an exercise discussing your company’s current development challenges and how TDD can be used to help remedy the challenges.

Crystal – a Family of Agile Methods

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what Crystal really is

Description:

Crystal gives us a family of methods covering a multitude of projects based on critical project factors such as risk and number of resources involved. The course covers the Crystal approach as a people-centric, ultra-light, and “shrink to fit” software methodology. The four Crystal principles are covered in detail, followed by the seven Crystal color-coded categories based on project needs.

The class ends with an exercise discussing your company’s current development challenges and how Crystal Methods can be used to help remedy the challenges.

DSDM – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what DSDM really is

Description:

The course covers the Dynamic Systems Development Method (DSDM) so popular in the UK and gaining traction here is the US. Topics such as its unique approach to requirements using the MoSCoW technique, principles, people roles, controlled prototyping, lifecycle, and time-boxing are covered in detail.

The class ends with an exercise discussing your company’s current development challenges and how DSDM can be used to help remedy the challenges.

ASD – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what FDD really is

Description:

The course covers Adaptive Software Development as introduced by Jim Highsmith, an early thought leader in agile methods. The class covers the “speculate – collaborate – learn” paradigm introduced by ASD. The relationship of a learning feedback loop is shown within the framework. How to measure an adaptive project is also discussed.

The class ends with an exercise discussing your company’s current development challenges and how ASD can be used to help remedy the challenges.

FDD – an Agile Method

Duration: 1 day

Audience:

  • Product managers, people managers, developers, testers
  • Teams about to begin agile product development
  • Those curious about what ASD really is

Description:

The course covers the Feature Driven Development (FDD) approach that many software teams use today. The concept of the breadth-wise object model developed up front in the project lifecycle is covered as one of the most important aspects of FDD. Topics such as the ETVX process flow, personnel roles, building the features list, planning the development, and designing and building the feature are covered in detail.

The class ends with an exercise discussing your company’s current development challenges and how FDD can be used to help remedy the challenges.


Area: Object-Oriented Analysis/Design and Use Cases

Object Orientation - Transformation

Duration: 2 days

Audience:

  • Product managers, people managers, team leads, developers, testers
  • Teams wanting to convert legacy code base to OO
  • Teams wanting to develop new features and applications using OO
  • Those needing a refresher course on OO

Description:

Is your software team writing functional code instead of object-oriented? OO is now the predominant design and coding approach worldwide. If you are not taking advantage of OO, you are leaving $$$ on the table.

This course gets your team thinking about object-orientation and positions them to deliver higher-quality designs and code. The course addresses the mindset change from functional to objects immediately by launching into a series of “object think” examples. This simple yet powerful technique helps the audience quickly understand what an object is and how to find objects.

The course then covers the history of program design from structured to modular to object-oriented. A classic functional design example is shown as a precursor to a better design using objects. The impact of breadth of change is shown using the functional design. OO concepts such as object, class, encapsulation, data hiding, methods, message, method invocation, instantiation, inheritance, polymorphism, and abstraction are discussed in detail.

The class ends with a sub-team exercise to redesign the original system using objects. Breadth of change is once again examined. The class is participatory as exercises are used to enhance deeper understanding.

OO Analysis & Design Using Use Cases

Duration: 2 days

Audience:

  • Product managers, people managers, team leads, developers, testers
  • Teams wanting to convert legacy code base to OO
  • Teams wanting to develop new features and applications using OO
  • Those needing a refresher course on OO and/or Use Cases

Description:

The course covers the powerful Use Case concept introduced by Ivar Jacobsen in 1992 and still wildly popular even today. The Use Case is presented as both a requirement vehicle and an analysis technique.

Use Cases are the common thread through all software development from requirements to analysis and design, to implementation, to test, and finally to delivery. All deliverables in the Use Case approach are covered in detail – the use case model, analysis model, design model, deployment model, implementation model, and test model. How to find actors, how to find use case titles, and how to write the use cases are discussed using collaborative exercises involving sub-teams and presentations.

The class is participatory as exercises are used to enhance deeper understanding


Area: The Unified Process

The Unified Process

Duration: 1 day

Audience:

  • Product managers, people managers, team leads
  • Anyone considering using the Unified Process or a specific version of it such as Rational Unified Process (RUP)

Description:

The course covers the Unified Process (also known as RUP) in detail as a popular software development process spanning from requirements vision to delivery of working software. Use Cases are discussed as the common thread of the development lifecycle, along with the concept of being architecture-centric. The powerful “iterative and incremental” concept is presented with practical advice on how to make it work effectively.

The RUP core workflows and phases including the product artifacts delivered in each phase are shown in detail. The Unified Modeling Language (UML) is introduced.

The class is participatory as exercises are used to enhance deeper understanding.

.