Computer software development is a complex process that includes requirements, design, and coding phases. A lightweight design is a software design technique that uses small lightweight processes. These typically include graphics, flow charts, and high-level overviews on how the application will be assembled.
Scrum is an example of a lightweight design process that was created to streamline software development. This technique builds applications based on small modular development cycles. Each component of the application is assembled as an individual unit.
Most lightweight software design is based on modular development. These modules are developed quickly and verified by the customer. Modular design requires components to be developed and reviewed in three-week cycles, which is an extremely interactive process.
Lightweight design was first created in an effort to remove unnecessary bureaucratic processes from the process of software development. This has enabled software to be developed more quickly and efficiently. Lightweight techniques are becoming the standard for building applications.
In the past, software development projects used heavyweight design techniques that required excessive documentation and review. This method typically causes unacceptable delays in the final delivery of the software application. This has caused the evolution of lightweight methods, which cut the development time significantly. Software developers realized heavyweight processes were unnecessary and caused significant burden on the business performance. This failed process spawned a new area of lightweight design techniques.
Smart phones are an example of software products that are developed using lightweight design techniques. These products require a quick delivery cycle, which warrants a fast development process. Most smart phone applications include some basic crude drawings that define how the application will be developed.
Software design is a critical phase in software development where the computer system's architecture is defined. This definition is similar to a blueprint, which defines how the application will be developed. Most lightweight design techniques include basic process flows that provide the blueprint for the system.
One of the key benefits of lightweight design is the renewed focus on customer requirements. Lightweight techniques use less documentation, which requires more communication with the customer. This process requires interactive communication between the customer and software developers to ensure the design meets the needs of the business.