Preface Decremental Development as Continuous Simplification
Ameesh Khatrie
Agile Technical Coach | Gen AI Practitioner | Clean Code | Transformation Agent | SPC 5 | SA 4.6 | CSM | IIMC EPGBM | Gen AI Practitioner
In Incremental development developing software in various portions of the system developed at different times or speed of development and are coupled based on the time of completion. The objective of incremental development is to deliver software as quickly as possible to get faster feedback from customers.
However probing questions on incrementing and developing are,
Are we truly delivering Faster Value to Customers?
Are all the problems getting identified ahead of time incrementally?
Does each iteration deliver value?
Adding new code incrementally, is the only way to provide the customer the true value?
Is the code-base an asset?
Are we incrementing in shorter to shortest iterative cycles to deliver value or to chase velocity?
The prominent challenge in incremental development is rectifying a problem in one unit requires correction in all the units, time-consuming, and adding complexity over a period of time.
The team is doing great work by adopting of the newest technology
Side-Effects of incremental development are
1. Might land up in building an overly complex software
2. May consume more time in fixing the Bugs (Code – Test – Bug – Fix – Recode)
3. May result in issues for code maintainability and reliability
4. Might have the cost optimization getting highly neglected
5. Each iteration may not deliver a value
6. Quality of software may deteriorate
7. Might hinder the further evolution of the code-base
8. May lead to Code Smells - Sitting Dead and Duplicate Code causing issues in software performance
Is Code a Liability?
The definition of an asset is a resource with economic value that an individual, corporation, or country owns or controls with the expectation that it will provide a future benefit. Assets are reported on a company's balance sheet and are bought or created to increase a firm's value or benefit the firm's
A liability is something a person or company owes, usually a sum of money.
Some examples of Assets and Liabilities are
In the software world, while developing software please consider it as an ASSET and not LIABILITIES. While all business requirements and functionalities are liabilities on that software.
What is Continuous Simplification?
An illustrative example between incremental and decremental development
On a final note consider simplicity in the development cycle and foster the culture to simplify the developed code-base for the product betterment.