The goal of a development effort is to produce software oriented solutions that meet the requirements determined by marketing. The success of any enterprise application development effort is highly dependant on the ability of the organization to effectively communicate deliverables, a plan for delivery and the risks associated with the deliverables.
Developing software is for profit - not for the sake of developing software. All too often, the goal of many development efforts become too self-focused. Solutions should be built correctly the first time but the understanding to a business as to the risks and extendibility of a given software effort is the crux of many problems. Compromises have to be made sometimes and extendibility has a point of diminishing returns when measured in terms of resource expenditures.
Often time however, the decisions as to the degree of extendibility one would like to afford a given software product falls short of the necessary level. Therefore, erring on the side of building a product adhering to good design principles over emasculation to conserve resources results in the correctly built solution. A good method for communicating this concept to a business is to maintain deliverable estimates and the prerequisites for delivery.
Please refer to Figure 1, Overall Development Process.
Please refer to Figure 2, n-Tier Development Process.
For any given desired piece of functionality, the development process generally follows a mode that produces a Data Access Object (DAO) or series of DAO. The DAO are required to serve a Business Object (BO). The BOs are produced to support the business logic manipulation efforts for the system and call the appropriate DAO(s) to get the data they need to perform their task. An XSL sheet is produced that converts the XML output of the BO into HTML to be served to the web browser client.
80% to 90% of the time and effort to code desired piece of functionality is in the development of the BO, DAO class or series of DAO classes. The distribution of logic in this fashion is quite efficient and well suited to encourage code maintenance that is quite optimal. Extendable code generally takes longer to write but requires less maintenance. That is why producing the XSL (fastest to produce - least maintainable) after all other efforts are completed may not be the most optimal means of code production in an environment that requires rapid production and alteration of functional specifications.
Please refer to Figure 3, Deliverables from Development.
© Copyright 2001 Scott Hofmann. All Rights Reserved. Distribution of this document unedited in it's entirety is encouraged.