A Practical Guide to Enterprise Architecture
After having toured all the development groups in Canaxia, Myles Standish has a sweeping perspective on the development capability of the entire enterprise. In his review of the groups, he has seen the strengths and weaknesses of the various groups and has been able to bring them into the context of the software development methodologies that are rolled out across the company. Myles knows that consistency in software development is a great benefit for improving the overall quality of development efforts. Project consistency enables easier tracking of projects by company management. It also allows for easier transition of development staff from organization to organization. At the same time, Myles has also seen that when software projects are inundated with software procedures, the processes actually hinder progress rather than facilitate it. Knowing the nature of all the different methodologies used throughout the enterprise, Myles put together a plan for managing software development at an enterprise scale. The methodologies described in this chapter are not directly comparable. In fact, it is not uncommon to see RUP processes used in conjunction with a CMM framework, or RUP used in conjunction with an XP project, or Zachman's Framework used with CMM. The nature of these methodologies is to be as flexible as possible while still maintaining the integrity of the quality of a project's delivery. That said, each of the methodologies can be modified and combined with best practices from other methodologies to fulfill the needs of an organization or, as in Myles Standish's case, an entire corporation's enterprise. The first thing Myles needs is a consistent process framework for tracking the progress and risk of projects. He is not interested in, nor would he be capable of, keeping up with all the project initiatives at Canaxia. Yet Myles needs to be able to review project information and to identify and assist in software projects that may be experiencing risk. Knowing that a number of organizations are already on track for CMM certification, Myles recommends that all software development efforts become compliant with the CMM initiative. Myles is not looking for all the development groups to standardize on all process definitions across all teams. This would be a nightmare to implement and enforce and would actually hinder development groups from delivering software solutions effectively to the user groups. Rather, each of the software development groups can continue using its existing software development processes but these processes must satisfy the process maturity requirements of the enterprise. Each of the methodologies described RUP, XP, Zachman's Framework, and MDA can be used in the context of a CMM-mature organization. Also, by complying with CMM's standards for process maturity, the entire enterprise can view project material from any type of project delivery and the structure of the information can be assumed consistent. CMM is the most recognized frameworks for capturing procedures related to evaluating process performance in an organization. CMM can adapt as the enterprise matures its capability to deliver software. With performance metrics available for describing the progress of the various software projects at Canaxia, Myles plans eventually to take a proactive role in identifying and assisting groups that are experiencing problems with software development. With CMM defined as an umbrella framework for software development projects, all the software development project teams can continue to deliver software solutions for their respective user groups as each deems most effective. Myles Standish also created an enterprise services group that is responsible for evaluating, implementing, and maintaining reusable application components that can be shared throughout the enterprise. This application framework group uses both RUP and MDA as software methodology as the end-users for these developers are other development teams that can leverage existing components. Because RUP and MDA are based upon the widely accepted UML industry standard for software definition and design, it can be effectively used among development teams. Specifically, MDA approaches are designed to be implementation independent and, therefore, may be more appropriate for design-reusable software across the enterprise. Leveraging CMM-mature processes across the enterprise, Myles Standish also knows that the company can benefit in the various development conditions. Offshore development has become a more popular and economical approach to software development, but inherent problems arise when developing this model. Because of disparate locations and time zones, it is difficult to maintain high levels of communication. Also, it is always a concern of companies to impose its own standards of quality and maintainability of software development done outsourced. In response to this, many outsourcing companies are committed to CMM process certification. For example, outsourcing companies at CMM level 3 have set procedures and process mechanisms to manage the consistency and quality of software projects. CMM-certified corporations that contract out development to other CMM-certified organizations will have the added benefit of sharing their documented procedures and consistent project artifacts. Myles Standish knows that the practice of software development is continuing to mature, just as the processes at Canaxia will continue to develop. The methodologies he has put into place will provide for him exposure across all the development activities at Canaxia. With this exposure, Myles is confident that he can support areas where an enterprise architecture perspective can help with individual projects. Also with this exposure, Myles has the information available for him to steer the enterprise direction of software development at Canaxia. |