Best Practices in Managing Your Client/Stakeholder During a Software Development Project
Managing clients and stakeholders effectively can be the linchpin of a successful software development project. Clear communication and effective management techniques can transform what could be a chaotic project into a well-oiled machine. Here are some best practices to ensure you and your clients or stakeholders are always on the same page:
1. Establish Clear Communication Channels
Kickoff Meetings: Start with a comprehensive kickoff meeting to align expectations. Discuss the scope, goals, timelines, and deliverables.
Regular Updates: Schedule regular update meetings to discuss progress, challenges, and next steps. Use video calls, emails, or project management tools to keep everyone informed.
2. Define Roles and Responsibilities
RACI Matrix: Create a RACI (Responsible, Accountable, Consulted, Informed) matrix to clearly outline who is responsible for what. This reduces confusion and ensures accountability.
Documentation: Keep detailed documentation of roles, responsibilities, and project milestones. This acts as a reference point throughout the project lifecycle.
3. Set Realistic Expectations
Scope Management: Clearly define the project scope and make sure all parties agree to it. Avoid scope creep by having a change management process in place.
Timeline and Budget: Be transparent about timelines and budgets. Provide realistic estimates and highlight potential risks that could affect them.
4. Use Agile Methodologies
Sprint Planning: Break down the project into manageable sprints. Use sprint planning meetings to set objectives and ensure that everyone is aligned.
Feedback Loops: Implement regular feedback loops to incorporate client or stakeholder feedback early and often. This helps in making necessary adjustments before it’s too late.
5. Prioritise Transparency and Honesty
Progress Reports: Share regular progress reports that include both successes and challenges. Honesty about setbacks can build trust and facilitate quicker problem-solving.
Open Dialogue: Encourage an open dialogue where clients and stakeholders feel comfortable sharing their concerns and suggestions.
6. Employ Robust Project Management Tools
Software Tools: Utilise project management tools like Jira, Trello, or Asana for tracking progress, assigning tasks, and managing deadlines. These tools can improve collaboration and transparency.
Dashboards: Create dashboards to visualise project metrics and KPIs. This provides a real-time snapshot of the project’s health.
7. Build Strong Relationships
Regular Check-Ins: Beyond formal meetings, have regular check-ins to understand client or stakeholder sentiments. Personal interactions can go a long way in building trust.
Empathy and Understanding: Show empathy and understanding towards your clients’ and stakeholders’ needs and constraints. A good relationship fosters better collaboration.
8. Resolve Conflicts Promptly
Conflict Resolution Plan: Have a plan in place for resolving conflicts swiftly. This includes identifying the issue, discussing it openly, and finding a mutually agreeable solution.
Mediation: If conflicts escalate, consider involving a neutral third party for mediation.
9. Celebrate Milestones and Achievements
Acknowledgement: Recognise and celebrate project milestones and individual achievements. This boosts morale and keeps everyone motivated.
Client Involvement: Involve clients and stakeholders in these celebrations to show appreciation for their contributions and support.
Conclusion
Effectively managing clients and stakeholders is not just about keeping them happy; it’s about building a partnership that drives the project towards success. By establishing clear communication, setting realistic expectations, employing agile methodologies, and fostering strong relationships, you can ensure that your software development project is a triumph for everyone involved.
Feel free to tweak these practices based on your unique project needs and client dynamics. Happy managing!
Life has a funny way of testing us, often throwing us into situations that feel almost impossible to handle. One of the recurring themes in my professional life has been being handed projects that are labeled as “critical” but are, in reality, near-impossible to deliver within the given timeframes or constraints. Compounding the challenge is dealing with people I would never voluntarily choose to engage with—people whose values, work ethics, or personalities directly clash with mine. And yet, money has a magnetic pull that forces us to show up, regardless of how uncomfortable or strained these situations may become.
This post is a reflection on such situations and the coping mechanisms that help me manage both the workload and the interpersonal stress, as well as the hard decisions that sometimes need to be made.
The Reality of Impossible Projects
It usually starts innocuously – a new project, an exciting idea, or an urgent need. Before you know it, you’re neck-deep in chaos: undefined requirements, unrealistic deadlines, unprepared teams, and an avalanche of expectations. These are the types of projects that make you question your abilities, your resilience, and sometimes even your life choices.
You scramble to put out fires, trying to manage both the technical complexities and the constant barrage of “urgent” updates demanded by people who don’t fully understand the scope of the work. Every hour feels like a balancing act on a fraying tightrope, where the stakes are your reputation, your sanity, and your paycheck.
The Challenge of Dealing with Difficult People
To make matters worse, these high-stress projects often come with a bonus gift: difficult people. These could be clients with shifting priorities, team members who don’t pull their weight, or stakeholders who thrive on micromanagement and conflict.
The Egoists: These individuals insist they know better, even when they clearly don’t. Their inability to listen can derail entire workflows.
The Complainers: No matter how much progress is made, these folks focus on what’s wrong. Their negativity can be contagious.
The Incompetents: People who overpromise but underdeliver, leaving you to clean up their mess.
The Disrespectful: Those who disregard your time, expertise, or boundaries, adding unnecessary stress to an already tense situation.
Dealing with these personalities can drain your energy and test your patience, making the project feel even more insurmountable.
Coping Mechanisms to Stay Afloat
While it’s easy to feel overwhelmed, I’ve found a few strategies that help me navigate these turbulent waters.
Set Clear Boundaries Even when a project feels all-consuming, it’s essential to carve out personal time. Whether it’s an hour at the gym, a quiet walk, or just shutting off work notifications after a set hour, boundaries can save your mental health.
Prioritize Ruthlessly Not every task is equally important, even in high-stakes projects. Focus on what truly matters and learn to say no (or not now) to tasks that don’t move the needle.
Find Your Allies In every tough project, there are usually a few people who share your frustrations or are equally committed to success. Lean on them for support, collaboration, and perspective.
Detach Emotionally This is easier said than done, but I’ve learned not to tie my self-worth to the success or failure of a project. Do your best, but don’t let the outcome define you.
Celebrate Small Wins In the chaos, it’s easy to overlook progress. Acknowledge and celebrate even the smallest victories—they’re what keep you going.
The Hard Decisions
Sometimes, despite your best efforts, the stress and toxicity become too much. In such cases, tough decisions are unavoidable.
Walk Away When Necessary No amount of money is worth sacrificing your health or happiness. If a project or client becomes too toxic, walking away might be the best choice for your long-term well-being.
Reassess Your Network If you’re consistently dealing with difficult people, it might be time to reevaluate your professional circle. Seek out clients, colleagues, or industries that align better with your values.
Consider Career Shifts If impossible projects and difficult people have become the norm, it might be worth considering a career change or pivot. Sometimes, the environment you’re in simply isn’t the right fit.
Final Thoughts
Navigating impossible projects and difficult people is never easy, but it’s a reality many of us face. While money is important, so too is our mental and emotional health. The key is finding a balance – learning when to push through, when to set boundaries, and when to step away.
If you’re currently facing a situation like this, know that you’re not alone. Take it one day at a time, focus on what you can control, and don’t be afraid to make the hard decisions when the cost to your well-being becomes too high. Life may keep throwing you into the fire, but each experience strengthens your ability to withstand the heat.
Day 6 of Renier Botha’s 10-Day Blog Series on Navigating the Future: The Evolving Role of the CTO
In the fast-paced world of technology, businesses must continually adapt and innovate to stay competitive. DevOps and agile methodologies have emerged as critical frameworks for enhancing collaboration, improving software quality, and accelerating deployment speeds. By fostering a culture that embraces these practices, organizations can streamline their operations, reduce time-to-market, and deliver high-quality products that meet customer needs. This comprehensive blog post explores how to effectively implement DevOps and agile methodologies, featuring insights from industry leaders and real-world examples.
Understanding DevOps and Agile Methodologies
What is DevOps?
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and deliver high-quality software continuously. DevOps emphasizes collaboration, automation, and integration, breaking down silos between development and operations teams.
Quote: “DevOps is not a goal, but a never-ending process of continual improvement.” – Jez Humble, Co-Author of “The DevOps Handbook”
What is Agile?
Agile is a methodology that promotes iterative development, where requirements and solutions evolve through collaboration between cross-functional teams. Agile focuses on customer satisfaction, flexibility, and rapid delivery of small, incremental changes.
Quote: “Agile is not a noun; agile is how you do something. It’s an approach, it’s a way of thinking, it’s a philosophy.” – Dave West, CEO of Scrum.org
Benefits of Embracing DevOps and Agile Practices
Improved Collaboration: DevOps and agile methodologies foster better communication and collaboration between development, operations, and other stakeholders.
Increased Efficiency: Automation and continuous integration/continuous deployment (CI/CD) pipelines streamline processes and reduce manual errors.
Faster Time-to-Market: Iterative development and rapid feedback loops enable quicker releases and faster response to market changes.
Higher Quality: Continuous testing and integration improve software quality and reduce the risk of defects.
Enhanced Customer Satisfaction: Agile practices ensure that customer feedback is incorporated into development, leading to products that better meet user needs.
Strategies for Fostering a DevOps and Agile Culture
1. Promote Collaboration and Communication
Break down silos between teams by fostering a culture of collaboration and open communication. Encourage cross-functional teams to work together, share knowledge, and align their goals.
Example: At Spotify, autonomous squads work collaboratively on different parts of the product. Each squad includes members from various disciplines, such as development, design, and operations, enabling seamless collaboration and rapid delivery.
2. Implement Automation
Automate repetitive tasks to increase efficiency and reduce the risk of human error. Implement CI/CD pipelines to automate code integration, testing, and deployment processes.
Example: Amazon uses automation extensively in its DevOps practices. By automating deployment and testing processes, Amazon can release new features and updates multiple times a day, ensuring continuous delivery and high availability.
3. Adopt Continuous Integration and Continuous Deployment (CI/CD)
CI/CD practices involve integrating code changes frequently and deploying them automatically to production environments. This approach reduces integration issues, accelerates delivery, and ensures that software is always in a releasable state.
Quote: “The first step towards a successful CI/CD pipeline is having your development team work closely with your operations team, ensuring smooth code integration and delivery.” – Gene Kim, Co-Author of “The Phoenix Project”
4. Focus on Iterative Development
Embrace agile practices such as Scrum or Kanban to implement iterative development. Break down projects into smaller, manageable tasks and deliver incremental improvements through regular sprints or iterations.
Example: Atlassian, the company behind Jira and Confluence, uses agile methodologies to manage its development process. Agile practices enable Atlassian to release updates frequently, respond to customer feedback, and continuously improve its products.
5. Encourage a Learning and Experimentation Culture
Foster a culture of continuous learning and experimentation. Encourage teams to try new approaches, learn from failures, and share their experiences. Provide training and resources to keep team members updated with the latest practices and technologies.
Example: Google’s Site Reliability Engineering (SRE) teams are known for their culture of learning and experimentation. SREs are encouraged to innovate and improve systems, and the organization supports a blameless post-mortem culture to learn from failures.
6. Measure and Improve
Regularly measure the performance of your DevOps and agile practices using key performance indicators (KPIs) such as deployment frequency, lead time for changes, mean time to recovery (MTTR), and change failure rate. Use these metrics to identify areas for improvement and continuously refine your processes.
Quote: “You can’t improve what you don’t measure. Metrics are essential to understand how well your DevOps and agile practices are working and where you can make improvements.” – Nicole Forsgren, Co-Author of “Accelerate: The Science of Lean Software and DevOps”
Real-World Examples of DevOps and Agile Practices
Example 1: Netflix
Netflix is renowned for its innovative use of DevOps and agile practices. The company’s deployment automation and continuous delivery systems allow engineers to release code frequently and reliably. Netflix’s “Simian Army” tools, such as Chaos Monkey, test the resilience of its infrastructure by randomly shutting down instances, ensuring the system can handle failures.
Example 2: Microsoft
Microsoft’s transformation under CEO Satya Nadella has been marked by a strong emphasis on DevOps and agile methodologies. The company adopted agile practices to improve collaboration between development and operations teams, leading to faster releases and enhanced software quality. Azure DevOps, Microsoft’s set of development tools, exemplifies the company’s commitment to DevOps principles.
Example 3: Etsy
Etsy, an online marketplace, has successfully integrated DevOps and agile practices to improve its deployment process. By adopting continuous integration, continuous delivery, and automated testing, Etsy reduced deployment times from hours to minutes. The company also fosters a blameless post-mortem culture, encouraging teams to learn from failures and continuously improve.
Conclusion
Embracing DevOps and agile practices is essential for organizations looking to enhance collaboration, improve software quality, and achieve faster deployment speeds. By promoting a culture of collaboration, implementing automation, adopting CI/CD practices, focusing on iterative development, encouraging learning and experimentation, and measuring performance, organizations can successfully integrate these methodologies into their operations.
As technology continues to evolve, staying agile and adaptable is crucial for maintaining a competitive edge. By leveraging the power of DevOps and agile practices, businesses can drive innovation, deliver high-quality products, and meet the ever-changing needs of their customers.
Stay tuned as we continue to explore critical topics in our 10-day blog series, “Navigating the Future: A 10-Day Blog Series on the Evolving Role of the CTO” by Renier Botha.
Understanding DevOps: Bridging the Gap Between Development and Operations
In the past 15 years, driven by demand on the effective development, depoloyment and support of software solutions, the DevOps methodology has emerged as a transformative approach seemlessly melting together software development and IT operations. It aims to enhance collaboration, streamline processes, and accelerate the delivery of high-quality software products. This blog post will delve into the core principles, benefits, and key practices of DevOps, providing a comprehensive overview of why this methodology has become indispensable for modern organisations.
What is DevOps?
DevOps is a cultural and technical movement that combines software development (Dev) and IT operations (Ops) with the goal of shortening the system development lifecycle and delivering high-quality software continuously. It emphasises collaboration, communication, and integration between developers and IT operations teams, fostering a unified approach to problem-solving and productivity.
Core Principles of DevOps
Collaboration and Communication: DevOps breaks down silos between development and operations teams, encouraging continuous collaboration and open communication. This alignment helps in understanding each other’s challenges and working towards common goals.
Continuous Integration and Continuous Delivery (CI/CD): CI/CD practices automate the integration and deployment process, ensuring that code changes are automatically tested and deployed to production. This reduces manual intervention, minimises errors, and speeds up the release cycle.
Infrastructure as Code (IaC): IaC involves managing and provisioning computing infrastructure through machine-readable scripts, rather than physical hardware configuration or interactive configuration tools. This practice promotes consistency, repeatability, and scalability.
Automation: Automation is a cornerstone of DevOps, encompassing everything from code testing to infrastructure provisioning. Automated processes reduce human error, increase efficiency, and free up time for more strategic tasks.
Monitoring and Logging: Continuous monitoring and logging of applications and infrastructure help in early detection of issues, performance optimisation, and informed decision-making. It ensures that systems are running smoothly and any anomalies are quickly addressed.
Security: DevSecOps integrates security practices into the DevOps pipeline, ensuring that security is an integral part of the development process rather than an afterthought. This proactive approach to security helps in identifying vulnerabilities early and mitigating risks effectively.
Benefits of DevOps
Faster Time-to-Market: By automating processes and fostering collaboration, DevOps significantly reduces the time taken to develop, test, and deploy software. This agility allows organisations to respond quickly to market changes and customer demands.
Improved Quality: Continuous testing and integration ensure that code is frequently checked for errors, leading to higher-quality software releases. Automated testing helps in identifying and fixing issues early in the development cycle.
Enhanced Collaboration: DevOps promotes a culture of shared responsibility and transparency, enhancing teamwork and communication between development, operations, and other stakeholders. This collective approach leads to better problem-solving and innovation.
Scalability and Flexibility: With practices like IaC and automated provisioning, scaling infrastructure becomes more efficient and flexible. Organisations can quickly adapt to changing requirements and scale their operations seamlessly.
Increased Efficiency: Automation of repetitive tasks reduces manual effort and allows teams to focus on more strategic initiatives. This efficiency leads to cost savings and better resource utilisation.
Greater Reliability: Continuous monitoring and proactive issue resolution ensure higher system reliability and uptime. DevOps practices help in maintaining stable and resilient production environments.
Key DevOps Practices
Version Control: Using version control systems like Git to manage code changes ensures that all changes are tracked, reversible, and collaborative.
Automated Testing: Implementing automated testing frameworks to continuously test code changes helps in identifying and addressing issues early.
Configuration Management: Tools like Ansible, Puppet, and Chef automate the configuration of servers and environments, ensuring consistency across development, testing, and production environments.
Continuous Deployment: Deploying code changes automatically to production environments after passing automated tests ensures that new features and fixes are delivered rapidly and reliably.
Containerisation: Using containers (e.g., Docker) to package applications and their dependencies ensures consistency across different environments and simplifies deployment.
Monitoring and Alerting: Implementing comprehensive monitoring solutions (e.g., Prometheus, Grafana) to track system performance and set up alerts for potential issues helps in maintaining system health.
Recommended Reading
For those looking to dive deeper into the principles and real-world applications of DevOps, several books offer valuable insights:
“The DevOps Handbook” by Gene Kim, Jez Humble, Patrick Debois, and John Willis: This book is a comprehensive guide to the DevOps methodology, offering practical advice and real-world case studies on how to implement DevOps practices effectively. It covers everything from continuous integration to monitoring and security, making it an essential resource for anyone interested in DevOps.
“The Phoenix Project” by Gene Kim, Kevin Behr, and George Spafford: Presented as a novel, this book tells the story of an IT manager tasked with saving a failing project. Through its engaging narrative, “The Phoenix Project” illustrates the challenges and benefits of adopting DevOps principles. It provides a compelling look at how organisations can transform their IT operations to achieve better business outcomes.
“The Unicorn Project” by Gene Kim: A follow-up to “The Phoenix Project,” this novel focuses on the perspective of a software engineer within the same organisation. It delves deeper into the technical and cultural aspects of DevOps, exploring themes of autonomy, mastery, and purpose. “The Unicorn Project” offers a detailed look at the developer’s role in driving DevOps transformation.
Conclusion
DevOps is more than just a set of practices, it’s a cultural shift that transforms how organisations develop, deploy, and manage software. By fostering collaboration, automation, and continuous improvement, DevOps helps organisations deliver high-quality software faster and more reliably. Embracing DevOps can lead to significant improvements in efficiency, productivity, and customer satisfaction, making it an essential methodology for any modern IT organisation.
By understanding and implementing the core principles and practices of DevOps, organisations can navigate the complexities of today’s technological landscape and achieve sustained success in their software development endeavours. Reading foundational books like “The DevOps Handbook,” “The Phoenix Project,” and “The Unicorn Project” can provide valuable insights and practical guidance on this transformative journey.
Ensuring that software development teams have appropriate hardware and software specifications as part of their tooling is crucial for businesses for several reasons:
Standardisation and Consistency: Beyond individual productivity and innovation, establishing standardised hardware, software and work practice specifications across the development team is pivotal for ensuring consistency, interoperability, and efficient collaboration. Standardisation can help in creating a unified development environment where team members can seamlessly work together, share resources, and maintain a consistent workflow. This is particularly important in large or distributed teams, where differences in tooling can lead to compatibility issues, hinder communication, and slow down the development process. Moreover, standardising tools and platforms simplifies training and onboarding for new team members, allowing them to quickly become productive. It also eases the management of licences, updates, and security patches, ensuring that the entire team is working with the most up-to-date and secure software versions. By fostering a standardised development environment, businesses can minimise technical discrepancies that often lead to inefficiencies, reduce the overhead associated with managing diverse systems, and ensure that their development practices are aligned with industry standards and best practices. This strategic approach not only enhances operational efficiency but also contributes to the overall quality and security of the software products developed.
Efficiency and Productivity: Proper tools tailored to the project’s needs can significantly boost the productivity of a development team. Faster and more powerful hardware can reduce compile times, speed up test runs, and facilitate the use of complex development environments or virtualisation technologies, directly impacting the speed at which new features or products can be developed and released.
Quality and Reliability: The right software tools and hardware can enhance the quality and reliability of the software being developed. This includes tools for version control, continuous integration/continuous deployment (CI/CD), automated testing, and code quality analysis. Such tools help in identifying and fixing bugs early, ensuring code quality, and facilitating smoother deployment processes, leading to more reliable and stable products.
Innovation and Competitive Edge: Access to the latest technology and cutting-edge tools can empower developers to explore innovative solutions and stay ahead of the competition. This could be particularly important in fields that are rapidly evolving, such as artificial intelligence (AI), where the latest hardware accelerations (e.g., GPUs for machine learning tasks) can make a significant difference in the feasibility and speed of developing new algorithms or services.
Scalability and Flexibility: As businesses grow, their software needs evolve. Having scalable and flexible tooling can make it easier to adapt to changing requirements without significant disruptions. This could involve cloud-based development environments that can be easily scaled up or down, or software that supports modular and service-oriented architectures.
Talent Attraction and Retention: Developers often prefer to work with modern, efficient tools and technologies. Providing your team with such resources can be a significant factor in attracting and retaining top talent. Skilled developers are more likely to join and stay with a company that invests in its technology stack and cares about the productivity and satisfaction of its employees.
Cost Efficiency: While investing in high-quality hardware and software might seem costly upfront, it can lead to significant cost savings in the long run. Improved efficiency and productivity mean faster time-to-market, which can lead to higher revenues. Additionally, reducing the incidence of bugs and downtime can decrease the cost associated with fixing issues post-release. Also, utilising cloud services and virtualisation can optimise resource usage and reduce the need for physical hardware upgrades.
Security: Appropriate tooling includes software that helps ensure the security of the development process and the final product. This includes tools for secure coding practices, vulnerability scanning, and secure access to development environments. Investing in such tools can help prevent security breaches, which can be incredibly costly in terms of both finances and reputation.
In conclusion, the appropriate hardware and software specifications are not just a matter of having the right tools for the job; they’re about creating an environment that fosters productivity, innovation, and quality, all of which are key to maintaining a competitive edge and ensuring long-term business success.
“Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework” by Mik Kersten presents a revolutionary approach for organisations navigating the complex landscape of digital transformation. The book addresses a critical challenge faced by many companies: the shift from traditional project-based work models to product-centric models in order to better adapt to the fast-paced, technology-driven market.
Kersten introduces the Flow Framework™ as a solution to this challenge. The framework is designed to bridge the gap between the business and IT, enabling organisations to thrive in the digital age by focusing on value delivery rather than just project completion. The author argues that in the era of software becoming a crucial part of every aspect of the business, companies need to transform their management and development practices to stay competitive.
The book is divided into several parts, beginning with an analysis of why the traditional project management approaches are failing to meet the demands of modern digital business. Kersten then delves into the details of the Flow Framework™, explaining its core components: Flow Items, Flow Metrics, and Flow Distribution. These elements help organisations to measure and manage the flow of business value from ideation to customer delivery.
“Project to Product” emphasises the importance of focusing on products rather than projects, advocating for a shift in how teams are organised, how work is prioritised, and how success is measured. By adopting the Flow Framework™, businesses can improve their software delivery performance, enhance strategic decision-making, and ultimately, increase their competitiveness in the digital era.
The book provides actionable insights, real-world examples, and practical advice for leaders and practitioners aiming to transform their organisations by moving from project to product. Mik Kersten draws from his extensive experience in the field to guide readers through the journey of digital transformation, making “Project to Product” an essential read for anyone involved in software development, IT management, or organisational change.
The Flow Framework Explained
The Flow Framework™, introduced by Mik Kersten in “Project to Product,” is a strategic model designed to aid organisations in navigating the complexities of digital transformation. It aims to shift the focus from traditional project-centric operations to a product-centric approach, aligning IT and software development processes with business outcomes. The framework is particularly geared towards enhancing how businesses deliver value in an era dominated by digital technologies. Here’s a breakdown of its key components and principles:
Core Components
Flow Items: These are the work items that move through the IT value stream, categorised into Features (new business value), Defects (quality issues), Risks (security, compliance, and technical debt), and Debts (technical debt reduction). The categorisation helps organisations prioritise and track the value delivery.
Flow Metrics: The framework introduces four key metrics to manage and measure the flow of work:
Flow Time: Measures the time taken from work initiation to delivery, providing insight into the overall responsiveness of the value stream.
Flow Velocity: Measures the number of flow items completed over a given period, indicating the speed of value delivery.
Flow Efficiency: Assesses the proportion of time flow items spend in active work versus waiting or blocked, highlighting process efficiency and waste.
Flow Load: Tracks the work in progress within the system, ensuring teams are not overburdened and can maintain a sustainable pace.
Flow Distribution: This component analyses the distribution of flow items across the different categories (Features, Defects, Risks, Debts), helping teams to balance their efforts and ensure a focus on delivering customer value while maintaining system health and compliance.
Principles
Product-Centric: Shifts the focus from managing projects to nurturing products, aligning IT work with business outcomes and customer value.
Feedback and Adaptation: Encourages rapid feedback loops within and between IT and business, fostering continuous improvement and adaptation to change.
Value Stream Management: Emphasises the importance of visualising and managing the entire value stream from idea to delivery, identifying bottlenecks and opportunities for optimisation.
Benefits
By implementing the Flow Framework™, organisations can achieve several key benefits:
Improved visibility into IT operations and their impact on business outcomes.
Enhanced alignment between IT and business strategies.
Increased efficiency and speed of software delivery.
Better prioritisation of work, focusing on delivering customer value.
A more agile and responsive IT organisation, capable of adapting to changes in the market and technology landscape.
The Flow Framework™ offers a comprehensive approach to managing and measuring IT and software development work, making it an essential tool for organisations looking to thrive in the digital age.
Key Learnings & Benefits
From “Project to Product” readers can derive several key learnings and benefits, particularly relevant to leaders and practitioners navigating digital transformations within their organisations. The book not only introduces the Flow Framework™ but also delves into the necessity of evolving from project-oriented to product-oriented IT and software development approaches. Here are the core takeaways and benefits:
Key Learnings:
Shift from Project to Product: One of the main themes of the book is the critical shift that organisations must make from focusing on projects to concentrating on products. This shift enables a closer alignment with business outcomes and customer value.
Introduction to the Flow Framework™: The book presents the Flow Framework™ as a methodology to enable this transition, providing a language and set of metrics for business and IT to communicate effectively and drive value delivery.
Understanding Value Stream Management: Kersten emphasises the importance of value stream management, encouraging organisations to visualise and optimise the flow of value from idea to delivery. This is vital for identifying bottlenecks and improving delivery speed and quality.
Emphasis on Continuous Feedback: The book highlights the necessity of establishing feedback loops to swiftly and efficiently adapt to changes, ensuring that product development is aligned with customer needs and market demands.
Cultural Transformation: “Project to Product” underlines the need for a cultural shift within organisations, fostering an environment that supports continual learning, collaboration, and innovation.
Benefits:
Enhanced Visibility and Alignment: By adopting the principles outlined in the book, organisations can achieve greater visibility into their IT operations and ensure that they are closely aligned with their business goals.
Increased Efficiency and Agility: The Flow Framework™ helps organisations streamline their processes, reducing waste and enabling them to respond more quickly to market changes and customer needs.
Improved Decision-Making: With clear metrics and a focus on value delivery, leaders can make more informed decisions about where to allocate resources and how to prioritise work.
Competitive Advantage: Organisations that successfully shift from project to product and implement the Flow Framework™ can gain a significant competitive advantage by being more innovative, agile, and customer-focused.
Sustainable Transformation: The book provides a roadmap for sustainable digital transformation, helping organisations navigate the challenges of the digital age and emerge more resilient and adaptable.
“Project to Product” offers valuable insights for any leader or practitioner involved in software development, IT management, or organisational change, providing a practical framework for navigating the complexities of digital transformation and driving long-term value.
The Scrum of Scrums is a scaled agile framework used to coordinate the work of multiple Scrum teams working on the same product or project. It is a meeting or a communication structure that allows teams to discuss their progress, identify dependencies, and address any challenges that may arise during the development process. The Scrum of Scrums is often employed in large organisations where a single Scrum team may not be sufficient to deliver a complex product or project.
The primary purpose of the Scrum of Scrums is to facilitate coordination and communication among multiple Scrum teams. It ensures that all teams are aligned towards common goals and are aware of each other’s progress.
Here are some key aspects of the Scrum of Scrums:
Frequency:
The frequency of Scrum of Scrums meetings depends on the project’s needs, but they are often daily or multiple times per week to ensure timely issue resolution.
Shorter daily meetings focussing on progress, next steps and blockers can be substantiated by a longer weekly meeting covering an agenda of all projects and more detailed discussions.
Participants – Scrum Teams and Representatives:
In a large-scale project or programme, there are multiple Scrum teams working on different aspects of the product or project.
Each Scrum team is represented by one or more members (often the Scrum Masters or team leads) in the Scrum of Scrums meeting. Each team selects one or more representatives to attend the Scrum of Scrums meeting.
These representatives are typically Scrum Masters or team leads who can effectively communicate the status, challenges, and dependencies of their respective teams.
The purpose of these representatives is to share information about their team’s progress, discuss impediments, and collaborate on solutions.
Meeting Structure & Agenda:
The Scrum of Scrums meeting follows a structured agenda that may include updates on team progress, identification of impediments, discussion of cross-team dependencies, reviewing and updating the overall RAID log with associated mitigation action progress and and collaborative problem-solving.
A key focus of the Scrum of Scrums is identifying and addressing cross-team dependencies. Teams discuss how their work may impact or be impacted by the work of other teams, and they collaboratively find solutions to minimise bottlenecks and define a overall critical path / timeline for the project delivery.
Tools and Techniques:
While the Scrum of Scrums is often conducted through face-to-face meetings, organisations may use various tools and techniques for virtual collaboration, especially if teams are distributed geographically. Video conferencing, collaboration platforms, and digital boards are common aids.
Focus on Coordination:
The primary goal of the Scrum of Scrums is to facilitate communication and coordination among the different Scrum teams.
Teams discuss their plans, commitments, and any issues they are facing. This helps in identifying dependencies and potential roadblocks early on.
Problem Solving:
If there are impediments or issues that cannot be resolved within individual teams, the Scrum of Scrums provides a forum for collaborative problem-solving.
The focus is on finding solutions that benefit the overall project, rather than just individual teams.
Scaling Agile:
The Scrum of Scrums is in line with the agile principles of adaptability and collaboration. It allows organisations to scale agile methodologies effectively by maintaining the iterative and incremental nature of Scrum while accommodating the complexities of larger projects.
Information Flow: & Sharing
The Scrum of Scrums ensures that information flows smoothly between teams, preventing silos of knowledge and promoting transparency across the organisation.
The Scrum of Scrums provides a platform for teams to discuss impediments that go beyond the scope of individual teams. It fosters a collaborative environment where teams work together to solve problems and remove obstacles that hinder overall progress.
Transparency is a key element of agile development, and the Scrum of Scrums promotes it by ensuring that information flows freely between teams. This helps prevent misunderstandings, duplication of effort, and ensures that everyone is aware of the overall project status.
Adaptability:
The Scrum of Scrums is adaptable to the specific needs and context of the organisation. It can be tailored based on the size of the project, the number of teams involved, and the nature of the work being undertaken.
In summary, the Scrum of Scrums is a crucial component in the toolkit of agile methodologies for large-scale projects. It fosters collaboration, communication, and problem-solving across multiple Scrum teams, ensuring that the benefits of agile development are retained even in complex and extensive projects.
In Summary, the Scrum of Scrums is a crucial component in the toolkit of agile methodologies for large-scale projects. It fosters collaboration, communication, and problem-solving across multiple Scrum teams, ensuring that the benefits of agile development are retained even in complex and extensive projects.
It’s important to note that the Scrum of Scrums is just one of several techniques used for scaling agile. Other frameworks like SAFe (Scaled Agile Framework), LeSS (Large-Scale Scrum), and Nexus also provide structures for coordinating the work of multiple teams. The choice of framework depends on the specific needs and context of the organisation.
The Agile fixed price is a contractual model agreed upon by suppliers and customers of IT projects that develop software using Agile methods. The model introduces an initial concept & scoping phase after which budget, due date, and the way of steering the scope within the framework is agreed upon. This differs from traditional fixed-price contracts in that fixed-price contracts usually require a detailed and exact description of the subject matter of the contract in advance.
Fixed price contracts are evil – this is what can often be heard from agilest. On the other hand, those contracts are reality which many agile teams have to face. But what if we try to embrace and manage it instead of fighting against it? How can a company execute this kind of contract using agile practices to achieve better results with lower risk? This article will try to answer those questions.
Fixed Price, Time and Scope
Fixed price contracts freeze three project factors at once – money, time and scope – but this should not be a problem for agile teams. In fact, time boxing is common agile practice. Limiting money simply makes time boxing work better.
A real problem with fixed price contracts is the scope, which is fixed in terms of what should exactly be built instead of how much should we build.
Why are clients so obsessed with fixing the scope? We understand that they want to know how much they will pay (who does not want to know that) and when they will get the product. The only thing they don’t know, even if they will not always admit it, is what exactly they want as the final product.
The reason for fixing the scope has its roots in:
Lack of trust between the contractors.
Lack of understanding about how the agile software development methodology and processes work.
Misunderstanding what the scope means.
Every fixed price contract has a companion document, the “Requirements Specification” or something similar. Most of the time, working in an Agile way, the business requirements are relatively light weight criptic notes captured on stickies or story boards and not in comprehensive Business Requirement Documents (BRDs) pre-approved by business before developemnt commences. Documented requirements tries to reduce the risk of forgetting something important and tries to set a common understanding of what should be done to provide an illusion of predictability of what the business actually wants and needs in the final product.
Key wrong assumptions in fixing the scope are:
The more detail we include in the requirements and scope definition up front, the better we understand each other.
Well-defined scope will prevent changes.
A fixed scope is needed to better estimate price and time.
Converting the Fixed Scope into Fixed Budget
In understanding that the main conflict between application of an agile mindset and a fixed price contract lies in the fixed scope, we can now focus on converting the fixed scope into the fixed budget.
A well defined scope is done by capturing business requirements in as many user stories instead of providing a detailed specification of requirements. These stories are built into a product backlog. The effort required to deliver each story is estimated using one of many story point techniques, like planning poker.
It is key to understand that a higher level of detail in software requirements specifications, means two completely different things for both parties within a contract. Software companies (vendors / supplier), responsible for developing applications, will usually focus on technical details while the company using the software (buying party / customer) is more user focussed and business outcome oriented.
In compiling specifications four key aspects are in play:
User stories is a way of expressing requirements, understandable for both suppliers and customers. The understanding builds trust and a sense of common vision. User stories are quick to write and quick to destroy, especially written on an index card. They are also feature oriented, so they can provide a good view on the real scope of a project, and we can compare them with each other in terms of size or effort.
Acceptance Ctiteria, captured for each user story, are a formalised list of requirements that ensires a user story is completed with all scenarios taken into account – it specifies the conditions under which a story is fulfilled.
Story points as a way of estimating stories, are units of measure for expressing an estimate of the overall effort required to fully implement a user story or other pieces of work on the product backlog. The team will access the effort to deliver a story against the acceptance criteria and in relation to other stories. Various proven estimation techniques can be adopted by the team for example effort can be expressed as a T-shirt size (i.e. Large, Medium, Small). To quantify the effort, each T-shirt size can be assigned a number of story points i.e. Large = 15 storypoints, Medium 5 storypoints and Small = 2 story points. (See also the section on Estimation below). The intention of using story points, instead of man hours, is to lower the risk of underestimating the scope because, story points in their nature are relative and focused on the whole scope or on a group of stories, while traditional estimation (usually done in man-hours) tries to analyse each product feature in isolation.
Definition of done is another way of building trust and common understanding about the process and all the future plans for the project. It’s usually the first time clients see user stories and while they may like the way the stories are written, it may not be so obvious what it means to implement a story. Development teams who confirm with the client their definition of done, in conjunction with the acceptance criteria with, illustrate that they know better what the client’s expectations are.Development on a story will be completed when the defenition of done is achieved. This supports better estimation. In addition on the client side, the definition of done, in conjunction with the accpetance criteria, sets the criteria for user story acceptance.
Using the above four aspects, will provide the building blocks to define the scope budget in story points. This story point budget and not the stories behind it, is the first thing that should be fixed in the contract.
This sets the stage for change.
While we have the scope budget fixed (in terms of story points) we still want to embrace change, the agile way. As we are progressing with the project delivery, and especially during backlog refinement, we have the tools (user stories and points) which we can use to compare one requirement with another. This allows us to refine stories and change requirements along the way within a defined story point budget limit. And if we can stay within that limit, we can also stay within the fixed price and time.
Before Estimation
The hardest part in preparing a fixed price contract is to define the price and schedule that will be fixed based on, in most cases, not so well-defined requirements but preferably a well defined scope.
How can you prepare the project team (customer & supplier) to provide the best possible initial estimation?
Educate: Meet with your client and describe the way you’re going to work. We need to tell what the stories are all about, how we are going to estimate them and what is the definition of done. We might even need to do that earlier, when preparing an offer for the client’s Request For Proposal (RFP). Explain the agile delivery mothodology and you will use it to derive the proposal.
Capture user stories: This can be arranged as a time-boxed sessions, usually not taking no more than 1 or 2 days. This is long enough to find most of the stories forming the product vision without falling into feature creep. At this point it is also very important to discuss the definition of done, acceptance criteria for stories, iterations and releases with the client.
We need to know:
The environment in which stories should be tested (like the number of browsers or mobile platforms, or operating systems)
What kind of documentation is required
Where should finished stories be deployed so that the client can take a look at them
What should the client do (i.e. take part in a demo session)
How often do we meet and who participates
etc.
This and probably many more project specific factors will affect the estimation and will set a common understanding about the expectations and quality on both sides. They will also make the estimation less optimistic as it often happens when only the technical aspects of story implementation are considered by the team.
Estimation
Having discussed with the client a set of stories and a definition of done, we can now start the estimation. This is a quite well-known part of the process. The most important activity here is to engage as many future team members as possible so that the estimation is done collectively. Techniques like planning poker are known to lower the risk of underestimation because of some particular team member’s point of view, especially if this team member is also the most experienced-one, which is usually the case when estimations are done be one person. It is also important that the stories are estimated by the people who will actually implement the system.
Apart from T-shirt sizes to expressed effort estiamtion, as mentioned under Story Points above, the Fibonacci-like scale (1, 2, 3, 5, 8, 13, 20, 40, 100) comes in handy for estimating stories in points. Relative estimation starts with finding a set of easiest or smallest stories. They will get 1 or 2 points as a base level for further estimation.
In fact during the initial estimation it is often hard to estimate stories using the lowest values like 1 or 2. The point is, the higher the estimation, the less we know about the story. This is also why estimating in points is easier at this early stage, because it is far easier to tell that a story A is 2x as complicated as story B than to tell that story A will take 25 man-hours to get it Done (remember the definition of done?) and the story B will take 54 hours.
This works well even if we choose 3 or 5 point stories as the base level and if we do that, then it will be easier to break them down into smaller stories later during the development phase. Beware however the stories of 20, 40 or 100 points. This kind of estimation suggests that we know nothing about what is to be implemented, so it should be discussed with the client here and now in a little more detail instead of just happily putting it in the contract.
The result of the estimation is a total number of story points describing the initial scope for a product to be built. This is the number that should be fixed in terms of scope for the contract, not the particular stories themselves.
Deriving the Price and Time
Total number of points estimated based on the initial set of stories does not give us the price and time directly. To translate story points into commercial monetory numbers we need to know more about the development team’s makeup described in the number of differently skilled resources within a team, and the team’s ability to delivery work which is expresessed in an agile KPI referred to as the Team Capacity and/or Velocity.
The team’s velocity refers to the pace, expressed in story points per development cycle or sprint, at which a team can deliver work. The team’s capacity is defined by the average number of story points the team can deliver within a development cycle or sprint. An increase in the velocity, as a result of increased efficiency and higher productivity, will over time increase the teams capacity. Understandably, changing the makeup of the team will impact the team’s velocity/capacity. The team’s capacity and velocity is established through experience on previous projects the team delivered. A mature agile team is characterised by a stable and predictable velocity/capacity.
Let’s use a simple example to demonstrate how the team makeup and velocity are used to determine the project cost and time.
Assume we have:
Estimated our stories for a total of 300 story points.
The team makeup consists of 5 resources – 3 developers, 1 tester and a team leader.
Agile Scrum will be team’s delivery methodology.
Experience has shown this teams capacity / velocity is 30 story points over development cycle or sprint length of 2 weeks.
Determine the predicted Timeline
Time = <Points> / <Velocity> * <Sprint length>
Thus…
Time = 300 / 30 * 2 = 20 weeks (or 10 sprints)
Many factors during the project may affect the velocity, however if the team we’re working with is not new, and the project we’re doing is not a great unknown for us, then this number might be actually given based on some evidence and observations of the past.
Now we may be facing one of the two constraints that the client could want to impose on us in the contract:
The client wants the software as fast as we can do it (and preferably even faster)
The client wants as much as we can do by the date X (which is our business deadline)
If the calculated time is not acceptable then the only factor we can change is the team’s velocity. To do that we need to change the teams makeup and extend the team, however this is not working in a linear way i.e. doubling the team size will nor necessarily double its velocity but it should increase the velocity as the team should be able to do more work within a development cycle.
Determine the predicted Price
Calculating the price is based on the makeup of the team and the assocaited resource/skill set rate card (cost per hour).
The teams cost per sprint is calculated by the % of time or number of hours each reasurce will spend on the project within a sprint.
For our eaxmple, let assume:
A Sprint duration of 2 weeks has 10 working days and working 8 hours per day = 80h per sprint.
Developer 1 will work 100% on the project at a rate of £100 per hour.
Developer 2 will work 50% of his time on the project at a rate of £80 per hour.
Developer 3 will also work 100% on the project at a rate of £110 per hour.
The Team Leader will work 100% on the project at a rate of £150 per hour.
The Tester will be 100% on the project at £80 per hour.
The team cost per sprint (cps) will thus be…
Resource cost per sprint (cps) = <hours of resource per sprint> * <resource rate per hour>
Developer 1 cps = 80h * £100 = £8,000
Developer 2 cps = 40h (50% of 80h) * £80 = £3,200
Developer 3 cps = 80h * £110 = £8,800
Team Leader cps = 80h * £150 = £12,000
Tester cps = 80h * £80 = £6,400
Total team cost per sprint = (sum of the above) = £38,400 per sprint
Project predicted Price = <Number of sprints (from Predicted Timeline calculation)> * <Team cost per sprint>
These simplistic calculations are of course just a part of the cost that will eventually get into the contract, but they are also the part that usually is the hardest to define. The way in which these cost are calculated also shows how delivering agile projects can be transferred into the contract negotiations environment.
Negotiating on Price
“So why is it so expensive?”, most customers ask.
This is where negotiations actually start.
The only factor a software company is able to change is its man-hour cost rate. It is the rate card that we are negotiating. Not the length of our iteration, not even the number of iterations. Developers, beyond popular believe, has no superhero powers and will not start working twice as fast just because it is negotiated this way. If we say we can be cheaper it is because we will earn less not because we will work faster.
The other factor that can influence the price is controlled by the customer – the scope.
Tracking Progress and Budget
Now that we have our contract signed, it is time to actually build the software within the agreed constraints of time and budget.
Delivering your fixed price project in an agile way is not a magic wand that will make all your problems disappear but it if measured correctly it will give you early visisbility. That is where the project metrics and more specific the burndown graphs come in to play. Early visibility provides you with the luxury of early corrective action ensuuring small problems do not turn into large expesive one’s.
One such a small mistake might be the team velocity used when the project price was calculated. Burndown charts are a very common way of tracking progress in many agile projects. It shows the predicted/forecasted completion of work rate (velocity) against the actual velocity to determine if the project is on track.
Figure 1 – Planned scope burndown vs. real progress.
They are good to visualize planned progress versus the reality. For example the burndown chart from Figure 1 looks quite good:
We are a little above the planned trend but it does not mean that we made a huge mistake when determining our velocity during the contract negotiations. Probably many teams would like their own chart to look like this. But the problem is that this chart shows only two out of three contract factors – scope ( presented as a percentage of story points) and time (sprints). So what about money?
Figure 2 – Scope burndown vs budget burndown.
The chart on Figure 2 shows two burndowns – scope and budget. Those two trends are expressed here as percentages for the purpose. There is no other way to compare those two quantities calculated (one in story points and the other in man-hours or money spent).
To track the scope and budget this way we need to:
Track the story points completed (done) in each iteration.
Track the real time spent (in man-hours) in each iteration.
Recalculate the total points in your project into 100% of our scope and draw a burndown based on percentage of the total scope.
Recalculate the budget fixed in the contract (or its part) into a total available man-hours – this is our 100% of a budget – and draw a budget burndown based on percentage of the total budget usedto date.
The second chart does not look promising. We are spending more money to stay on track than we expected. This is probably because of using some extra resources to actually achieve the expected team’s velocity. So having all three factors on one chart makes problems visible and iteration (sprint) 4 in this example is where we start to talk with the client and agree on mitigating actions, before it is too late.
Embracing Change
Agile embraces change, and what we want to do is to streamline change management within the fixed price contract. This has always been the hard part and it still is, but with a little help through changing the focus from the requirements analysis into some boundary limits early in the process, we want to welcome change at any stage of the project.
Remember earlier in the process changed fixed scope into fixed budget. The 300 story points from the example allows us to exchange the contents of the initial user story list without changing the number of story points. This is one of the most important aspects that we want to achieve with a fixed price contract done the agile way.
The difficulty here is to convince the client that stories can be exchanged because they should be comparable in the terms of effort required to complete them. So if at any point client has a new great idea that we can express as some new set of stories (worth for example 20 points) then it is again up to the client if we are going to remove stories worth 20 points from the end of our initial backlog to make a place for the new ones.
Or maybe the client wants to add another iteration (remember the velocity of 30 points per iteration?). It is quite easy to calculate the price of introducing those new stories, as we have already calculated the cost of a sprint.
What still is the most difficult in this kind of contracts is when we find out during the project that some stories will take longer than expected because they were estimated as epics and now we know more about them than we did at the beginning. But still this might not always be the case, because at the same time some stories will actually take less. So again tracking during the contract execution will provide valuable information. Talking about the problems earlier helps negotiating as we can talk about actions that need to be taken to prevent them instead of talking about the rescue plans after the huge and irreversible disaster.
Earning Mutual Trust
All the techniques discussed, require one thing to be actually used succesfully with a fixed price contract and that is – trust. But as we know, trust is not earned by describing but by actually doing. Use the Agile principles to demonstrate the doing, to show the progress and point out the problems early.
With every iteration we want to build value for the client. But what is more important, we focus on delivering the most valuable features first. So, the best way to build the trust of a client might be to divide the contract.
Start small, with some pilot development of 2 or 3 iterations (which will also be fixed price, but shorter). The software delivered must bring an expected value to the client. In fact it must contain some working parts of the key functionalities. The working software proves that you can build the rest. It also gives you the opportunity to verify the first assumptions about the velocity and eventually renegotiate the next part.
The time spent on the pilot development, should also be relatively small when compared to the scope left to be done. This way if our clients are not satisfied with the results, they can go away before it is too late and they no longer need to continue the contract and eventually fail the project.
Summary
Fixed price contracts are often considered very harmful and many agile adopters say that we should simply avoid them. But most of the time and as long as customers request them, they cannot be avoided, so we need to find ways to make them work for the goal, which is building quality software that can demonstrably increase business value propositions and competitive advantage.
I believe that some aspects of a fixed price agile contract are even good and healthy for agile teams, as it touches on the familiar while instilling commercial awareness. Development teams are used to working with delivery targets and business deadlines. That is exactly what the fixed date and price in the contract are – healthy time boxes and boundaries keeping us commercially aware and relevant.
Keep the focus on scope and you can still deliver your agile project within a fixed time and budget.
The intention of this article was not to suggest that agile is some ultimate remedy for solving the problem of fixed price contracts but to show that there are ways to work in this context the agile way.
“Delivery focussed”, “Getting the job done”, “Results driven”, “The proof is in the pudding” – we are all familiar with these phrases and in Information Technology it means getting the solutions into operations through effective Release Management, quickly.
In the increasingly competitive market, where digital is enabling rapid change, time to market is king. Translated into IT terms – you must get your solution into production before the competition does, through an effective ability to do frequent releases. Doing frequent releases benefit teams as features can be validated earlier and bugs detected and resolved rapidly. The smaller iteration cycles provide flexibility, making adjustments to unforeseen scope changes easier and reducing the overall risk of change while rapidly enhancing stability and reliability in the production environment.
IT teams with well governed agile and robust release management practices have a significant competitive advantage. This advantage materialises through self-managed teams consisting of highly skilled technologist who collaborative work according to a team defined release management process enabled by continuous integration and continuous delivery (CICD), that continuously improves through constructive feedback loops and corrective actions.
The process of implementing such agile practices, can be challenging as building software becomes increasingly more complex due to factors such as technical debt, increasing legacy code, resource movements, globally distributed development teams, and the increasing number of platforms to be supported.
To realise this advantage, an organisation must first optimise its release management process and identify the most appropriate platform and release management tools.
Here are three well known trends that every technology team can use to optimise delivery:
1. Agile delivery practises – with automation at the core
So, you have adopted an agile delivery methodology and you’re having daily scrum meetings – but you know that is not enough. Sprint planning as well as review and retrospection are all essential elements for a successful release, but in order to gain substantial and meaningful deliverables within the time constraints of agile iterations, you need to invest in automation.
An automation ability brings measurable benefits to the delivery team as it reduces the pressure on people in minimising human error and increasing overall productivity and delivery quality into your production environment that shows in key metrics like team velocity. Another benefit automation introduces is consistent and repeatable process, enabling easily scalable teams while reducing errors and release times. Agile delivery practices (see “Executive Summary of 4 commonly used Agile Methodologies“) all embrace and promote the use of automation across the delivery lifecycle, especially in build, test and deployment automation. Proper automation support delivery teams in reducing overhead of time-consuming repetitive tasks in configuration and testing so them can focus on the core of customer centric product/service development with quality build in. Also read “How to Innovate to stay Relevant“; “Agile Software Development – What Business Executives need to know” for further insight in Agile methodologies…
Example:
Code Repository (version Control) –> Automated Integration –> Automated Deployment of changes to Test Environments –> Platform & Environment Changes automated build into Testbed –> Automated Build Acceptance Tests –> Automated Release
When a software developer commits changes to the version control, these changes automatically get integrated with the rest of the modules. Integrated assembles are then automatically deployed to a test environment – changes to the platform or the environment, gets automatically built and deployed on the test bed. Next, build acceptance tests are automatically kicked off, which would include capacity tests, performance, and reliability tests. Developers and/or leads are notified only when something fails. Therefore, the focus remains on core development and not just on other overhead activities. Of course, there will be some manual check points that the release management team will have to pass in order to trigger next the phase, but each activity within this deployment pipeline can be more or less automated. As your software passes all quality checkpoints, product version releases are automatically pushed to the release repository from which new versions can be pulled automatically by systems or downloaded by customers.
Test Automation: Silk Test, EggPlant, Test Complete, Coded UI, Selenium, Postman
Continuous Deployment: Jenkins, Bamboo, Prism, Microsoft DevOps
2. Cloud platforms and Virtualisation as development and test environments
Today, most software products are built to support multiple platforms, be it operating systems, application servers, databases, or Internet browsers. Software development teams need to test their products in all of these environments in-house prior to releasing them to the market.
This presents the challenge of creating all of these environments as well as maintaining them. These challenges increase in complexity as development and test teams become more geographically distributed. In these circumstances, the use of cloud platforms and virtualisation helps, especially as these platforms have recently been widely adopted in all industries.
Automation on cloud and virtualised platforms enables delivery teams to rapidly spin up/down environments optimising infrastructure utilisation aligned with demand while, similar to maintaining code and configuration version history for our products, also maintain the version history of all supported platforms. Automated cloud platforms and virtualisation introduces flexibility that optimises infrastructure utilisation and the delivery footprint as demand changes – bringing savings across the overall delivery life-cycle.
Example:
When a build and release engineer changes configurations for the target platform – the operating system, database, or application server settings – the whole platform can be built and a snapshot of it created and deployed to the relevant target platforms.
Virtualisation: The virtual machine (VM) is automatically provisioned from the snapshot of base operating system VM, appropriate configurations are deployed and the rest of the platform and application components are automatically deployed.
Cloud: Using a solution provider like Azure or AWS to deliver Infrastructure-as-a-Service (IaaS) and Platform as a Service (PaaS), new configurations can be introduced in a new environment instance, instantiated, and configured as an environment for development, testing, staging or production hosting. This is crucial for flexibility and productivity, as it takes minutes instead of weeks to adapt to configuration changes. With automation, the process becomes repeatable, quick, and streamlines communication across different teams within the Tech-hub.
3. Distributed version control systems
Distributed version control systems (DVCS), for example GIT, Perforce or Mercurial, introduces flexibility for teams to collaborate at the code level. The fundamental design principle behind DVCS is that each user keeps a self-contained repository with complete version history on one’s local computer. There is no need for a privileged master repository, although most teams designate one as a best practice. DVCS allow developers to work offline and commit changes locally.
As developers complete their changes for an assigned story or feature set, they push their changes to the central repository as a release candidate. DVCS offers a fundamentally new way to collaborate, as developers can commit their changes frequently without disrupting the main codebase or trunk. This becomes useful when teams are exploring new ideas or experimenting as well as enabling rapid team scalability with reduced disruption.
DVCS is a powerful enabler for the team that utilise an agile-feature-based branching strategy. This encourages development teams to continue to work on their features (branches) as they get ready, having fully tested their changes locally, to load them into next release cycle. In this scenario, developers are able to work on and merge their feature branches to a local copy of the repository.After standard reviews and quality checks will the changes then be merged into the main repository.
To conclude
Adopting these three major trends in the delivery life-cycle enables a organisation to imbed proper release management as a strategic competitive advantage. Implementing these best practices will obviously require strategic planning and an investment of time in the early phases of your project or team maturity journey – this will reduce the organisational and change management efforts to get to market quicker.
One of life’s real pleasures, is riding a motorcycle. The sense of freedom when it is just you, machine and the open road is something only sharing enthusiast would truly understand. Inspired, I recently completed a hobby project building the Lego Set 42063. The building blocks of this Technic model constructs the BMW R1200GS Adventure motorcycle, arguably the best allrounder, adapted to handle all road conditions. The same building blocks can also be used to build a futuristic flying scooter, or shall I call it a speedster in true Star Wars style… While building the model I was marvelled by the ingeniousness of the design and how the different components come together in a final product – fit for purpose today but easily adapted to be fit for future.
This made me think about business agility – how can this modular approach be used within business. We know that SOA (Service Oriented Architecture) takes a modular approach in building adaptable software application and in the talk on “Structure Technology for Success – using SOA” I explained a modular approached to design a Service Orientated Organisation (SOO), to directly contribute to the business success.
Recently I’ve also written about how to construct a business Operating Models that delivers. Such an operating model aligns the business operations with the needs of it’s customers, while it provides the agility to continuously adapt to changes in this fast changing technological ecosystem we live in. An Operating Model that delivers, fit for purpose today but easy adaptable to be fit for the future, in other words – a Modular Operating Model.
As the environment for a company changes rapidly, static operating models lack the agility to respond. Successful companies are customer centric and embrace continuous innovation to enhance the ability of the organisation to re-design it’s operations. This requires an Operating Model that incorporates the agility to be responsive to changes in business strategy and customer needs. A modular operating model enables agility in business operations with a design that can respond to change by defining standard building blocks and how to dynamically combine them. Modular blocks (with the specific operational complexity contained) simplifies managing complexity. This reduces the time to produce a new operational outcome, irrespective of this being a new services, product or just an efficiency improvement within an existing value chain.
An example of applying modular thinking to a operational delivery methodology is covered in the blog post: “How to Innovate to stay Relevant”. In combining the core principles and benefits of three different delivery methodologies, Design Thinking, Lean Startup and Agile Scrum as modular building blocks, a delivery methodology are constructed that ensures rapid delivery of innovation into customer centric revenue channels while optimising the chances of success through continuous alignment with customer and market demand.
A modular operating model imbeds operational agility through the ability to use, re-use, plug and play different capabilities, processes and resources (building blocks) to easily produce new business outcomes without having to deal with the complexities which are already defined within the individual building blocks – just like a Lego set using the same set of standardised and pre-defined blocks to build completely different things. The focus is on re-using the blocks and not on the design of the blocks itself. Off course a lot of thinking has gone into the design of the different building blocks, but through re-using the same block designs, the model design time is focussed on a new/different outcome and not on a component of an outcome.
Designing modular capabilities, processes and resources that are used to design operating models have benefits not just in efficiencies and savings through economies of scale, but also in the reduction of time to market. These benefits are easier to accomplish in larger multi-divisional organisation with multiple operating models or organisations with complex operating models bringing together multiple organisations and different locations, where the re-use of modular operating model blocks bring demonstrable efficiencies – but is also possible for smaller organisations and start-ups.
If you want a Operating Model that Delivers and are agile to adapt to the challenges introduced by new technologies and digital business models – ensure the Target Operating Model (TOM) design methodology focusses on modular thinking from the offset and through the design process.
renierbotha Ltd has a demonstrable track record of compiling and delivering visionary Target Operating Models.
Talk to us – we can help you with the Digital Transformation to align your business operations and business model to the modern customers expectations.
Every organisation that I have worked with around the world, whether it is in London, Johannesburg, Sydney, Singapore, Dallas, Kuala Lumpir, Las-Vegas, Nairobi or New York, there was always reference to a Target Operating Model (TOM) when business leaders spoke about business strategy and performance. Yes, the TOM – the ever eluding state of euphoria when all business operations work together in harmony to deliver the business vision…sometime in the near foreseen future.
Most business transformation programmes are focussed to deliver a target operating model – transforming the business by introducing a new way of working that better aligns the business offering with it’s customer’s changing expectation. Millions in business change budgets have been invested in TOM design projects and 1000s of people have worked in these TOM projects of which some have delivered against the promise.
With the TOM as the defined deliverable, the targeted operational state and the outcome of the business transformation programme, it is very important that the designed TOM are actually fit for purpose. The TOM also has to lend itself to be easily adjustable in order to contribute to the agility of an organisation. The way the business is operating must be able to adapt to an ever changing technology driven world and the associated workforce. The quick evolving digital world is probably the main catalyst for transformation in organisations today – read “The Digital Transformation Necessity” for further insights…
Operating Model (OM)
The Operating Model uses key inputs from the Business Model and Strategy.
The Business Model focuses on the business’ customers, the associated product and service offerings – how the organisation creates value for it’s cliental – and the commercial proposition. Within the business model the business’s revenue streams and how those are contributing to the business value chain to generate profits, are decried. In other words, the Business Model envisages the What within the organisation.
Within the Business Strategy the plan to achieve specific goals are defined, as well as the metrics required to measure how successfully these are achieved. The business goals are achieved through the daily actions as defined within the Operating Model.
Typically an Operating Model takes the What from the Business Model in conjunction with the business strategy, and defines the Why, What, How, Who and With. It is the way in which the business model and strategy is executed by conducting the day to day business operations. Execution is key as no business can be successful by just having a business strategy, the execution of the operating model delivering the business strategy is the operative ingredient of success.
In order to document and describe how an organisation functions, the Operating model usually includes business capabilities and associated processes, the products and/or services being delivered, the roles and responsibilities of people within the business and how these are organised and governed within the business, the metrics defined to manage, monitor and control the performance of the organisation and then the underpinning Technology, Information Systems and Tools the business uses in delivering it’s services and/or products.
Analogy: A good analogy to describe the Operating Model is to compare it to the engine of F1 car. In 2016 the Mercedes Silver Arrow (the fastest car, driven by Lewis Hamilton (arguably the fastest driver), did not win because of engine and reliability problems. Instead the World Championship was won by Nico Rosberg, who had a better performing engine over the whole season. Nico benefited from a better operating model – he had the processes, data, systems and the people (including himself) to win. The mechanical failures that Lewis suffered, mostly not through fault of his own, were a result of failures somewhere within his operating model.
Target Operating Model (TOM)
The Target Operating Model (TOM) is a future state version of the Operating Model. To derive the TOM, the existing Operating Model is compared with the desired future state keeping the key aspects of an operating model in mind: Why, What, How, Where, Who and With. The TOM also cover two additional key aspects: the When & Where defined within the transformation programme to evolve from current to future states.
The difference between the “as is” Operating Model and the “to be” Target Operating Model, indicates the gap that the business must bridge in the execution of its Transformation Model/Strategy – the When and Where. To achieve the Target Operating Model usually require large transformation effort, executed as change & transformation programmes and projects.
ToBe (TOM) – AsIs (OM) = Transformation Model (TM)
Why >> Business Vision & Mission
What >> Business Model (Revenue channels through Products and Services – the Value Chain)
How >> Business Values & Processes & Metrics
Who >> Roles & Responsibilities (RACI)
With >> Tools, Technology and Information
Where & When >> Transformation Model/Strategy
Defining the TOM
A methodology to compile the Target Operating Model (TOM) is summarised by the three steps shown in the diagram below:
Information gathered through interviews, meetings, workshops…
Methodology produces TOM Outputs:
Business capabilities and associated processes
Clearly defined and monetised catalogue of the products and/or services being delivered
Organisation structure indicating roles and responsibilities of people within the business and how these are organised and governed
Metrics specifically defined to manage, monitor and control the performance of the organisation
Underpinning Technology, Information Systems and Tools the business uses in delivering it’s services and/or products
The outputs from this methodology covers each key aspect needed for a TOM that will deliver on the desired business outcomes. Understanding these desired outcomes and the associated goals and milestones to achieve them, is hence a fundamental prerequisite in compiling a TOM.
To Conclude
An achievable Target Operating Model, that delivers, is dependant on the execution of an overall business transformation strategy that aligns the business’ vision, mission and strategy with a future desired state in which the business should function.
Part of the TOM is this Business Transformation Model that outlines the transformation programme plan, which functionally syncs the current with the future operating states. It also outlines the execution phases required to deliver the desired outcomes, in the right place at the right time, while having the agility to continuously adapt to changes.
Only if an organisation has a strategically aligned and agile Target Operating Model in place that can achieve this, is the business in a position to successfully navigate its journey to the benefits and value growth it desires.
renierbotha Ltd has a demonstrable track record of compiling and delivering visionary Target Operating Models.
If you know that your business has to transform to stay relevant – Get in touch!
Originally written by Renier Botha in 2016 when, as Managing Director, he was pivotal in delivering the TOM for Systems Powering Healthcare Ltd.
Staying relevant! The biggest challenge we all face – staying relevant within our market. Relevance to your customers is what keeps you in business.
With the world changing as rapidly as it does today, mainly due to the profound influence of technology on our lives, the expectations of the consumer is changing at pace. They have access to an increasing array of choice, not just in how they spend their money but also in how they are communicating and interacting – change fueled by a digital revolution. The last thing that anyone can afford, in this fast paced race, is losing relevance – that will cost us customers or worse…
Is what you are selling today, adaptable to the continuous changing ecosystems? Does your strategy reflect that agility? How can you ensure that your business stays relevant in the digital age? We have all heard about digital transformation as a necessity, but even then, how can you ensure that you are evolving as fast as your customers and stay relevant within your market?
Business, who has a culture of continuous evolvement, aligning their products and services with the digital driven customer, is the business that stays relevant. This is the kind of business that does not require a digital transformation to realign with customer’s demand to secure their future. A customer centric focus and a culture of continuous evolution within the business, throughout the business value chain, is what assure relevance. Looking at these businesses, their ability/agility to get innovation into production, rapidly, is a core success criterion.
Not having a strategy to stay relevant is a very high and real risk to business. Traditionally we deal with risk by asking “Why?”. For continuous improvement/evolution and agility, we should instead be asking “Why not?” and by that, introduce opportunities for pilots, prototypes, experimentation and proof of concepts. Use your people as an incubator for innovation.
Sure, you have a R&D team and you are continuously finding new ways to deliver your value proposition – but getting your innovative ideas into production is cumbersome, just to discover that it is already aged and possibly absolute in a year a two. R&D is expensive and time consuming and there are no guarantees that your effort will result in a working product or desired service. Just because you have the ability to build something, does not mean that you have to build something. Focusing the scares and expensive resources on the right initiatives makes sense, right! This is why many firms are shifting from a project-minded (short term) approach to a longer-term product-minded investment and management approach.
So, how do you remain customer centric, use your staff as incubators of innovation, select the ideas that will improve your market relevance and then rapidly develop those ideas into revenue earners while shifting to a product-minded investment approach?
You could combine Design Thinking with Lean Startup and Agile Delivery…
In 2016, I was attending the Gartner Symposium where Gartner brought these concepts together very well in this illustration:
Instead of selecting and religiously follow one specific delivery methodology, use the best of multiple worlds to get the optimum output through the innovation lifecycle.
Using Design Thinking (Empathise >> Define >> Ideate >> Prototype) puts the customer at the core of customer centric innovation and product/service development. Starting by empathising with the customers and defining their most pressing issues and problems, before coming up with a variety of ideas to potentially solve the problems. Each idea is considered before developing a prototype. This dramatically reduces the risk of innovation initiatives, by engaging with what people (the customer) really need and want before actually investing further in development.
Lean Startup focuses on getting a product market fit, by moving a Prototype or MVP (minimum viable product) through a cycle of Build >> Measure >> Learn. This ensures a thorough knowledge of the user of the product/service is gained through an active and measureable engagement with the customer. Customer experience and feedback is captured and used to learn and adapt resulting in an improved MVP, better aligned to the target market, after every cycle.
Finally Agile Scrum, continuing the customer centric theme, involves multiple stakeholders, especially users (customers), in every step in maturing the MVP to a product they will be happy to use. This engagement enhances transparency, which in turn grow the trust between the business (Development Team) and the customer (user) who are vested in the product’s/service’s success. Through an iterative approach, new features and changes can be delivered in an accurate and predictable timeline quickly and according to stakeholder’s priorities. This continuous product/service evolvement, with full stakeholder engagement, builds brand loyalty and ensures market relevance.
Looking at a typical innovation lifecycle you could identify three distinct stages: Idea, Prototype/MVP (Minimal Viable Product) and Product. Each of these innovation stages are complimented by some key value, gained from one of the three delivery methodologies:
All of these methodologies, engage the stakeholders (especially the customer & user) in continuous feedback loops, measuring progress and capturing feedback to adapt and continuously improve, so maximum value creation is achieved.
No one wants to spend a lot of resource and time delivering something that adds little value and create no impact. Using this innovation methodology and associated tools, you will be building better products and service, in the eye of the user – and that’s what matters. You’ll be actively building and unlocking the potential of you’re A-team, to be involved in creating impact and value while cultivating a culture of continuous improvement.
The same methodology works very well for digital transformation programmes.
At the very least, you should be experimenting with these delivery approaches to find the sweat spot methodology for you.
Experiment to stay relevant!
Let’s Talk – renierbotha.com – Are you looking to develop an innovation strategy to be more agile and stay relevant? Do you want to achieve your goals faster? Create better business value? Build strategies to improve growth?
The continuous push towards business improvement combined with the digital revolution, that has changed the way the customer is engaging with business through the use of technology, have introduced the need for an agility in the delivery of IT services. This speed and agility in IT delivery, for the business to keep abreast of a fast evolving and innovative technology landscape and to gain an competitive advantage are not just required in the development and/or introduction of new technology into the business, but in the way “keep the lights on” IT operations are reliably delivered through stable platforms and processes enabling business growth as well.
IT Bimodal
We can agree that once systems and solutions are adopted and integrated into business operations, the business requirement for IT delivery changes with IT stability, reliability, availability and quality as key enablers to business performance optimisation. There are thus two very distinct and equally important ways or modes of delivering IT services that should seamlessly combine into the overall IT Service Operations contributing to business growth.
Gartner minted in 2016 the concept of IT Bimodal – the practise to manage two separate coherent modes of IT delivery.
Mode 1: Focussed on Stability
Mode 2: Focussed on Agility
Traditional
Exploratory
Sequential
Non-linear
Emphasis on: Safety & Accuracy
Emphasis on: Agility and Speed
Each of the delivery modes has their own set of benefits and flaws depending on the business context – ultimately the best of both worlds must be adapted as the new way in which technology delivers into business value. Businesses require agility in change without compromising the stability of operations. Change to this new way and associated new Target Operating Model (TOM) is required.
Bimodal Organisation
This transformation is not just applicable to IT but the entire organisation. IT and “the business” are the two parts of the modern digital business. “The Business” needs to adapt and change their work style (operating model) towards digital as well. This transformation by both IT and “the business”, branded by Gartner as Bimodal, is the transformation towards a new business operating model (a new way of working) embracing a common goal of strategic alignment. Full integration of IT and business are the core of a successful digital organisation competing in the digital era.
The introduction of Agile development methodologies and DevOps, led to a transformation in how technology is being delivered into business operations. IT Service Management (ITSM) and the ITIL framework have matured the operational delivery of IT services, as a business (#ITaaBusiness) or within a business while Lean Six Sigma enables business process optimisation to ultimate quality delivery excellence. But these new “agile” ways of working, today mainly applied within IT, is not enough for the full bimodal transformation. Other aspects involving the overall organisation such as business governance and strategy, management structures and organisational architecture, people (Human Capital Management – HCM), skills, competencies, culture, change management, leadership and performance management as well as the formal management of business and technology innovation and integration, form additional service areas that have to be established or transformed.
How do organisations go about defining this new Bimodal TOM? – In come Bimodal Enablement Consulting Services in short BECS.
BECS – Bimodal Enablement Consulting Services
Gartner’s definition: “An emerging market that leverages a composite set of business and technology consulting services and IP assets to achieve faster more reliable and secure, as well as business aligned, solutions in support of strategic business initiatives.”
To establish a Bimodal enabled TOM, organisations need to architect/design the organisation to be customer centric, focussing on the value adding service delivered to the client/customer – a Service Oriented Organisation (SOO) designed using a Service Oriented Architecture (SOA). This set of customer services (external facing) should relay back to a comprehensive and integrated set of supporting and enabling business services (internal facing) that can quickly and effectively enable the business to innovate and rapidly adapt and deliver to changing customer needs and the use of technology within the digital era. This journey of change, that businesses needs to undergo, is exactly what digital transformation is about – not just focused on the technology, processes, quality and customer service, but on the business holistically, starting with the people working within the business and how they add value through the development and use of the right skills and tools, learning an applying it rapidly throughout the business value chain.
A customer centric delivery approach requires the development and adoption of new ways in which work are conducted – new management structures, building and enhancing A-teams (high performing individuals and teams, getting the job done), optimised processes and the right tool sets.
BECS must address the top bimodal drivers or goals, as identified by Gartner research:
Are you ready, aligned and actively engaging in the digital world?
Can you accelerate change and enable revenue growth with rock-solid service and business operations?
Are you actively practicing bimodal, continuously adapting to the changing digitally empowered customer demand?
The ultimate test to determine if you are bimodal: Every business process and every enterprise system needs to work without a blip, even as more innovation and disruptors are introduced to make the business more efficient and responsive.
It is time to be a bimodal organisation!
___________Renier Botha specialises in helping organisation to optimise their ability to better integrate technology and change into their main revenue channels – make contact today.
Directly related to business performance is the ability to change the business processes for greater efficiency and productivity while terms like specialisation, standardisation comes to mind followed by measurement, data analysis, statistical analysis, root cause analysis and finally process control and quality control.
Remember the saying by Peter Drucker: “What gets measured, gets improved”…
Improvement initiatives bring change.
A brief history of organisational change
Change management has evolved from Organisational Development OD – focused on helping people to manage change and to stay alive post the world war in the 1940S. That lead to Change Management thinking in the 70s and 80s and in parallel project management as another management process, was developed. These processes saw change as linear and hence can it be managed tightly. It starts with a burning platform and a vision to resolve the problem followed by the change journey of solving problems and overcoming obstacles. In the late 80s Appreciative Inquiry emerged changing the focus of change to “best that can be” and driving “what should be” rather than “what is wrong” and driving the “fix it”. The 1990s and 2000s brought more collaborative models and tools to manage change and solve problems and performance coaching got commonly accepted and used.
The drive to improve business performance gave life to various methodologies and frameworks for example:
Toyota Production System (TPS), the origins of Lean Thinking, included the prominent problem solving tools through the “five why’s”, continuous improvement, “Just in Time” production and the elimination of waste.
Business Process Re-engineering (BPR) which encouraged the outsourcing and off-shoring of work deemed to be non essential or too costly to perform.
Balance Scorecard which aims to provide a well-balanced view of the health of an organization through key performance metrics representing the financial, operational, human and environmental aspects of the business performance.
Quality Control frameworks, methodologies and standards: ISO9001, Six Sigma
Information Technology Service Management (ITSM) frameworks: ITIL
Six Sigma
Six Sigma is a quality improvement approach that seeks to improve the quality of process outputs by identifying and removing the causes of defects and minimizing variability in the delivery processes. This is done through a set of quality tools management tools and statistics.
Another definition – the ability of processes to deliver a very high percentage of the output within a defined specification derived from customer specifications. A key KPI is the defect % and the process to reduce that to be within specification of tolerance – where a defect is defined as any process output that does deliver to customer requirements.
Running a process at Six Sigma quality is defined as defect levels below 3.4 defects per 1M cycles of the process!
Six Sigma principles:
Continuous efforts to achieve stable and predictable process outputs are vital for business success.
Operational business processes can be measured, analysed, improved and controlled.
Achieving sustained quality improvement requires commitment from the entire organization, particularly from the top management.
Each Six Sigma project has a five step sequence (DMAIC):
Problem solving approach:
D – Defining
M – Measuring
A – Analysing
I – Improving
C – Controlling
Defining the problem, and setting a project goal.
Measuring current process performance and collecting relevant data potential root causes.
Analysing the data to investigate and verify cause-and-effect relationships. Determine what the relationships are attempt to ensure that all factors have been considered. The analysis should reveal a root cause of the defect under investigation.
Improving and optimizing the current process by introducing changes that reduce or solve the impact of the identified root cause.
Controlling/Monitoring the newly changed process to ensure no deviation from the expected results occur and that the new process is stable.
LEAN Thinking
You are lean when all you resources are used to deliver value to the end customer – nothing else. This value has to flow through the value chain without any interruptions. All activities not directly supporting in the creation and delivery of this value is considered as waste and therefore reviewed for potential elimination.
Another definition: Lean is focused on getting the rights things to the right place at the right time in the right quantity while achieving a perfect workflow that is dictated by the customers demand to deliver the goods just in time.
LEAN – Five Principles:
Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
Pursue perfection – all the steps link together as waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.
LEAN Tools:
Five S (5S): A process of keeping the workplace ready for use exercising a discipline of 5 workplace practices beginning with S.
Sort
Set in order
Shine
Standardise
Sustain
5S optimally prepare the workplace to perform optimum tasks in the future including the idea of visual management.
Seven Wastes: Waste is any activity that consumes resources but do not not creates value for the customer. The purpose of seven wastes is to identify and eliminate waste in processes hence delivery greater customer value. 7 Catagories of Waste: Defects, Overproduction, Unnecessary transportation, Waiting, Inventory, Unnecessary Motion, Over-processing
Takt Time: The average rate at which a deliverable item is required to meet the customer demand. It is used to create the balance in the process between supply and demand and to help calculate the resources required to efficiently process a process just in time.
SMED
Kaizen
Value-Stream Mapping
Underlining the success of Lean is a culture of respect of people – at all levels. As Lean is a whole-system management methodology that requires a overall culture change to be successful – starting at the top.
Lean Six Sigma
General Electric (GE) adopted Six Sigma in the 1980’s – combining that with the principals adopted by the Toyota Production System (TPS), the origins of Lean Thinking provide the methodology of LEAN SIX SIGMA.
It is a complementary combination between the best of both worlds – Lean Thinking, which is focused on process flow and waste elimination and Six Sigma, which is focused on process variation and defects – driving business operational excellence.
Other relevant posts: Executive Overview of Agile #1 and #2
Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!
AGILE – What business executives need to know #2: Overview of 4 most commonly used Agile Methodologies
In the first article in this series we focussed on an overview of what Agile software development is and referred to the Agile SCRUM methodology to describe the agile principles.
Let’s recap – Wikipedia describes Agile Software Development as an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross functional teams and their customers / end users. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. For an overview see the first blog post…
Several agile delivery methodologies are in use for example: Adaptive Software Development (ASD); Agile Nodelling; Agile Unified Process (AUP); Disciplined Agile Delivery; Dynamic Systems Development Method (DSDM); Extreme Programming (XP); Feature-Driven Development (FDD); Lean Software Development (LEAN); Kanban; Rapid Application Development (RAD); Scrum; Scrumban.
This article covers a brief overview of the four most frequently used Agile Methodologies:
Scrum
Extreme Programming (XP)
Lean
Kanban
SCRUM
Using Scrum framework the project work is broken down into user stories (basic building blocks of agile projects – these are functional requirements explained in an in business context) which are collated in the backlog (work to be done). Stories, from the backlog, are grouped into sprints (development iteration) based on story functionality dependencies, priorities and resource capacity. The resource capacity is determined by the speed (velocity) at which the team can complete stories, which are categorised into levels of complexity and effort required to complete. Iterations are completed with fully functional deliverables for each story until all the needed stories are completed for functional solutions.
Scrum is based on three pillars:
Transparency – providing full visibility on the project progress and a clear understanding of project objectives to the project team but more importantly to the stakeholders responsible for the outcome of the project.
Inspection – Frequent and repetitive checks on project progress and milestones as work progresses towards the project goal. The focus of these inspections is to identify problems and differences from the project objectives as well as to identify if the objectives have changed.
Adaptation – Responding to the outcome of the inspections to adapt the project to realign in addressing problems and change in objectives.
Through the SCRUM methodology, four opportunities for Inspection and Adaptation are provided:
Sprint Retrospective
Daily Scrum meeting
Sprint review meeting
Sprint planning meeting
A Scrum team is made of a Product Owner, a Scrum Master and the Development Team.
Scrum activity can be summarised within the following events:
Sprint – a fixed time development iteration
Sprint Planning meetings
Daily Scrum meetings (Stand-Up meetings)
Sprint Review meetings
Sprint Retrospectives
XP – EXTREME PROGRAMMING
Extreme Programming (XP) provides a set of technically rigorous, team-oriented practices such as Test Driven Development, Continuous Integration, and Pairing that empower teams to deliver high quality software, iteratively.
LEAN
Lean grew from out of the Toyota manufacturing Production System (TPS). Some key elements of this methodology are:
Optimise the whole
Eliminate waste
Build quality in
Learn constantly
Deliver fast
Engage everybody
Keep improving
Lean five principles:
Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
Pursue perfection – all the steps link together waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.
KANBAN
Kanban is focussed the visual presentation and management of work on a kanban board to better balance the understanding of the volume of work with the available resources and the delivery workflow.
Six general work practices are exercised in kanban:
Visualisation
Limiting work in Progress (WIP)
Flow management
Making policies explicit
Using feedback loops to ensure customer and quality alignment
Collaborative & experimental evolution of process and solutions
By limiting WIP you are minimising waste through the elimination of multi tasking and context switching.
There is no prescription of the number of steps to follow but it should align with the natural evolution of the changes being made in resolving a problem or completing a specific peace of work.
It focuses on delivering to customer expectations and needs by promoting team collaboration including the customer.
A Pragmatic approach
These techniques together provide a powerful, compelling and effective software development approach that brings the needed flexibility / agility into the software development lifecycle.
Combining and borrowing components from different methodologies to find the optimum delivery method that will deliver to the needs of the organisation is key. Depending on the specific business needs/situation, these components are combined to optimise the design, development and deployment of the software.
Helpful references:
A good overview of different agile methodologies can be found on this slideshare at .
Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!
If one woman can make a baby in 9 months, then 9 women can make a baby in 30 days. Now you may laugh, but this is the most common problem in developing a new product. Throwing more resources at the problem and praying it goes away does not solve anything.
2. Stepping Over A Stack Of $100 Bills To Pick Up A Penny
We can’t spend $10 on an off the shelf tool but we can spend $1,000 to develop our own, which doesn’t work and causes more problems than it solves.
Spending countless hours in useless meetings and then having a meeting to discuss why everything is overbudget and behind schedule.
3. Champagne On A Beer Budget
Expecting everything for free and having It done yesterday. This is a very common occurrence especially when subcontractors are hired.
I want to hire an Engineer with 3 PhD’s, and 30 years of experience for minimum wage
4. The Scalpel Is Only As Good As The Surgeon Who Uses It, Not All Tools Are Created Equally.
A Scalpel is a commodity, the surgeon who uses it to save your life is not.
Not all tools are created equally, choose the right tool for the right job, not just because that tool Is the cheapest and the “sales guy” said it would “work”.
5. You Never Run Out Of Things That Go Wrong
There will always be an endless supply of challenges and things that go wrong. Pretending there aren’t any problems doesn’t make them go away.
6. A Plan Is Just A List Of Stuff That Didn’t Happen & Everything Takes Longer, And Costs More Than You Planned
The battle plan is the first casualty of war, as soon as the first shot is fired the plan goes out the window. Likewise, when the first problem is encountered when developing a new product, the plan and the Gantt Chart go out the window.
7. Good, Fast, Cheap… Pick Any Two
We never have time to do it right, but we always have time to do it over….. and over….. and over…..
I hear time and time again. Just get it done right now, we’ll fix it later. The problem is that later never comes, and the product is only “fixed” after a very expensive product recall. By then it is too late and significant market share has been lost as well as the reputation of the brand. Trying to save a few bucks in product development can cost millions in product recalls.
AGILE Software Development – What business executives need to know
As a business executive how much do you really know about the Agile approach to software development? As the leaders within the company responsible for using technology innovation as an enabler to accelerate the business operations and improve the companies results, do you really understand your role and involvement in the technology development methodology used in your organisation? How can you direct the team if you do not understand the principals of the software development game?
All executives in businesses using an agile approach for software development must understand the basic principals, rules, practices and concepts of “Agile”. With an understanding of the methodology the software development team is following, a better understanding and appreciation of the team and their efforts are reached improving your ability to lead and direct the people involved across the business.
This series of Blog Posts provides an executive summary of the “Agile Software Development Approach” to get your tow in the water.
Agility is expected in modern software development and the customers assume that through appropriate planning, solutions are build with the ability to anticipate changes and to realign over time, as requirements and needs are changing.
Agile comes from the Latin word ‘agere’ which means “to do” – it means the ability to progress and change direction quickly and effectively while remaining in full control.
Software development delivering products and solutions, usually come about through the same phases within the business:
A need – The business has a particular demand and/or requirement and need a new software product or changes and enhancements to existing software solutions to address this demand and deliver value to the client and/or customers.
Funds – Budgets are drawn up and the business secures the availability of funds required to deliver the new project
Project Acceptance – The business stakeholders approves the software development project and it is chartered.
A Plan – Project Planning and Management is the fist but also a continuous key exercise in any project.
Execution – Build it!
Acceptance and Go-Live – The business accepts the software as fit for purpose, addressing the need and it is released into production.
Support – The provision of operational and technical support to keep the new software working after deployment into production.
In addressing this business need, software technology development teams follow a typical cycle – The Software Development Cycle:
Requirements –> Design & Architecture –> Functional Specifications & Use Cases –> Acceptance Criteria –> Technical Specifications –> Code Engineering –> Testing –> Deploy –> User Acceptance –> Production –> Support –> Requirements for a new cycle
In traditional software development, individual specialised groups of Business Analyst, Testers, Architects, Designers, Developers and Network Engineers completing each step by working through the full scope of the project before it is handed over to the next step. A lot of effort is spent in each of the steps and more time is spent in handing over documentation and knowledge from one step to the other until the project is done.
In agile software development, the entire project team, consisting of members from specialised groups, is responsible to complete small increments of working software that deliver value to the business. Collaboration, across the whole company and the end user, client or customer during the development of each increment, ensures the need is met. The full Software Development Lifecycle is followed in the development of each increment, which is concluded with a release of working software into production. Change is the only constant in today’s world, so the project planning is done one increment and release at a time starting with high-level functionality. More incremental releases are completed adding more detail to the functionality until the full project scope has been completed or until the business is satisfied that the need has been addressed.
Agile project management is not meant to replace formal project management methodologies, but to compliment it.
Agile Software Development’s Prime Goal: High value, high quality software, delivered quickly and frequently!
Agile is all about – expecting change through rapid feedback and interaction though-out the project; the ability to adapt and anticipate change events, delivering scalable components that address the stakeholder’s needs; parallel cycles of work delivery with good communication and progress feedback; keeping it simple assuming the lowest cost and simplest solution is the best; demonstrating the progress after each cycle and evaluate improvements to feedback into the next cycle.
Agile Framework
Being agile is all about being flexible and adaptable to continuous change. Agile project management can help to manage change consistently and effectively. It is all about thinking lean and making optimum use of resources as well as looking after the team though continuous interaction, coaching and mentoring to increase the performance.
Inception – Setting the project up for success
During inception all members of the team collaborate and define the outcomes of the project and what success looks like. The team grasps an understanding of the business requirements, meet the stakeholders, and compile a prioritised list of the features and functionality required broken down as “user stories”. The high level solution design and underlining technical architecture are compiled followed by an estimating exercise defining the high-level effort required to deliver the project scope.
Iteration 0 – Preparation that enables the team to be productive from Iteration 1
In this iteration preparations of the team’s workspace, tools and infrastructure are completed.
Execution – The execution consists of a series releases that each consists of a series of time-boxed iterations – also called sprints – where the software increments are planned, built (coded and tested), deployed and demonstrated to the stakeholders.
Closing – Was the business need met by this project delivery? Ensure everyone understands how the new changes introduced by the project will work in operations with appropriate handovers from the project team to the operational teams. The team does a retrospective to discuss the ‘Lessons Learned’ – What has worked well? What caused difficulties? What value and benefits were added? How accurate was the estimates? What should be done differently next time? These answers are an important feedback loop to continuous improvement.
Cycling through the iterations, the focus is on continuous improvement of the functionality, productivity and efficiency to optimize the use of funds and reduce waste. Through this constant cycle of adapting and learning, excellence becomes an reality.
Agile Methodologies: The next post give an executive overview of four of the most commonly used Agile Methodologies.
Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!