Lean software development is a set of principles that can be applied to software development to decrease programming effort, budgeting, and defect rates by one third. The principles were adapted from lean manufacturing by Mary and Tom Poppendieck. This approach is beneficial to an organization because agile iterations eliminate extensive pre-planned specifications. User stories rather than large upfront specs are easily understood by each team member and simpler to communicate.
Lean development makes it possible to gain information straight from the source, therefore eliminating the common problem of producing software that does not address the customers’ needs. Short iterations provide an opportunity to communicate small sets of plans up front and allow the team to make decisions in order to adapt to unforeseen circumstances. Organizations that have the ability to complete fast, simple improvements in the shortest time frame gain powerful decision-making benefits.
Lean development methodology principles can be applied in any IT environment for improved programming practices. The practice is based on seven principles:
Waste is defined as anything that is capable of reducing code quality, hindering time and effort, or reducing delivered business value. It can be things such as unnecessary code or functionality, programming delays, unclear requirements, and insufficient testing. Lean development focuses on eliminating these factors, learning required technologies, and gaining understanding about what the user really needs.
Additionally, by waiting until the last minute to make decisions, the cost of change remains much less. Iterative development is utilized to deliver new applications or enhancements as quick as possible. Integrity is built into the software to ensure architecture and that system components flow well together. Organizations incorporate lean development principles to achieve continuous improvement as changes are rapidly implemented.
Automated analysis software is beneficial when using lean development practices because it aids in waste elimination and verification of integrity. Rapid development practices often come with the price of lower quality code or missed defects. Solutions offering the capability to accurately evaluate source code provide the additional information organizations need to eliminate more waste.
CAST Application Intelligence Platform or AIP is an automated enterprise solution that uses function points to determine the size, quality, and complexity of an application in complex, multi-tier infrastructures. Each function point represents an end user requirement and the count is adjusted based on individual complexity.
Organizations can use the provided benchmarking score to evaluate source code quality, productivity, technical debt, risk, and complexity as projects are completed. If your organization needs a repeatable, accurate method for reducing waste or verifying integrity during lean development, then CAST AIP is a great solution. Additionally, the solution offers the ability to verify quality against architecture standards to make certain everything runs correctly after application deployment.