Slice it thin - The lean way
Software development life cycle has evolved multiple folds with near exponential increase in technology infrastructure, tools and end to end automation. This has virtually made product releases as event-less cycle (continuous integration and continuous delivery). What could be the need of the hour is a change in mindset and adopt right methodologies to put these tools and automation to apt use
Almost all of us would agree that change is inevitable. Likely so, change is also difficult. But, not when it is incremental and continuous. Big bang release at one stage was the norm because of the limitations and challenges in making a product go-live (on prem solutions with numerous customizations). With distributed and resilient infrastructure/network that allows a feature to be available and configurable in production on a single click, challenges that primitive norm
That said, what benefit could one derive by building a “comprehensive” system that may not be as “comprehensive” by the time it comes to market. Given the current pace of technology, the user base itself could have moved on from what appeared to be best at one stage to mediocre now. A classic example could be the most intuitive user interface that never required training a few years back, is no longer driving business because the audience has moved to a handheld mobile device offering no more than 5.5 inches of real estate. Thoughts?
So why target to build the most fault tolerant, resilient, or in short - the best system ever - offering a set of features that take eternity to face the market and add up to inventory cost (or inventory waste as per Lean), than a recursive cycle to identify the single most important feature on a system that is responsible enough to support it and ships faster to customer(s). Sounds like it can happen only in an ideal world. Well, not necessarily
Idea is to slice vertically, i.e. instead of doing work breakdowns into components that may not hold value for a customer (individually) and need integration at the end to come together as a system - break it down into minimal features and only those partial components needed to support that minimal feature (a sub-system). This will not only decrease the time to market but will also help in winning the loyalty of customers, who will see value and involvement at every iteration of delivery
Second, it will instinctively complement the feedback loop and course correction based upon both internal and external factors driving success. Change is no more a challenge but rather an intrinsic part of the process. Further, modular design patterns and microservices architecture allow development teams to work independently and operate in an autonomous manner, reducing friction, busy waiting conditions, and increasing productivity. Productivity, that is no more measured against number of lines coded but rather value delivered to a customer, day after day
Very well, Said Vibhu!! Customers are in no mood to maintain a big elephant. They need quick implementation, immediate changes, fast UX migration, Proactive application (AI/ML), and more importantly PAY Per Use (Saas)...Any product company that does not have this strategy in place than it may be risky to survive...
Priceless!! Definitely the smart way for building sustainable products