Developing complex web applications is not an easy task. Getting the design right the first time; on time and on budget is even more challenging. According to the Standish Group in their “2003 Chaos Chronicles Report”, about 66% of all software development projects fail or are over budget or time, and/or deliver reduced functionality.
Alan Lakein’s famous quote, “failing to plan is a plan to fail”, is as true for web application development as for personal time management. For every hour devoted to planning and specification development, many hours are saved during the engineering phase. Yet well intended stakeholders and engineers often shortcut the development planning cycle in hopes of rushing products to market. All too often, these shortcuts are the very contributors to late and over budget projects. And these overages increase as the project complexity increases.
Developing a web application architecture prior to coding:
Both approaches start with a Web Application Concept and end with Testing and Deployment. But what happens in-between is significantly different.
The Successive Discovery approach proceeds with a Design Discussion led by stakeholders (typically sales or marketing) and Engineering. The project is loosely defined and engineering beings.
This approach is adequate for small projects where the applications are straightforward. However, larger and/or more complex projects can quickly spiral out of control. Even simple projects can evolve into more complex applications. Such conditions result in substantial code re-writes that directly and negatively affect the cost and deployment timeline.
The Architecture approach is better suited for complex projects requiring a minimum of 100 engineering hours. The focus of this approach is on planning. The process starts with a fully functional HTML wireframe that allows stakeholders and perspective users to exercise the user interface.
It is through the wireframing process that the application takes full form. The wireframe includes:
Next, the application database is designed to industry normalization conventions that maximize efficiency. Both a database dump file and MicroOLAP table relationship map are prepared. Databases prepared for CakePHP programming environments include appropriate field naming conventions.
Finally, an engineering specification is prepared covering every web element. Each element has a full engineering description including:
The Architecting approach fully details the design in the form of an HTML prototype, which is superior to the traditional paper plan. Based on a complete specification and functioning wireframe, engineering is better able to estimate the project cost and time to market.
Architecting is a disciplined planning approach that reduces project cost and time-to-market while improving market acceptance and brand loyalty for complex web application projects. Emphasis is placed on application usability, efficient database design and clear engineering specifications. As a result, engineers are able to focus on effective coding without the inefficiencies associated with multiple design reviews and coding changes.