XML has potential benefits in almost every area of software development. However, many software development organizations lack experience with structured document technologies such as XML. In the past, introducing new software development technologies like client-server architectures, object-oriented programming, and the Internet has resulted in significant disruptions to adopting organizations. You can mitigate the XML disruption by addressing the need for process and people changes before starting a project. This strategy helps minimize the impact of XML on the software development process in three important areas. -
Budgeting. All software development organizations face a scarcity of resources. Therefore, you must efficiently allocate resources to application development projects and accurately estimate the cost impact of specification changes. New software development technologies usually have important effects on the cost of application development. For example, XML can reduce the cost of developing a given set of information exchange functionality. However, XML can also deliver completely new information exchange capabilities. Implementing such capabilities adds to the cost. New software development technologies often have an important impact on the timing of costs. For example, designing schemas can increase the costs during the design phase while decreasing the costs during the implementation and maintenance phases. Accounting for such impacts enables you to allocate software development resources across an application's life cycle better. -
Staffing. Using new software development technologies typically requires new or different skills. For example, XML developers must be able to design schemas, manipulate the data structures produced by XML processors, code with XSLT, and work within domain-specific XML frameworks like ebXML. Understanding the set of required skills allows you to make appropriate staffing decisions by finding new developers with these skills or providing these skills to existing developers through training programs. -
Project management. Delivering an application on time and on budget requires the use of a software development process that matches the natural dependences in the application design. Such a process enables project managers to measure progress accurately and to coordinate the need for different resources at different stages of the process smoothly. New software development technologies typically result in application designs with dependencies that are different from those of previous technologies. For example, in many XML applications, the set of schemas employed will drive much of the development work. However, much of the benefit from using schemas comes from making them an explicit contract for interaction among several software applications. Therefore, schema design often requires working with other organizations or at least considering their requirements. This cooperative process can often consume a considerable amount of time. But with schemas in place, the work of document processing and stylesheet design proceeds more rapidly than you might otherwise expect. Clearly, the breadth of potential uses for XML means its effect on the software development process will vary greatly from project to project. However, by abstracting the similarities among XML applications into the three categories introduced previously, we can perform a high-level analysis of the software development process impacts. For each of these categories, this chapter examines two crucial areas. -
Development process. We examine the XML-specific steps in the development process and the dependencies among the steps. The particular steps provide a general framework for structuring timelines and budgets as well as revealing opportunities for parallel development. The processes presented do not replace your existing methodology but rather supplement it to account for the addition of XML. You usually repeat each XML-specific step as you progress through the standard design, implementation, and unit testing phases. -
Required staff. We examine the different types of staff and their required skills, tying their activities to the development process presented in the preceding section. Each type of staff has a label for convenience, although the actual employee titles will obviously vary from organization to organization. The important points are the roles of the different staff types and their respective skill sets. Because there is a significant amount of variation among applications within each category, the recommended XML-specific steps are generalizations . Clearly, the process for a particular application will deviate somewhat from the general models presented. Moreover, differences among software development organizations will probably cause further deviations. However, the three general models can guide you in updating your development processes to accommodate XML. |