Flatten the Cost of Change Curve in Software Development

A 100-HOUR PROGRAMME FOR IT COMPANIES

Duration

100 Hours

Where

Live online stream

For your team

Enroll your team and learn with your peers.
Request Info

Reduce the Cost of Change by simplifying your System Complexity

THE CHALLENGE

Every software system undergoes changes: features get added, removed, or modified. In software development, the "cost of change" curve represents how the cost of making changes to the software increases over time. The challenge? To flatten this curve, ensuring the cost of change remains low, predictable, and constant. It shouldn't matter if you're developing a certain user story today or in six months - the costs shouldn't spike. To achieve this result, continuous work is required to reduce the complexity of your software system.

Software Development teams, inclusive of management, product and tech units, often struggle with a growing cost of change curve. Despite adopting agile methodologies or similar approaches, their cost of change curve always rises. For them, introducing a certain feature now is less expensive than doing it in six months. This is because, over time, their software system becomes more complex, and therefore, hinders change. The marginal cost per unit of change often grows exponentially, making delivery times unpredictable.

MAIN GOAL

Reduce the cost of change by simplifying your system complexity.

Enable a skilled cross-functional team to apply a process that develops software capable of accepting changes and flattens the cost of change curve.

Our programme brings together managers, product teams, and software developers, all working towards a common goal: to flatten the cost of change curve. Our primary objective is to reduce the cost of change in your software system by helping your team simplify its complexity. The result is more functionality delivered in less time, reduced stress, and predictable outcomes. Ultimately, we aim to empower your team to evolve into a highly-skilled, self-organized, and cross-functional unit. Our programme equips your team to shape a unique software development process, skillfully integrating industry best practices. In addition, our programme aids in building a shared language among management, product, and tech teams, facilitating effective change management.

Diploma of Attendance

Upon fully participating in and completing our programme, participants will be awarded a Diploma of Attendance. This diploma represents more than just a certificate; it stands as a symbol of your commitment to enhancing your skills, your understanding of software development, and your determination to boost the overall efficiency of your team.

This document marks your accomplishment in learning to flatten the cost of change curve and simplify complex processes. It is evidence of your preparedness to address the challenges of software development now and in the future. The knowledge, skills, and practices you have gained will continue to serve you and your team beyond the receipt of this diploma.

Benefits

People

  • Building a shared language among management, product and tech teams
  • Clear role definitions
  • Comprehensive training
  • Cross-functional unit
  • Effective and sustainable work practices
  • Highly-skilled
  • Increased awareness
  • Motivation
  • Opportunities for skill enhancement
  • Promoting versatility in skills (despecialization)
  • Self-organized
  • Streamlined meetings
  • Less Fear
  • Less Stress

Process

  • Enabling everyone to contribute to product/system improvement
  • Establishing clear responsabilities
  • Improving quality
  • Predictable outcomes
  • Promoting versatility in skills
  • Simplifying software system
  • Skillfully integrating industry best practices
  • Unique software development process
  • Less Confusion and uncertainty
  • Eliminating waste

Product

  • Effective change management
  • More functionality
  • Delivery in less time

Programme

By the end of this section, you'll have a clear roadmap of our programme and a comprehensive understanding of how we plan to flatten your cost of change curve.

The modules within our programme can be tailored to meet the specific needs of your company. Work sessions can be arranged in blocks of 4, 6, or 8 hours, depending on the requirements of your business.

When we refer to the 'development team' in this text, we're speaking about the complete team, which functionally consists of managers, product developers, and tech developers. In some companies, there might be separate UX or QA teams. While these teams haven't been explicitly considered in this description for the sake of simplicity, they can certainly be integrated into the programme if they exist within your organization. This functional distribution is the starting point of our programme, aiming to create cross-functional teams.

In the programme, we use two different icons corresponding to the different profiles:

means that we recommend it to that profile
means that the activity is also suitable for that profile.

Type
Activity
Length
Mgmt
Team
Product
Team
Tech
Team
Part 1 - Flatten the Cost of Change Curve in Software Development

This part focuses on the understanding and mitigation of the cost of change curve in software development. The idea is to make the team understand how simplifying system complexity can reduce the cost of changes.

Mentoring
Flattening the Cost of Change Curve in Software Development: Challenge and Goals
3 hours
Course
"Object Technology Lets You Build Software Ten Times Faster" --Steve Jobs
3 hours
Course
The Laundry Object: Practical Lab
2 hours
Mentoring
Flatten the Cost of Change Curve - How?
2 hours
Part 2 - Tailoring and Assembling Your Own Development Process

This part aims to give the team insights on different software development processes. The team will gain insights into how to customize their own development process to better suit their needs and work culture.

Course
Dealing with Growth and Change: The Waterfall Lifecycle
2 hours
Course
Dealing with Growth and Change: The Iterative and Incremental Lifecycle
2 hours
Course
Dealing with Growth and Change: Introduction to Adaptive Lifecycles
1 hour
Course
Dealing with Growth and Change: Extreme Programming (XP) - Business Practices
2 hours
Course
Dealing with Growth and Change: Extreme Programming (XP) - Tech Practices
2 hours
Mentoring
Choosing your Process
4 hours
Part 3 - Pomodoro® Technique for Teams

This part introduces the Pomodoro technique to enhance team productivity and manage time more efficiently.

Course
The Pomodoro® Internal Process
3 hours
Course
The Pomodoro® Core Process
3 hours
Course
The Pomodoro® Daily Process
3 hours
Course
The Pomodoro® Team Process
3 hours
Mentoring
Pomodoro® Technique for Managers Q&A
(Note - One or more sessions)
3 hours
PART 4 - LET'S WORK ON YOUR SOFTWARE SYSTEM TOGETHER: THE PRODUCT TEAM

The focus here is on equipping the product team with skills to communicate the value of their digital product effectively. This includes understanding and implementing use cases, user stories, and scenarios.

PART 4A - SKILLS DEVELOPMENT
Course
Requests, Requirements, Use Cases, User Stories and Scenarios: What's the difference? An Introduction
2 hours
Course
Use Case Modeling: Identifying and Structuring Value
3 hours
Course
Use Case Modeling: Use Case Relationships
3 hours
Course
Writing User Stories and Scenarios
3 hours
Course
Splitting User Stories
3 hours
Mentoring
Workshop: Working on Requirements, Use Cases, User Stories and Scenarios
4 hours
PART 4B - VISUALIZING YOUR PRODUCT VALUE STRUCTURE
Mentoring
Workshop: Understanding and Applying Use Cases in your Software System
6 hours
Mentoring
Workshop: Understanding and Applying User Stories and Scenarios in your Software System
6 hours
Mentoring
Presentation to the team: The Value Structure of our Software System
3 hours
PART 5 - LET'S WORK ON YOUR SOFTWARE SYSTEM TOGETHER: THE TECHNICAL TEAM

This part is geared towards the technical team, providing practical techniques to address potential design and architectural issues.

PART 5A - SKILLS DEVELOPMENT
Course
Anti-IF Workshop: Collaboration Diagram Applied
Thinking before coding
3 hours
Course
Mastering Design Patterns Variations and Dynamics: Strategy State and Command Patterns
3 hours
Course
Mediator and Observer Patterns
3 hours
Course
Test-Driven Development in Action
Let's develop a functionality together using the original XP's Test-Driven Development (TDD).
3 hours
PART 5B - VISUALIZING YOUR SOFTWARE SYSTEM DESIGN/ARCHITECTURE

Note - This part is preferable to do in the presence

Mentoring
Workshop Reviewing the Design of your software system
6 hours
Mentoring
Workshop Reviewing the Architecture of your software system
6 hours
Mentoring
Presentation to the team: The Design and Architecture of our software system
3 hours

Detailed Goals

Group
Goal
Details
People
Focus on creating a virtuous circle of win-win practices
Strengthen trust
Enhance employee retention
Empower employees
Boost employee skills
Process
Apply an adaptive software development process
Foster a shared vision of the product and software system
Create a truly cross-functional team without silos
Equip your team to develop software that thrives on change
Product
Learn practices and techniques
Assess the adaptability of your software system
Control and reduce the complexity of your software system
Achieving Continuous Delivery is a result of system simplification, not an exertion of brute force

The Story Behind This Program

Francesco Cirillo

"Recently, I've mentored several teams and it always played out the same way: they diligently applied mainstream processes, tools, and practices - Agile, Jira, Continuous Delivery, you name it - yet deadlines kept slipping and 'never-ending user stories' became the norm. Even worse, the blame game was in full swing: the product team pointed fingers at the tech team, the tech team retaliated, and the management team blamed everyone.

It wasn't about the tools or processes they were using. It was the hidden monster - software complexity. Everyone overlooked the task of reducing the complexity of both the software system and the product's value system. As complexity spiraled, confusion and frustration set in among the product and software developers, leading to delusions: "Do we already have this feature?" the Product Developers would ask. "Our software is fine, change is our only problem," the developers would insist. All the while, the beast of complexity grew as they were mired in their Jira to-do lists, pointless remote meetings, and 'clean' silos driven code duplications.

They were so embroiled in the day-to-day grind that they lost sight of the big picture: dealing with change and fostering growth of their software and product value structure by curbing its complexity.

This was the spark for my programme. The goal for your team shouldn't be just to latch onto every new process, practice, or tool. It should be about continually reducing the complexity of your software system. And to achieve that, your team needs a self-tailored blend of process, tools, and practices that work for them, not just by the book. By doing this, you can adapt to changes and let your software grow sustainably, without fear, stress, waste, or delusions. And that is the beating heart behind my programme."

Break the Chains of Conditionals; Unleash Cleaner Code!

TRAINER

...

Francesco Cirillo

Francesco’s journey in software spans over 30 years, influencing startups, corporates, and individual consultants.

A seasoned mentor, he has impacted countless professionals and teams. From his early days with Sun Microsystems to pioneering Agile Methods and creating XPLabs, Francesco's mark on the software industry is profound.

Notably, he's the creator of the groundbreaking Pomodoro Technique, a time management method embraced worldwide, as well as the visionary behind the Anti-IF Programming philosophy, challenging conventional coding practices.

Testimonials

Carlo Garatti

"If your question is about how to write valuable software, this program is for you!! Through one-on-one lessons with Francesco you will learn how to fit the right techniques and tools in the exact phases of the software development cycle. You will fix and apply these ideas in real cases. And, last but not least, in an enjoyable way!"

Alessandro Ruzzon

"What did I like the most? In this workshop the theory part matches up with the practical part. You don't only hear WHAT TO DO but also HOW TO DO IT, and you start practicing it right away in the labs! That's really what the Workshop is about: real-life practice aimed at consolidating theoretical notions. This approach helps in understanding problems"

Contact Me