?
Understand the business Domain
Mark Richards
Effective software architects understand not only technology and also the business domain of a problem space. Without business domain Knowl-edge, it's difficult to understand the business problem, goals, and require-ments, and th Erefore difficult to design a effective architecture to meet the requirements of the business.
It is the role of the "the Software Architect to understand" business problem, business goals, and business requirements and Translate those requirements into a technical architecture solution capable of meeting them. Knowing the business domain helps a architect decide which patterns to apply, how to plan for future extensibility, and H OW to prepare for ongoing industry trends. For example, some business domains (e.g., insurance) lend themselves well to a service-oriented architecture approach wher e As other business domains (e.g., financial) lend themselves more toward a workflow-based architec-ture approach . Knowing the domain helps you decide which architecture Pat-tern could work best to satisfy the specific needs of the Organi Zation.
Knowing the industry trends of a specific domain can also help a software architect in designing an effective architecture . For example, in the insurance domain, there is a increasing trend toward "on-demand" auto insurance, where you have pay F or auto insurance when you actually drive your car. This type of insurance are great if you park your car at the airport on Monday morn-ing, fly off to your work destination, and return Friday to drive back home.
?
?? Understanding such industry trends enables you as a software architect to plan for these trends in the architecture, even If the company is working with hasn ' t planned for them yet as part of the IT business model.
Understanding the specific goals of the business also helps your design an effec-tive architecture. For example, does the goals of the particular business you is working for include non-organic growth through heavy mergers and acqui-sitions? The answer to this question could influence the type of architecture you design. If The answer is yes, the architecture might include many layers of abstraction for facilitate the merging of business comp Onents. If the goals of the business include increased market share through a heavy online presence and then high availability are MOS T likely going to be a very important attribute. As a software architect, always understand the goals of the company is work-ing with, and validate that the Architec Ture can support these goals.
The most successful architects I know is those who has broad hands-on technical knowledge coupled with a strong knowledg E of a particular domain. These software architects is able to communicate with C-level executives and business users using the domain language tha T these folks know and understand. This on turn creates a strong level of confidence, the software architect knows what he or she is doing. Knowing the business domain allows a software archi-tect to better understand the problems, issues, goals, data, and proc Esses, all of which is key factors when designing an effective enterprise architecture.
Author bio available on page 11.
Collective Wisdom from the experts 61
?
?
Programming.is. An. Act.of.Design Einar Landre
KRiSTEn Nygaard, FATHER of object-oriented programming and the Simula programming language, used to say programming is Lea Rning. Accepting the fact that programming-or more precisely, software Develop-ment-is a processes of discovery and learning, no t a process of engineer-ing and construction, is fundamental to bringing software practices forward. Applying the concepts of traditional engineering and construction on software development does isn't work. The problems has been documented and com-mented upon by leading software thinkers for more than. years. As an exam-ple, in 1987 Fredric Brooks, Jr., stated in the ' Report of the Defense Science Board Task Force on Military so Ftware "That's the Document-driven, specify-then-build approach lies at the heart of many software problems.
So where should the software industry look to improve its practices? What's the industries involved in production of sophisticated mass-market products such as cars, pharmaceutical drugs, or semiconductors?
Let's take a look at the car industry. When planning a new model, the first thing are to choose a concept or archetype. It ' s primarily an architectural positioning mechanism. The BMW X6 is an example of a new concept that combines the properties of an SUV and a coupe into what BMW calls a sports Activity coupe. Before you can purchase a new X6, BMW have invested thousands of hours and millions of dollars in both it vehicle and Manu facturing design. When BMW receives your order, one of its assembly lines would kick in and produce your customized version of the X6.
Understand the business Domain