A Practical Guide to Enterprise Architecture
Our favorite auto company, Canaxia, has a huge maintenance expense problem. Canaxia spends 90 percent of its IT budget on maintaining existing systems, leaving little to fund new projects. As a result, Canaxia is falling behind its competitors because it takes so long and costs so much to develop new software and add new features to its existing software. For example, its Internet and intranet sites are a mess. It has six small intranet Web sites. Three of these sites use .NET, one uses J2EE, and the others use PHP. They all access different databases. Some access an Oracle database, some access a DB2 database, and the .NET sites access an SQL server database. Canaxia also has three Internet Web sites, one for corporate, one for sales, and one for dealerships. Each has a different user interface. Two are developed in J2EE, and the other was developed in .NET by an external consulting firm. Each project team used a different process to develop the sites. One team used RUP, one used eXtreme Programming, and the other used an ad-hoc process. In addition, each site has its own customer database and users must remember separate user IDs and passwords to access each site. Components were developed to support each site, such as a logging component and a component to store reference and configuration data. Of course, each project team also created different versions of these components. The situation at Canaxia is probably familiar to most people who work in IT. Given this situation, how can Canaxia spend less on maintenance and improve the way it delivers new applications? How does an organization take advantage of the opportunities to reuse infrastructure, process, architecture, and software assets across applications? It is surprising that Canaxia got itself into this mess because this is not how the company builds cars. When a car is ordered from Canaxia, Canaxia does not build a custom car from scratch. That would be too expensive. Canaxia has several product lines. It has a product line for compact cars, midsize cars, and sport utility vehicles. At Canaxia, each product line is based on four aspects of building cars within that line:
However, each car goes through a different process during its manufacture. In the compact car product line, the seats are placed before the steering wheel. In the sport utility vehicle product line, the steering wheel goes in first. In addition, many of the components of a vehicle are similar within a product line. For example, the steering wheels, tires, visors, and other components are identical in every Canaxia midsize car. In addition, within a product line, a single infrastructure produces the cars. The midsize car line has a single assembly line consisting of robots and other machinery that builds a midsize car with minor variations, such as paint color and trim. All the workers on the assembly line understand the process, the components, and the infrastructure and have the skills necessary to build any type of midsize car within Canaxia. By having shared product line assets, Canaxia has the flexibility to build similar car models with the same people because they are familiar with the line, not just with a particular model. By applying these same concepts to software product lines, Canaxia can achieve a similar benefit in the way it develops and maintains its software products. |