Whether you’re exploring emerging trends in software development, getting your organization engaged with Agile practices, or looking to make continuous improvements to your development processes, I offer training which will help transition your organization to adopt more effective development strategies.
Understanding the Value of Agile Principles
Agile principles are intended to help deliver greater product quality while increasing productivity. To achieve these benefits, project stakeholders must understand the value that come from putting each principle into practice. This class will reveal the value to be expected by applying each of the twelve Agile principles.
Writing Powerful User Stories
This workshop provides hands-on lessons on how to write effective user stories, to understand why they are such an important artifact of Scrum, and how to realize their full value.
Estimation Methods for Agile Development
This course examines both time-based and relative estimation methods, along with the benefits and disadvantages of each.
Creating a Work Breakdown Structure for Agile Development
Creating an effective representation of the development work is critical to maximizing productivity and increasing predictability. This course provides several methods for determining the most effective Work Breakdown Structure (WBS) and demonstrates how to identify, decompose, and represent the work needed to deliver a high-quality product that fulfills customers’ needs.
Managing Technical Debt
Software is a huge asset for most companies, organizations, and governments. The quality of that software contributes heavily to its value. Effectively managing technical debt enables you to optimize the value of software and maximize time to market. If you have to battle technical debt in an attempt to beat your competition to market with a new feature, you may lose any advantage by having to deal with complex or unreliable code that is not easily extendable. To maintain business, market, or technological advantages, you must effectively manage technical debt incurred within all artifacts that define, implement, and validate your software. This course examines what technical debt is, how it can benefit your organization and give you an advantage over your competition, how and when it should be (intentionally) incurred, and how and when it should be paid off.
Enhancing Software Testability
This class examines how to improve the testability of software throughout the development lifecycle; whether through Agile, SAFe, RUP, or Waterfall methodologies. By examining the attributes of testable software, various methods are reviewed which enhance requirements, designs, code, and tests themselves to improve testability.
Principles & Practices of Test-Driven Development
This class teaches the principles and practices of Test-Driven Development (TDD) and demonstrates how proper software design evolves through application of the eXtreme Programming principle of Test First. Unit testing principles are also covered, along with a thorough discussion on the benefits of TDD.
An application is developed (from start to finish) during this class to explain step-by-step and demonstrate first-hand how a high quality, testable design evolves by applying the three laws of Test-Driven Development.