"Fail Fast, Fail Often, Fail Forward" is the answer to Agile practices of software success
Last updated: October 21, 2022 Read in fullscreen view
- 27 Oct 2020 8 principles of Agile Testing
- 16 Jun 2022 Rapid Application Development (RAD): Pros and Cons
- 19 Oct 2021 Software development life cycles
- 09 Oct 2022 Key Advantages and Disadvantages of Agile Methodology
- 21 Jun 2021 6 Useful Tips To Streamline Business Processes and Workflows
Traditionally, FAILURE is not accepted in our culture (be it business or society) and it's been seen as a weakness. Failures are discouraged and such discouragement delays the adoption/implementation of “learning” from the failure. Thus, many opportunities to learn from and transform get unnoticed and are left unexplored. The tendency of avoiding failure is due to expectations raising from peer pressure and the barriers built into human nature. In short, we are not wired to accept failure as an option!
Agile concepts vouch for failing fast but, this can be a difficult concept to follow and implement strategically. But, is "Fail Fast, Fail Often, Fail Forward" a route to enhance rate of success? For ease of reading and reference in this article, let us refer "Fail Fast, Fail Often, Fail Forward" as "Fail Fast".
Success is the sum of small efforts repeated day in and day out. - Robert Collier
Steps to implement Fail Fast as a strategy
Following are the ways to implement Fail Fast as a strategy;
- Get a SME: Get a subject matter expert or mentor to imbibe expert opinion. A SME or mentor would honestly assess the progress objectively. In scrum environment, this role can be doubled up by the Product Manager.
- Define Steps to Success: Clearly define Success and steps leading to success by defining interim milestones in the project. Obtain buy in from all stakeholders including customers. Review and update/align the project plan at a regular interval i.e. review the plan on daily basis.
- Test a prototype: Always build a minimally viable product (MVP). Success may not be achieved until a minimally viable product is built and tested. It is also equally important to involve all stakeholders including the Customer in the MVP phase. For a larger project or program, develop a large number of small innovations. Provide a path from idea to commercialization that tests ideas early. This may include making and testing multiple prototypes with stakeholders.
- Voice of Customer: Proactively engage with customer to seek opinion, stress on resolving negative feedback. Find stakeholders / customers who will be critical and listen to what they have to say. This would enable you to embed the voice of customer in this strategic approach. This step can be as simple as interviewing a handful of potential customers to include requirements in to the MVP to start solving existing pain points of the customer.
- Implement 80/20 rule: The Pareto Principle, sometimes called the 80/20 Rule suggests that 20% of the activities on your list will generate 80% of your results. Taken in another direction, 20% of your clients will provide 80% of your referrals, useful feedback, and/or sales. So spend your time on the 20% of those activities that are likely to generate the most results. Don’t be afraid to prune your and team’s to-do list every day. You can also adopt cloud based to do lists and various apps enhancing productivity.
- Stakeholder Engagement: Efficiently engage all stakeholders using available technology resources including Social Media. Millennial stakeholders are mobile 24x7, it becomes necessary to engage them using popular social media options i.e. Facebook,Twitter, LinkedIn & WhatsApp.
- Analyze and Act: During planning, execution and monitoring & controlling phase, setup a robust framework to collect and analyze the data for actionable insights and due updates in the strategic approach and project plan.
Fail-Fast Systems in Hardware and Software
From wikipedia: In systems design, a fail-fast system is one which immediately reports at its interface any condition that is likely to indicate a failure. Fail-fast systems are usually designed to stop normal operation rather than attempt to continue a possibly flawed process. Such designs often check the system's state at several points in an operation, so any failures can be detected early. The responsibility of a fail-fast module is detecting errors, then letting the next-highest level of the system handle them.
Fail-fast systems or modules are desirable in several circumstances:
- When building a fault-tolerant system by means of redundant components, the individual components should be fail-fast to give the system enough information to successfully tolerate a failure.
- Fail-fast components are often used in situations where failure in one component might not be visible until it leads to failure in another component.
- Finding the cause of a failure is easier in a fail-fast system, because the system reports the failure with as much information as possible as close to the time of failure as possible. In a fault-tolerant system, the failure might go undetected, whereas in a system that is neither fault-tolerant nor fail-fast the failure might be temporarily hidden until it causes some seemingly unrelated problem later.
- A fail-fast system that is designed to halt as well as report the error on failure is less likely to erroneously perform an irreversible or costly operation.
Software outsourcing fails, because suppliers mess up
Customers blame subcontractors for overpromising and being unqualified to do the job. Outsource vendors complain they weren’t given proper instructions at the outset or project requirements were changed mid-stream. Finger-pointing has to stop. When things go off the track, it’s easy to attack someone else. With so many project flameouts, suppliers may come across as irresponsible and incompetent. But can you blame it on the provider alone? At the end of the day, it is a two-way partnership in which both parties share responsibility for the project’s triumph or agony. More often than not, the onus is on the client to prevent the project debacle and facilitate success in any way possible.
Instead of playing the blame game, take a step back, sit down with your provider and do a post-mortem. In hindsight, what rocked and what sucked? Why did it go awry? What would you do differently, if you had to do the same thing again?
By no means is this list of wrong mindsets exhaustive, but it may serve as a good starting point for making your subcontracting experience more effective and hassle-free. Steer clear of these reefs, otherwise, they can cause your business to capsize. It’s true that outsourcing might hurt you if done wrong. But the good news is that the final outcome is within your grasp. With a competent partner on your side, proper planning and ongoing communication, you can overcome those odds and set your project up for success.
Conclusion
As long as you can learn from the failure and include those lessons in your next attempt, failure can be the best thing that can happen to you. Once you've implemented steps to implement "Fail Fast as a strategy" and though things just aren't shaping up...it’s time to re-define your route to success!
Now is the time to think big, start small & act now....let us enhance the success rate by Failing Fast, Failing Often, Failing Forward !