Practical Architecture in Impractical TimesMatt Valentine June 2009
Summary: This article focuses on pragmatic approaches for effectively navigating this new environment and helping architects to become more proficient, capable, and skilled.
Contents Navigating the Storm
Navigating the Storm
For architects, the current economic condition offers an unparalleled opportunity for growth and innovation. The use of sound architectural practices and a strategy focused on efficiency gains and delivering near-term revenue are effective ways to ensure that the contributions of architects are indispensable. In today’s turbulent economic climate, the immediate reaction might be to cut costs across the board—especially in IT. However, in reality, IT today is so interconnected with operations that such reductions would be counterproductive. In fact, according to McKinsey and Company, a dollar that is invested in IT can have 10 times the impact of traditional cost-reduction efforts.1 Your business customers, partners, suppliers, and employees are going to continue to demand new capabilities—with likely far fewer resources. It is exactly these constraints that offer architects an unparalleled opportunity for growth and innovation. The fact is that in any economy, innovation is the foundation for success. While there is an overall slowdown in spending, organizations will still need to make smart investments in innovation to help them grow the business. The following are two examples:
Architects are generally accustomed to driving alignment between IT and business requirements. While much architecture work is strategic—focused on achieving a specific goal or business advantage—in today’s economic climate, now is not the time to embark on risky and expensive business-reengineering efforts. In fact, the primary finding from the Gartner Business Executive Survey, 2009, is that “most leadership teams will reduce their focus on longer-term issues.”2 As a result, the key to surviving the economic downturn is to intensify opportunities to produce near-term revenue and efficiency gains. Effective architecture seeks to align business and technical requirements by shared understanding of system design by balancingbusiness, technology (or system), and user goals.3 Before detailing some practical projects, let us quickly review some valuable architectural techniques and practices that are particularly suited to current economic conditions. Business GoalsMaintain Focus on the Business
In the current economic environment, the ability of an architect to drive alignment between IT and business has never been more critical. While much has been written on this topic, here are a few things to remember:
Take an Agile Approach
By applying an agile development methodology to all projects—in which work is performed in small, rapid increments with minimal planning, and is aligned closely with customer needs and company goals—change can be managed more easily. The result will be finite, manageable projects that have a clear connection to the business.
Use Well-Known Patterns
The ability to identify recurring patterns quickly and take action— whether in sports, business or architecture—has long been a hallmark of effective leaders. From an architectural perspective, patterns provide a reusable solution to commonly occurring problems— whether business or technology:
Now is not the time to build a better mousetrap; therefore, leverage resources such as Patterns & Practices5, Microsoft Operations Framework6, Solution Accelerators7, and the MSDN Architecture Center8 to accelerate solution delivery, drive cross-team alignment, increase predictability, mitigate risk, and increase productivity that results in better alignment with business. Technology Goals
Businesses are complex systems of people, processes, and technology, and this complexity is not without cost. In fact, according to a recent survey by Bain & Company of executives at 960 companies from around the world, nearly 70 percent reported that complexity was driving up costs and hindering growth.9 Systems thinking10 and Dr. Goldratt’s Theory of Constraints11 have taught us that system performance depends on how parts interact, and not on how they work separately. Therefore, taking a holistic approach and minimizing the friction between processes can be more effective than addressing each subsystem individually.
As a result, organizations are converging what were once disparate, standalone applications and systems into integrated, unified application platforms in order to better to support their business applications. While no strict definition of “application platform” exists, these software systems essentially consist of an integrated and interoperable set of IT infrastructure, business applications, and tools for application development. InfrastructureCore infrastructure provides fundamental, foundational capabilities for supporting IT operations—for example, identity and access management, desktop-device and server management, security and networking, and data protection and recovery. In general, these “utility” capabilities do not provide a competitive advantage to the business. Therefore, the focus should be on driving new efficiencies to reduce costs. ApplicationsBusiness applications are generally how users experience IT. Applications provide people with access to data and processes that they need to do their jobs—making decisions, understanding their customers, managing operations, and so on. Whether business applications are packaged, custom-developed, run on premises, or hosted in external data centers, they can have a profound impact on the business. As a result, strategic investments in business application can help the business differentiate effectively and result in competitive advantages. ToolsUse of application-development tools and frameworks to build highly specialized business applications can improve the ability to outperform competitors. A homegrown data-analysis engine that identifies high-value segments and audiences, or an automated business process that enables an organization to deliver products and services more quickly, is an example of how custom application development can provide a competitive advantage. Organizations need powerful, flexible tools and skills that support a wide range of application types and architectural styles. The greater the flexibility of the development platform, the greater the benefit to the business. While optimizing disparate applications and subsystems—such as tuning a database, profiling the performance of an application, or increasing load on a Web site—can result in local efficiencies, the biggest benefits come from taking a holistic approach to improving how infrastructure, applications, and tools work together to support critical business applications. User GoalsUsers ultimately decide the success and failure of any IT project. Therefore, a pragmatic approach must stay focused on users—both internal and external. Customer-Connected EngineeringMany projects fail to deliver on promises and meet the requirements of users. According to a well-publicized report from The Standish Group, only one out of three projects is a success, and 66 percent of projects fail or take longer than expected.12 IT and custom application-development projects can be complex and, thus, risky endeavors. To mitigate this risk, it is important for projects to leverage customer-connected engineering, scenario- driven development, and agile development methodologies that rely on frequent check-ins with the business to ensure that IT projects do not end in spectacular failures.
Build Relationships
User scenarios and use cases help architects understand the necessary requirements, but nothing beats building deep relationships and understanding of your customers—both internal and external. In addition to technical experience, highly effective architects have a deep understanding of the business and industry issues and, given their ability to relate to both groups, are actively sought out for their expertise. Create Fans
It is not enough to deliver on time, on budget, and to specification. Users increasingly want more capabilities in their business applications. They want more flexibility, easier access, collaboration, and better productivity from their applications. By delivering business applications that exceed expectations, you not only create fans for your work, but also improve the ability of people to advance the business.
Figure 1. Pragmatic opportunities to apply crosscutting techniques and practices (Click on the picture for a larger image)
Practical ArchitectureIn the previous section, we reviewed valuable crosscutting techniques and practices that can help architects navigate the current economic conditions. Now, let us look at some pragmatic opportunities to apply these best practices, including:
Creating New Efficiencies to Reduce CostsInfrastructure OptimizationDriving lower expenses through continuous IT consolidation and optimization is more important than ever. Capability maturity models and enterprise frameworks such as the Zachman Framework14, The Open Group Architecture Framework (TOGAF)15, or Microsoft’s own Core Infrastructure Optimization16 model can be effective architectural approaches for driving down IT costs. Two major opportunities for driving down costs are data and server management:
In addition to reducing costs, an optimized IT infrastructure can enable quicker response to changing business needs:
With the emergence of cloud technologies that promise capacity on demand, the opportunity exists to shift away from expensive hardware capital expenditures (CAPEX) to operating expenses (OPEX) that are based on elastic capacity needs. Reducing Friction Between Business Processes
Effective architecture can help drive down operational costs through improved business-process flow, automation, management, and optimization. Service-oriented architecture (SOA) is a popular strategy for designing solutions that might require integration across operating systems, applications, and databases. A service-oriented approach can unlock the value of existing systems and improve cost efficiency and overall business agility. The key to success with SOA is to focus on practical applications of service-orientation instead of expensive, mega-scale business-process reengineering efforts. To support customer support requests for the growing Xbox, Xbox360, and Zune products, architects at the Microsoft Entertainment and Devices (E&D) division have focused on practical approaches for reusing existing systems to minimize the need to create expensive new applications. By taking an agile, service-oriented approach, E&D has been able to increase scale and data consistency quickly and improve process transparency—resulting in improved process flow, customer satisfaction, and customer service–agent productivity.
In late 2004, EDS, an HP Company, began a project to help airlines extend the life and value of existing IT systems, take more advantage of outsourcing options, and improve competitive advantage. Using a service-oriented approach that is based on Microsoft technologies, EDS Airline SOA is a flexible and efficient transaction-processing platform that provides middleware, messaging, and security capabilities for more than 20 applications that provide key airline services and functionality—including reservations, flight planning, and flight operations. By using a service-oriented approach, EDS extends the life of existing IT infrastructure while proactively retiring outdated systems. EDS also pulls functionality from TPF and other legacy systems and migrates those applications to a Microsoft platform that is easier and less expensive to maintain. The results of this project include savings of between 10 and 25 percent on new services, the ability to execute a legacy modernization strategy more rapidly, and a nearly 30 percent lower total cost of ownership versus mainframe.19
From a data perspective, by reducing the number of required steps from 19 to 9, automating 70 percent of its business-intelligence requests, and providing Microsoft Office Excel as the user interface, Lloyds TSB—a leading financial-services group—was able to reduce the time for critical business reports from months to minutes, which provided significant efficiency gains for the business.20 Finding New Opportunities to Grow the BusinessIncrease Customer Focus
Information is at the core of a business’s ability to make effective decisions. Architecture initiatives that increase the quality, timeliness, and usefulness of information have a direct correlation to increased revenue. A practical approach is to focus on anticipating the needs of your customers—both internal and external—because they are the key to growth. Typical customer queries include the following:
While disconnected data can provide usable customer insights, the combining of data from different systems and business units is likely to produce a more comprehensive and valuable customer view. Lloyds TSB is a great example. By providing their business analysts with integrated access to disparate data stores, including their 40 TB Teradata Warehouse, Lloyds TSB increased their understanding of the spending behaviors of customers in order to maximize the value of the services that they offer.
A practical approach to information architectures starts with flexible and versatile Extract, Transform, and Load (ETL) and data- integration capabilities that can quickly combine data from a variety of operational data stores, data marts, and data warehouses. The next step is to provide the business with self-service capabilities for information access and analysis, which include:
By providing the business with a flexible data-integration architecture and self-service data-analysis capabilities, it is possible not only to create deep customer insights, but also reduce the backlog on IT and increase the timely flow of information through the organization. Improve Operational Insight
With a flexible information architecture, businesses can improve performance management, reduce risk exposure, identify sources of revenue leakage, eliminate inefficiencies, and recognize and realize new growth opportunities. Performance-management solutions include:
In Europe, the Middle East, and Africa (EMEA), Microsoft relied on local subsidiaries to feed sales data into a proprietary application that lacked the functionality to produce sales forecasts. Microsoft implemented a performance-management solution that enabled employees to create and share sales forecast graphs and tables quickly, in real time, across portal sites. As a result, sales forecast accuracy and revenues for the group have increased 31 percent.21 An effective Business Activity Monitoring (BAM) architecture, or the real-time monitoring of business activities, gives organizations the ability to track business processes from a variety of tools, including Web services, Web portals, Office Excel, other desktop clients, and mobile devices. This provides an increased level of visibility into critical processes that drive revenue or—when they malfunction—that do not. ASB Group Investments—a default provider for the New Zealand government’s retirement savings program, KiwiSaver—uses BAM to reconcile the financial totals of all contributions against a batch total that is received daily.
Helping All Users Increase ProductivityDeliver User-Focused Applications
People are at the core of business. It is their creativity, innovation, collaboration, and passion that drive a business to succeed. Helping people communicate, collaborate, be more productive, and make better decisions should top the list of practical architecture projects. To help engineers improve productivity, Honeywell Transportation Systems designed and developed a system in only four months to integrate SAP information into familiar Microsoft Office tools.
Historically, users have worked on their PCs (or terminals) to access monolithic business applications. Today, users are operating a wide range of devices. Inside their organizations, they are using a desktop PC; on the road, they carry a laptop; they are connecting to the Internet through a variety of devices; and they often do work at home by using their PCs. To deliver applications that are accessible from a wide range of presentation technologies—desktop, Web, RIA, portal, and devices— architects must design multichannel architectures by using loosely coupled, independently evolvable pieces that are facilitated by flexible development frameworks and tools that support a wide range of application types and architectural styles, as well as connected and disconnected scenarios.
The Architectural Journal #1024 focuses on composite applications, and the recent patterns & practices release, “Composite ApplicationGuidance for WPF and Silverlight,” is designed to help you more easily build enterprise-level applications that span multiple delivery channels and presentation technologies. Connecting People and Teams
In today’s highly interconnected world, it is not uncommon for people and teams across separate organizations, companies, and even countries to come together to deliver business results. For architects, this means creating effective collaboration-oriented architectures25 that help people create, distribute, analyze, and share information by using a combination of on-premise and off-premise software and services. This de-parameterization—characterized by systems that span organizations, systems, networks, and security domains26 —presents a variety of new and interesting considerations. A practical approach focuses on increasing the productivity of distributed people and teams by simplifying the access to shared information. Key focus areas include:
Capgemini, one of the leading consulting firms in the world, wanted to bring its people and knowledge together globally to form highly efficient teams that could access information quickly to win new business and complete projects productively. By improving access to critical information, experts, and colleagues, thus reducing delays and increasing productivity, Capgemini teams can respond to new opportunities faster and have increased their new business close rate. The ability to win business and work smarter and faster is expected to result in a payback of eight months and a net present value per user of more than $2,700 USD.27 Team-Based Application Development
Custom business applications that result in the ability to outperform competitors can result in a competitive advantage. As a result, increasing the predictability, repeatability, and measurability of team- based application-development processes is as critical as optimizing such traditional business operations as manufacturing, inventory, and production. By reducing the friction between development roles—architect, analyst, designer, developer, and tester—businesses can expect to increase productivity, as well as deliver more stable, secure, and scalable business applications. A practical approach to team-based software development uses a Lean approach that focuses on:
EDS, a global business- and technology-services company, realized a 286 percent ROI in four months by using Microsoft Visual Team System to support a more efficient global development strategy and realign its internal software-development assets.28 Over six months, Dell—a leading manufacturer of PCs and technology-related products—realized a 225 percent ROI by deploying a centralized global source-code management platform to provide developers with source code on a just-in-time basis, regardless of their location. Improved source-code management has also enabled Dell to consolidate its source code onto fewer servers, redeploy 100 system administrators, and improve the productivity of its developers.29
Conclusion
Today’s turbulent business climate creates interesting challenges for architects who are responsible for reducing costs and delivering new capabilities. A practical approach to architecture focuses on:
The Microsoft Application Platform, which provides all of the capabilities that this article covers, is an integrated and interoperable set of mission-critical server infrastructure, applications, and tools that helps organizations to reduce operations costs, improve business flexibility, and increase productivity for all—developers, users, and administrators. More information, visit the Microsoft Application Platform Web site.
References
AcknowledgementsSpecial thanks to Sam Guckenheimer, J.D. Meier, Mike Hatch, Lynn Langit from Microsoft, and Clyde Keeling at EDS for their help and subject-matter expertise.
About the AuthorMatt Valentine (mattva@microsoft.com) joined Microsoft in 2003 to focus on helping customers address business challenges by using world-class distributed-computing technologies. He has over 15 years of experience in architecting and delivering application, database, Web, and transaction systems solutions with major corporations, including AT&T, IBM, ATG, and Microsoft. Key distributed-application projects have included telecommunications OSS projects, distributed insurance solutions, and several of the world’s largest travel e-commerce sites. Matt holds a BS in Computer Science from Bucknell University and works on the Application Platform Marketing team at the Microsoft world headquarters in Redmond, WA. |
|