Refactoring and Tolerance for Future Changes
Due to the iterative nature of the lean approach, the technical architecture of a product should allow revisions with new and updated features at later releases.
During iterative development, if the product has intensive integration among its components the following happens:
The team delivers product parts A and B without any major problems at initial iterations. Nevertheless, the team realizes that it has to make changes to parts A and B while working on part C since it has integration points with those parts. In other words, A and B have to be refactored although they have already been released.
Refactoring means changing the existing technical architecture of a product without changing its behavior, and it is always harder than developing from scratch. These back-and-forth moves with challenging refactoring efforts make the build and delivery of the product with integrated components even more difficult at later iterations.
Spaghetti Architectures
These frequent refactoring efforts necessitate excellent architecture design and development skills within the technical team. Whether the selected methodology is agile or waterfall, architects should formulate a highly flexible technical architecture design. Otherwise the architecture will be more like spaghetti with additions and updates at following iterations. This will result in a fragile product with performance, security, predictability, and reliability problems.
Flexible Data Models
To build a highly flexible technical architecture, the data model of the product should be parametric and flexible. This way excessive data migration and conversion needs, due to new transactional and reporting requirements, can be prevented.
During the requirements-gathering phase of the CEC mobile application project,
the BA-Works team defined the reporting requirements. They included:
-Share of mobile channel in total sales revenue
-Mobile channel sales revenue by dealer
-Mobile channel sales revenue by product category
-Mobile channel sales revenue by product
-Conversion rate showing how many customers ordered a product when they used the mobile application
-Effectiveness of contextual campaign notifications displayed on the mobile application.
To create a flexible technical architecture, BA-Works business analysts considered all transactional and reporting needs for the CEC mobile application when designing its data model, which is shown below.
Performance and Reliability
In the lean approach, the elegance of a product is not only limited to its visual aspects. An elegant product is one that proposes maximum value for its customers with the highest level of reliability and performance. The major factor that makes a product fragile is its technical complexity. This is usually a result of embedding an excessive number of features into a product that has limited hardware capacity.
One of the solutions for this problem is to build an open technical architecture that allows the product to communicate with other products by transmitting data between them and sharing their complementary features. This way, a single product does not have to include all those features within it. This kind of open technical architecture is the main driver behind wearable technologies’ capabilities that are beyond their own capacity.
For instance, users of a simple, wearable step counter can also manage their diet and personal training programs via its mobile interfaces by connecting to other products such as electronic scales and fitness devices.
Big Data
In time the data generated by products may reach to a big scale. This level of data can’t be stored within them due to limited hardware capacity. To overcome this challenge, the data can be stored and managed on the cloud. However, this will only create data-level waste unless companies utilize big data technologies to generate valuable insights for users of their products.
For instance, the wearable step counters mentioned earlier provide helpful and motivating insights, such as comparing the user’s activity and diet statistics with other users’ results. They also do real-time analysis of the user’s daily activity and diet data and send notifications in case they can’t fulfill the target levels. Such big data insights enrich the value proposition of these products from being simple step counters to healthy life assistants.
DevOps
Due to the iterative nature of the lean approach, the product goes live in multiple releases. Sometimes the products developed within planned time frames cannot be released on time because of deployment problems.
To mitigate deployment risks, such as latencies, high failure rates, and long fixing and recovery times, operations teams should start working together with technical teams during the design and development of the products and always be synchronized with them. Otherwise deployment will always be a bottleneck and create operational-level waste at every release of the product.