Microsoft Solutions Framework Version 3.0 Overview
Published: June 1, 2003
For more information on Microsoft Solutions Framework, see
http://www.microsoft.com/technet/itsolutions/techguide/msf/default.mspx
Credits Contributors Geoffrey Lory, Director, GTD Ltd. Derick Campbell, Product Manager, Microsoft Allison Robin, Director, MSF, Microsoft Gaile Simmons, Technical Editor, Microsoft Patricia Rytkonen, Technical Editor, Volt Technical Services Reviewers Jeff Carter, MSFmentor, U.S. Nathan Dolly, Microsoft Consulting Services, U.S. John S. Dranchak, Logic Control Holly Dyas, Microsoft Paul Glen, C2 Consulting, U.S. Tom Gordon, Framework Deliveries, LLC Paul Haynes, Microsoft Hiroshi Koisumi, Microsoft Consulting Services, Japan Eran Kolber, LIH Ltd, Israel Shawn LaBelle, Microsoft Premier Support, U.S. David Millet, Microsoft Consulting Services, U.S. Ed Musters, Systemgroup Management Services, Canada Alex Nicol, Microsoft Consulting Services, Canada David Preedy, Gainsford Associates, U.K. Jane Marie Rief, Thomson West Dolph Santello, Microsoft Consulting Services, U.S. On This PageAbstractMicrosoft® Solutions Framework (MSF) is a deliberate and disciplined approach to technology projects based on a defined set of principles, models, disciplines, concepts, guidelines, and proven practices from Microsoft. This white paper introduces MSF and provides an overview of its foundational principles, core models, and essential disciplines, focusing on how their application contributes to the success of technology projects. Finally, the paper provides references for further information about MSF and references for guidance in implementing MSF within an organization. In an appendix, the paper briefly compares and contrasts MSF to other industry methodologies and standards and describes how MSF can be used in combination with them. AudienceThis paper provides a starting point for anyone wishing to learn more about Microsoft Solutions Framework. Typical readers include consultants, executives, technology professionals, developers, and project managers who lead teams and organizations in the adoption of best practices to improve results or who simply want to improve their own skills when delivering business-driven technology solutions. A secondary audience for the paper includes the same professionals, but these readers have had some exposure to MSF. They are interested in how it relates to various industry standards and methodologies and how it can be used in conjunction with them. Brief descriptions in the appendix of some well-known methodologies help in placing the scope and application of MSF within this broader context. IntroductionCreating meaningful business solutions on time and within budget requires a proven approach. Microsoft Solutions Framework provides an adaptable framework for successfully delivering information technology solutions faster, requiring fewer people, and involving less risk, while enabling higher quality results. MSF helps teams directly address the most common causes of technology project failure in order to improve success rates, solution quality, and business impact. Created to deal with the dynamic nature of technology projects and environments, MSF fosters the ability to adapt to continual change within the course of a project. MSF is called a framework instead of a methodology for specific reasons. As opposed to a prescriptive methodology, MSF provides a flexible and scalable framework that can be adapted to meet the needs of any project (regardless of size or complexity) to plan, build, and deploy business-driven technology solutions. The MSF philosophy holds that there is no single structure or process that optimally applies to the requirements and environments for all projects. It recognizes that, nonetheless, the need for guidance exists. As a framework, MSF provides this guidance without imposing so much prescriptive detail that its use is limited to a narrow range of project scenarios. MSF components can be applied individually or collectively to improve success rates for the following types of projects:
MSF guidance for these different project types focuses on managing the “people and process” as well as the technology elements that most projects encounter. Because the needs and practices of technology teams are constantly evolving, the materials gathered into MSF are continually changing and expanding to keep pace. Additionally, MSF interacts with Microsoft Operations Framework (MOF) to provide a smooth transition to the operational environment, which is a requirement for long-term project success. MSF Origins and Brief HistoryThis section addresses the need for MSF and describes how it was created. Challenges and Opportunities It is well known that today’s business environment is characterized by complexity, global interconnectedness, and the acceleration of everything from customer demands to production methods to the rate of change itself. It is also acknowledged that technology has contributed to each of these factors. That is, technology is often a source of additional complexity, supports global connections, and has been one of the major catalysts of change. Understanding and using the opportunities afforded by technology changes has become a primary cause of time and resource consumption in organizations. Information systems and technology organizations (hereafter referred to as IT) have been frustrated by the time and effort it takes to develop and deploy business-driven solutions based on changing technology. They are increasingly aware of the negative impact and unacceptable business risks that poor quality results incur. In an attempt to do their work better, they seek guidance from leaders in the industry. Technology development and deployment projects can be extremely complex, which contributes to their difficulty. Technology alone can be a factor in project failures; however, it is rarely the primary cause. Surprisingly, experience has shown that a successful project outcome is related more to the people and processes involved than to the complexity of the technology itself. When the organization and management of people and processes breaks down, the following effects on projects can be observed:
Organizations that overcome these issues derive better results for their business through higher product and service quality, improved customer satisfaction, and working environments that attract the best people in the industry. These factors translate into a positive impact on bottom lines and improvements in the organization’s strategic effectiveness. Changing organizational behaviors to effectively address these challenges and achieve outstanding results is possible, but requires dedication, commitment, and leadership. To accomplish this, links need to be forged between IT and the business—links of understanding, accountability, collaboration, and communications. But results speak for themselves: IT must take a leadership role to remove the barriers to its own success. MSF was designed and built to provide the framework for this transition. A Solution Based on Experience Microsoft Solutions Framework was first introduced in 1994 as a loose collection of best practices from Microsoft’s product development efforts and Microsoft Consulting Services engagements. MSF has been evolving since then based on deliberate learning from the successful, real-world best practices of Microsoft product groups, Microsoft Services, Microsoft’s internal Operations and Technology Group (OTG), Microsoft partners, and customers. Elements of MSF are based on well-known industry best practices and incorporate Microsoft’s more than 25 years of experience in the high-tech industry. These elements are designed to work together to help Microsoft consultants, partners, and customers address many of the significant challenges encountered throughout the technology life cycle. MSF uses this pool of real-world best practices, which have been proved both internally and externally, and simplifies, consolidates, and verifies them for easier understanding and adoption by partners and customers. Now a robust and mature framework, MSF is managed and developed by a dedicated product team within Microsoft, with guidance and review from an international advisory council of subject matter experts. MSF also continues to draw upon current Microsoft experience. Other teams within various Microsoft lines of business regularly create, find, and share best practices and tools internally. The learnings from these internal project efforts are consolidated and distributed outside of Microsoft through MSF. MSF and Microsoft Operations FrameworkMicrosoft Operations Framework (MOF) provides operational guidance that enables organizations to achieve mission-critical system reliability, availability, supportability, and manageability of Microsoft products and technologies. MOF is based on an internationally accepted set of IT service management best practices called the IT Infrastructure Library (ITIL) from the U.K. government’s Office of Government Commerce (OGC). MOF can be viewed as a superset of the ITIL standards. MOF provides operational guidance in the form of white papers, operations guides, assessment tools, best practices, case studies, templates, support tools, courseware, and services. This guidance addresses the people, process, technology, and management issues pertaining to complex, distributed, and heterogeneous technology environments. Microsoft created MOF by using lessons learned through the evolution of MSF, building on top of ITIL’s best practice for organizational structure and process ownership, and modeling the critical success factors used by partners, customers, and Microsoft’s internal Operations and Technology Group (OTG). MSF and MOF share foundational principles and core disciplines. They differ in their application of these principles and disciplines, each using unique Team and Process models and proven practices that are specific to their respective domains. MSF presents team structure and activities from a solution deliveryperspective, while MOF presents team structure and activities from a service managementperspective. In MSF, the emphasis is on projects; in MOF, it is on running the production environment. MSF and MOF provide an interface between the solution development domain and the solution operations domain. MSF and MOF are designed to be used in conjunction throughout the technology life cycle to successfully provide business-driven technology solutions—from inception to delivery through operations to final retirement. MSF and MOF are intended for use within the typical organizational structures that exist in businesses today; they collectively describe how diverse departments can best work together to achieve common business goals in a mutually supportive environment. For more information on MOF, see: www.microsoft.com/technet/itsolutions/tandp/opex/default.asp. Key MSF TermsAs a framework, MSF contains multiple components that can be used individually or adopted as an integrated whole. Collectively, they create a solid yet flexible approach to the successful execution of technology projects. The following list defines these components.
The examples in the following diagram help to demonstrate the interconnections between some of the components of MSF. Or, to apply the above diagram in words: One of the foundational principles of MSF is to learn from all experiences. This is practiced deliberately at key milestones within the MSF Process Model, where the key concept of willingness to learn is a requirement for the successful application of the principle. The willingness to learn concept is exercised in the project through the proven practice of post milestone reviews. On large and complex projects, a Microsoft recommendation is the use of an objective outside facilitator to ensure a no-blame environment and to maximize learning. Inversely, the proven practice of defining and monitoring risk triggers (Microsoft recommends capturing them in an enterprise database or repository for cross-project use) is one application of the key concept of assessing risk continuously. These practices and concepts are part of the Risk Management Discipline exercised by all members of the MSF Team Model through every phase of the MSF Process Model, and employ the foundational principle of stay agile—expect change. The foundational principles, models, and disciplines are further explained in the following sections, which provide a context for their relationship to each other. Foundational PrinciplesAt the core of MSF are eight foundational principles:
Together, these principles express the MSF philosophy, forming the basis of a coherent approach to organizing people and processes for projects undertaken to deliver technology solutions. They underlie both the structure and the application of MSF. Although each principle has been shown to have merit on its own (see literature references at end of white paper), many are interdependent in the sense that the application of one supports the successful application of another. When applied in tandem, they create a strong foundation that enables MSF to work well in a wide range of projects varying in size, complexity, and type. The following selective examples illustrate how MSF applies each principle to MSF models or disciplines. Note that this paper does not attempt to describe every instance of the application of these principles within MSF. Foster Open Communications “Schedule disaster, functional misfits, and system bugs all arise because the left hand doesn’t know what the right hand is doing…. How, then, shall teams communicate with one another? In as many ways as possible.” Frederick P. Brooks, Jr1 Technology projects and solutions are built and delivered by human activity. Each person on a project brings his or her own talents, abilities, and perspective to the team. In order to maximize members’ individual effectiveness and optimize efficiencies in the work, information has to be readily available and actively shared. Without the open communication that provides broad access to such information, team members will not be able to perform their jobs effectively or make good decisions. As projects increase in size and complexity, the need for open communications becomes even more urgent. The sharing of information purely on a need-to-know basis (the historical norm) can lead to misunderstandings that impair the ability of a team to deliver a meaningful solution. The final result of such restricted communication can be inadequate solutions and unmet expectations. Open Communications in MSF MSF proposes an open and inclusive approach to communications, both within the team and with key stakeholders, subject to practical restrictions such as time constraints and special circumstances. A free flow of information not only reduces the chances of misunderstandings and wasted effort, but also ensures that all team members can contribute to reducing uncertainties surrounding the project by sharing information that belongs to their respective domains. Open and inclusive communication takes all forms within an MSF project. The principle is basic to the MSF Team Model, which integrates it into the description of role responsibilities. When used throughout the entire project life cycle, open communications fosters active customer, user, and operations involvement. Such involvement is also supported by incorporating the open communications concept into the definition of key milestones in the MSF Process Model. Communication becomes the medium through which a shared vision and performance goals can be established, measured, and achieved. Work Toward a Shared Vision “Before the project gets rolling, a team needs to buy in to a common vision. Without such a shared vision, high-performance teamwork cannot take place. A study of 75 teams found that in every case in which the team functioned effectively, the team had a clear understanding of its objective." —Steve McConnell2 All great teams share a clear and elevating vision. This vision is best expressed in the form of a vision statement. Although concise—no more than a paragraph or two—the vision statement describes where the business is going and how the proposed solution will help to achieve business value. Having a generally long-term and unbounded vision inspires the team to rise above its fear of uncertainty and preoccupation with the current state of things and to reach for what could be. Without a shared vision, team members and stakeholders may have conflicting views of the project’s goals and purpose and be unable to act as a cohesive group. Unaligned effort will be wasteful and potentially debilitating to the team. Even if the team produces its deliverable, members will have difficulty assessing their success because it will depend on which vision they use to measure it. Working toward a shared vision requires the application of many of the other principles that are essential to team success. Principles of empowerment, accountability, communication, and focus on business value each play a part in the successful pursuit of a shared vision, which can be difficult and courageous work. This need to work toward a shared vision is of such paramount importance that Jim and Michele McCarthy, in their book, Software for Your Head3, provide a roadmap for effectively and repeatedly bringing teams to the point of shared vision. Shared Vision in MSF Shared vision is one of the key components of the MSF Team and Process models, emphasizing the importance of understanding the project goals and objectives. When all participants understand the shared vision and are working toward it, they can align their own decisions and priorities (representing the perspectives of their roles) with the broader team purpose represented by that vision. The iterative nature of the MSF Process Model requires that a shared vision exist to guide a solution toward the ultimate business result. Without this vision, the business value of a solution will lean toward mediocrity. A shared vision for the project is fundamental to the work of the team. The process of creating that vision helps to clarify goals and bring conflicts and mistaken assumptions to light so they can be resolved. Once agreed upon, the vision motivates the team and helps to ensure that all efforts are aligned in service of the project goal. It also provides a way to measure success. Clarifying and getting commitment to a shared vision is so important that it is the primary objective of the first phase of any MSF project. Empower Team Members “On the best teams, different individuals provide occasional leadership, taking charge in areas where they have particular strengths. No one is the permanent leader, because that person would then cease to be a peer and the team interaction would begin to break down. The structure of a team is a network, not a hierarchy." -Tom DeMarco and Timothy Lister4 In projects where certainty is the norm and each individual’s contribution is prescribed and repeatable, less-empowered teams can survive and be successful. Even in these conditions, however, the potential value of the solution is not likely to be realized to the extent that it could be if all team members were empowered. Lack of empowerment not only diminishes creativity but also reduces morale and thwarts the ability to create high-performance teams. Organizations that single out individuals for praise or blame undermine the foundation for empowering a team. In an effective team, all members are empowered to deliver on their own commitments and to feel confident that other team members will also meet theirs. Likewise, customers are able to assume that the team will meet its commitments and plan accordingly. Building a culture that supports and nourishes empowered teams and team members can be challenging and takes a commitment by the organization. In The Empowered Manager5, Peter Block refers to empowerment as “enlightened self-interest” and describes it as our commitment to actions that express and move us toward that end. Empowered Team Members in MSF Empowerment has a profound impact on MSF. The MSF Team Model is based on the concept of a team of peers and the implied empowered nature of such team members. Empowered team members hold themselves and each other accountable to the goals and deliverables of the project. Empowered teams accept responsibility for the management of project risks and team readiness and therefore proactively manage such risk and readiness to ensure the greatest probability of success. Creating and managing schedules provides another example of team empowerment. MSF advocates bottom-up scheduling, meaning that the people doing the work make commitments as to when it will be done. The result is a schedule that the team can support because it believes in it. MSF team members are confident that any delays will be reported as soon as they are known, thereby freeing team leads to play a more facilitative role, offering guidance and assistance when it is most critical. The monitoring of progress is distributed across the team and becomes a supportive rather than a policing activity. Establish Clear Accountability and Shared Responsibility “Each [team] member’s relationship to the team must be defined in terms of the role to be assumed and the results the role is to produce. Eventually, any team effort boils down to the assumption of individual responsibilities and accountabilities.” —Carl Larson and Frank LaFasto6 Failure to establish clearly understood lines of accountability and responsibility on projects often results in duplicated efforts or missing deliverables. These are symptoms of dysfunctional teams that are unable to make progress in spite of the amount of effort applied. Equally challenging are autocratically run projects that stifle creativity, minimize individual contributions, and disempower teams. In technology projects where human capital is the primary resource, this is a recipe for failure. The success of cross-functional teams that have clear accountability and shared responsibilities was well documented in an exhaustive study performed by Larson and LaFasto.7 Their study showed that establishing well-understood lines of accountability and responsibility reduces uncertainty around the "who, what, when, and why," with the result that execution becomes more efficient and rewarding. Accountability and Responsibility in MSF The MSF Team Model is based on the premise that each team role presents a unique perspective on the project. Yet, for project success, the customer and other stakeholders need an authoritative single source of information on project status, actions, and current issues. To resolve this dilemma, the MSF Team Model combines clear role accountability to various stakeholders with shared responsibility among the entire team for overall project success. Each team role is accountable to the team itself, and to the respective stakeholders, for achieving the role’s quality goal. In this sense, each role is accountable for a share of the quality of the eventual solution. At the same time, overall responsibility is shared across the team of peers because any team member has the potential to cause project failure. It is interdependent for two reasons: first, out of necessity, since it is impossible to isolate each role’s work; second, by preference, since the team will be more effective if each role is aware of the entire picture. This mutual dependency encourages team members to comment and contribute outside their direct areas of accountability, ensuring that the full range of the team’s knowledge, competencies, and experience can be applied to the solution. Focus on Delivering Business Value “Experience had taught Thomas Edison to combine commercial and technical considerations. The ‘electric vote recorder,’ the first invention for which Edison received a patent, tallied votes quickly and was intended for use within legislatures. But when he approached a congressional committee about sales, the committee chairman told him, ‘Young man, that is just what we do not want.” (It would infringe on the sacred institution of the filibuster.) His machine was never produced, and he resolved not to devote his attention to the invention of anything that lacked ‘commercial demand.’” -Randall E. Stross8 Projects that skip, rush through, or are not deliberate in defining the business value of the project suffer in later stages as the sustaining impetus for the project becomes clouded or uncertain. Action without purpose becomes difficult to channel toward productive results and eventually loses momentum at the team level and within the organization. This can result in everything from missed delivery dates, to delivery of something that does not meet even the minimum customer requirements, to cancelled projects. By focusing on improving the business, team members’ activities will become much more likely to do just that. Tom Peters, author of Thriving on Chaos, frequently asserts that organizations and teams must maintain a climate of “business- mindedness.”9 While many technology projects focus on the delivery of technology, technology is not delivered for its own sake—solutions must provide tangible business value. Delivering Business Value in MSF Successful solutions, whether targeted at organizations or individuals, must satisfy some basic need and deliver value or benefit to the purchaser. By combining a focus on business value with shared vision, the project team and the organization can develop a clear understanding of why the project exists and how success will be measured in terms of business value to the organization. The MSF Team Model advocates basing team decisions on a sound understanding of the customer’s business and on active customer participation throughout the project. The Product Management and User Experience roles act as the customer and user advocates to the team, respectively. These roles are often undertaken by members of the business and user communities. A solution does not provide business value until it is fully deployed into production and used effectively. For this reason, the life cycle of the MSF Process Model includes both the development and deployment into production of a solution, thereby ensuring realization of business value. The combination of a strong multi-dimensional business representation on the team with explicit focus on impact to the business throughout the process is how MSF ensures that projects fulfill the promise of technology. Stay Agile, Expect Change “Agile managers understand that demanding certainty in the face of uncertainty is dysfunctional. They set goals and constraints that provide boundaries within which creativity and innovation can flourish.” —Jim Highsmith10 Traditional project management approaches and “waterfall” solution delivery process models assume a level of predictability that is not as common on technology projects as it might be in other industries. Often, neither the outcome nor the means to deliver it is well understood, and exploration becomes a part of the project. The more an organization seeks to maximize the business impact of a technology investment, the more they venture into new territories. This new ground is inherently uncertain and subject to change as exploration and experimentation results in new needs and methods. To pretend or demand certainty in the face of this uncertainty would, at the very least, be unrealistic and, at the most, dysfunctional. Agility in MSF MSF acknowledges the chaordic (meaning a combination of chaos and order, as coined by Dee Hock, founder and former CEO of Visa International)11 nature of technology projects. It makes the fundamental assumption that continual change should be expected and that it is impossible to isolate a solution delivery project from these changes. In addition to changes due to purely external origins, MSF advises teams to expect changes from stakeholders and even the team itself. For instance, it recognizes that project requirements can be difficult to articulate at the outset and that they will often undergo significant modifications as the possibilities become clearer to participants. MSF has designed both its Team and Process models to anticipate and manage change. The MSF Team Model fosters agility to address new challenges by involving all team roles in key decisions, thus ensuring that issues are explored and reviewed from all critical perspectives. The MSF Process Model, through its iterative approach to building project deliverables, provides a clear picture of the deliverable’s status at each progressive stage. The team can more easily identify the impact of any change and deal with it effectively, minimizing any negative side-effects while optimizing the benefits. Recent years have seen the rise of specific approaches to developing software that seek to maximize the principle of agility and preparedness for change. Sharing this philosophy, MSF encourages the application of these approaches where appropriate. MSF and agile methodologies are discussed later in this paper. Invest in Quality “Quality improvement is a never-ending journey. There is no such thing as a top-quality product or service. All quality is relative. Each day, each product or service is getting relatively better or relatively worse, but it never stands still.” —Tom Peters12 Quality, or lack thereof, can be defined in many ways. Quality can be seen simply as a direct reflection of the stability of a product or viewed as the complex trade-off of delivery, cost, and functionality. However you define it, quality is something that doesn’t happen accidentally. Efforts need to be explicitly applied to ensure that quality is embedded in all products and services that an organization delivers. Entire industries have evolved out of the pursuit of quality, as witnessed by the multitude of books, classes, theories, and approaches to quality management systems. Promoting effective quality involves a continual investment in the processes, tools, and guiding ideas of quality. All efforts to improve quality include a defined process for building quality into products and services through the deliberate evaluation and assessment of outcomes, that is, measurement. Enabling these processes with measurement tools strengthens them by developing structure and consistency. Most importantly, such efforts encourage teams and individuals to develop a mindset centered around quality improvement. The idea of quality improvement complements the basic human desires for taking pride in our work, learning, and empowerment. An investment in quality therefore becomes an investment in people, as well as in processes and tools. Successful quality management programs recognize this and incorporate quality into the culture of the organization. They all emphasize the need to continually invest in quality because the expectations of quality over time are increasing, and standing still is not a viable option. Investing in Quality in MSF The MSF Team Model holds everyone on the team responsible for quality while committing one role to managing the processes of testing. The Test Role encourages the team to make the necessary investments throughout a project’s duration to ensure that the level of quality meets all stakeholders’ expectations. In the MSF Process Model, as project deliverables are progressively produced and reviewed, testing builds in quality—starting in the first phase of the project life cycle and continuing through each of its five phases. The model defines key milestones and suggests interim milestones that measure the solution against quality criteria established by the team, led by the Test Role, and stakeholders. Conducting reviews at these milestones ensures a continuing focus on quality and provides opportunities to make midcourse corrections if necessary. An essential ingredient for instilling quality into products and services is the development of a learning environment. MSF emphasizes the importance of learning through the Readiness Management Discipline, which identifies the skills needed for a project and supports their acquisition by team members. Obtaining the appropriate skills for a team represents an investment; time taken out of otherwise productive work hours plus funds for classroom training, courseware, mentors, or even consulting, can add up to a significant monetary commitment. The Readiness Management Discipline promotes up-front investment in staffing teams with the right skills, based on the belief that an investment in skills translates into an investment in quality. Learn from All Experiences “Those who do not remember the past are condemned to repeat it.” —George Santayana13 When you look at the marginal increase in the success rate of technology projects and when you consider that the major causes of failure have not changed over time, it would seem that as an industry we are failing to learn from our failed projects. Taking time to learn while on tight deadlines with limited resources is difficult to do, and tougher to justify, to both the team and the stakeholders. However, the failure to learn from all experiences is a guarantee that we will repeat them, as well as their associated project consequences. Capturing and sharing both technical and non-technical best practices is fundamental to ongoing improvement and continuing success because it:
There are many practices that support a learning environment. Peter Senge’s The Fifth Discipline: The Art and Practice of the Learning Organization14 was one of the first books on creating a culture of learning. His more recent book, The Dance of Change,15 builds on his earlier work by including individual and team exercises, in-depth accounts of sustaining learning initiatives by managers and leaders in the field, and well-tested practical advice. Learning from All Experiences in MSF MSF assumes that keeping focus on continuous improvement through learning will lead to greater success. Knowledge derived from one project that then becomes available for others to draw upon in the next project will decrease uncertainty surrounding decision-making based on inadequate information. Planned milestone reviews throughout the MSF Process Model help teams to make midcourse corrections and avoid repeating mistakes. Additionally, capturing and sharing this learning creates best practices from the things that went well. MSF emphasizes the importance of organizational- or enterprise-level learning from project outcomes by recommending externally facilitated project postmortems that document not only the success of the project, but also the characteristics of the team and process that contributed to its success. When lessons learned from multiple projects are shared within an environment of open communication, interactions between team members take on a forward, problem-solving outlook rather than one that is intrinsically backward and blaming. MSF ModelsMSF models represent the application of the above-described foundational principles to the “people and process” aspects of technology projects—those areas that have the greatest impact on project success. The MSF Team Model and the MSF Process Model are schematic descriptions that visually show the logical organization of project teams around role clusters and project activities throughout the project life cycle. These models embody the foundational principles and incorporate the core disciplines; their details are refined by key concepts and their processes are applied through proven practices and recommendations. As each model is described, the underlying foundational principles and disciplines can be recognized. The MSF Team Model The MSF Team Model defines the roles and responsibilities of a team of peers working on information technology projects in interdependent multidisciplinary roles. The following diagram is a logical depiction of the model. The MSF Team Model is based on the premise that any technology project must achieve certain key quality goals in order to be considered successful. Reaching each goal requires the application of a different set of related skills and knowledge areas, each of which is embodied by a team role cluster (commonly shortened to role). The related skills and knowledge areas are called functional areas and define the domains of each role. The Program Management Role Cluster, for example, contains the functional areas of project management, solution architecture, process assurance, and administrative services. Collectively, these roles have the breadth to meet all of the success criteria of the project; the failure of one role to achieve its goals jeopardizes the project. Therefore, each role is considered equally important in this team of peers, and major decisions are made jointly, with each role contributing the unique perspective of its representative constituency. The associated goals and roles are shown in the following table. Table 1 MSF Team Model and Key Quality Goals
The MSF Team Model represents the compilation of industry best practices for empowered teamwork and technology projects that focus on achieving these goals. They are then applied within the MSF Process Model to outline activities and create specific deliverables to be produced by the team. These primary quality goals both define and drive the team. Note that one role is not the same as one person—multiple people can take on a single role, or an individual may take on more than one role—for example, when the model needs to be scaled down for small projects. What’s important in the adoption of the MSF Team Model is that all of the quality goals should be represented on the team and that the various project stakeholders should know who on the team is accountable for them. The MSF Team Model explains how this combination of roles can be used to scale up to support large projects with large numbers of people by defining two types of sub-teams: function and feature. Function teams are unidisciplinary sub-teams that are organized by functional role. The Development Role is often filled by one or more function teams. Feature teams, the second type, are multidisciplinary sub-teams that are created to focus on building specific features or capabilities of a solution. The MSF Team Model is perhaps the most distinctive aspect of MSF. At the heart of the Team Model is the fact that technology projects must embrace the disparate and often juxtaposed quality perspectives of various stakeholders, including operations, the business, and users. The MSF Team Model fosters this melding of diverse ideas, thus recognizing that technology projects are not exclusively an IT effort. For more information on the MSF Team Model, see the MSF Team Model white paper located at www.microsoft.com/technet/itsolutions/tandp/innsol/default.asp. The MSF Process Model Every project goes through a life cycle, a process that includes all of the activities in the project that take place up to completion and transition to an operational status. The main function of a life cycle model is to establish the order in which project activities are performed. The appropriate life cycle model can streamline a project and help ensure that each step moves the project closer to successful completion. A simple view of the MSF Process Model life cycle is shown below. The MSF Process Model combines concepts from the traditional waterfall and spiral models to capitalize on the strengths of each. The Process Model combines the benefits of milestone-based planning from the waterfall model with the incrementally iterating project deliverables from the spiral model. The MSF Process Model is based on phases and milestones. At one level, phases can be viewed simply as periods of time with an emphasis on certain activities aimed at producing the relevant deliverables for that phase. However, MSF phases are more than this; each has its own distinct character and the end of each phase represents a change in the pace and focus of the project. The phases can be viewed successively as exploratory, investigatory, creative, single-minded, and disciplined. Milestones are review and synchronization points for determining whether the objectives of the phase have been met. Milestones provide explicit opportunities for the team to adjust the scope of the project to reflect changing customer or business requirements and to accommodate risks and issues that may materialize during the course of the project. Additionally, milestones bring closure to each phase, enable a shift of responsibilities for directing many activities, and encourage the team to take a new perspective more appropriate for the goal of the following phase. Closure is demonstrated by the delivery of tangible outputs that the team produces during each phase and by the team and customer reaching a level of consensus around those deliverables. This closure, and the associated outputs, becomes the initiating point for the next phase. The MSF Process Model allows a team to respond to customer requests and to address changes in a solution midcourse, when necessary. It also allows a team to deliver key portions of the solution faster than would otherwise be possible by focusing on the highest priority features first and moving less critical ones to subsequent releases. The Process Model is a flexible component of MSF that has been used successfully to improve project control, minimize risk, improve product quality, and increase development speed. The five phases of the MSF Process Model make it flexible enough to be used for any technology project, whether application development, infrastructure deployment, or a combination of the two. For more information on the MSF Process Model, please see the MSF Process Model white paper located at www.microsoft.com/technet/itsolutions/tandp/innsol/default.asp. The integration of the MSF Process Model with the MSF Team Model makes a formidable combination for project success if effectively instilled into an organization. Collectively, they provide flexible but defined roadmaps for successful project delivery that take into account the uniqueness of an organization’s culture, project types, and personnel strengths. MSF DisciplinesThe MSF disciplines—Project Management, Risk Management, and Readiness Management—are areas of practice that employ a specific set of methods, terms, and approaches. These disciplines are important to the optimal functioning of the MSF Team and Process models. Their origin is outside of MSF; they are well documented within the industry and are supported by comprehensive bodies of knowledge. MSF has embraced particular disciplines that align with its foundational principles and models and has adapted them as needed to complement other elements of the Framework. In general, MSF has not tried to recreate these disciplines in full, but rather to highlight how they are adapted when applied in the context of MSF. The disciplines are shared by MSF and MOF, and it is anticipated that additional disciplines will be adapted in the future. The MSF Project Management Discipline MSF has a distributed team approach to project management that relates to the foundational principles and models stated above. In MSF, project management practices improve accountability and allow for a great range of scalability from small projects up to very large, complex projects. The MSF Project Management Discipline embraces and is broadly aligned with the major project management bodies of knowledge within the domain of technology projects. This includes the Project Management Institute (PMI®), the International Project Management Association (IPMA), and Prince2™ (PRojects in Controlled Environments). These various well-established organizations provide extensive coverage of generally accepted best practices, standards, and certification in the broad discipline of project management. There are several distinct characteristics of the MSF approach to project management that create the MSF Project Management Discipline. Some of these are stated here and discussed more fully below:
MSF, as a framework for successful technology projects, acknowledges that project management is accomplished through responsibilities and activities that extend beyond those belonging to one individual on a team to all lead team members and the MSF Program Management Role Cluster. The more widespread the need for these activities and responsibilities across the team, the greater the ability to create highly collaborative self-managing teams. However, the majority of the project management activities and responsibilities are encompassed in the MSF Program Management Role Cluster. This role cluster focuses on the process and constraints of the project and on key activities in the discipline of project management. In smaller projects, all the functional responsibilities are typically handled by a single person in the Program Management Role Cluster. As the size and complexity of a project grows, the Program Management Role Cluster may be broken out into two branches of specialization: one dealing with solution architecture and specifications, and the other dealing with project management. For projects that require multiple teams or layers of teams, the project management activities are designed to scale and allow for effective management of any single or aggregated team. This may require certain project management practices to be performed at multiple levels while other activities are contained within a specific team or level of the overall project and team. The exact distribution of project management responsibilities depends in a large part on the scale and complexity of the project. For a more comprehensive explanation of the MSF Project Management Discipline as well as a white paper on the PMBOK® from PMI and the MSF Project Management Discipline, see the white papers on these topics at www.microsoft.com/technet/itsolutions/tandp/innsol/default.asp. The MSF Risk Management Discipline Technology projects are undertaken by organizations to support their ventures into new businesses and technology territory with an anticipated return on their investment. Risk management is a response to the uncertainty inherent in technology projects, and inherent uncertainty means inevitable risks. This does not mean, however, that attempting to recognize and manage risks needs to get in the way of the creative pursuit of opportunity. Whereas many technology projects fail to effectively manage risk or do not consider risk management necessary for successful project delivery, MSF uses risk management as an enabler of project success. MSF views risk management as one of the MSF disciplines that needs to be integrated into the project life cycle and embodied in the work of every role. Risk-based decision making is fundamental to MSF. And by ranking and prioritizing risks, MSF ensures that the risk management process is effective without being burdensome. Proactive risk management means that the project team has a defined and visible process for managing risks. The project team makes an initial assessment of what can go wrong, determines the risks that must be dealt with, and then implements strategies for doing so (action plans). The assessment activity is continuous throughout the project and feeds into decision making in all phases. Identified risks are tracked (along with the progress of their action plans) until they are either resolved or turn into issues and are handled as such. Below is a diagram of the proactive risk management process. This six-step risk management process is integrated with the Team Model through definitions of role responsibilities and with the Process Model through specified actions and milestone deliverables, creating a comprehensive approach to project risk management. The process ends with the learning step—the capture and retention of the project risks, mitigation and contingency strategies, and executed actions for future review and analysis. This knowledge warehouse of risk-related information is a necessary part of creating a learning organization that can utilize and build upon past project knowledge. MSF’s approach to risk management is distinctive in that the measure of success is what is done differently, rather than what forms are filled in. In many projects, risk management is paid lip-service and either ignored entirely (perhaps after an initial cursory risk assessment) or viewed as a bureaucratic ritual. MSF avoids an over-burdensome process, but places risk management at the heart of the project’s decision making. The MSF Readiness Management Discipline The Readiness Management Discipline of Microsoft Solutions Framework defines readiness as a measurement of the current versus the desired state of knowledge, skills, and abilities (KSAs) of individuals in an organization. This measurement concerns the real or perceived capabilities of these individuals at any point during the ongoing process of planning, building, and managing solutions. Readiness can be measured at many levels—organizational, team, and individual. At the organizational level, readiness refers to the current state of the collective measurements of individual capabilities. This information is used in both strategic planning and evaluating the capability to achieve successful adoption and realization of a technology investment. Readiness management guidance applies to such areas as process improvement and organizational change management. The MSF Readiness Management Discipline, however, limits its focus to the readiness of project teams. It provides guidance and processes for defining, assessing, changing, and evaluating the knowledge, skills, and abilities necessary for project execution and solution adoption. Each person performing a specific role on the project team must be capable of fulfilling all the key functions that go with that role. Individual readiness is the measurement of each team member’s current state with regard to the knowledge, skills, and abilities needed to meet the responsibilities required by his or her assigned role. Readiness management is intended to ensure that team members are fully qualified for the work they will need to perform. The MSF Readiness Management Discipline reflects the principles of open communication, investing in quality, and learning. This discipline acknowledges that projects inherently change the environment in which they are developed as well as the environment into which they are delivered. By proactively preparing for that future state, the organization puts itself in a position for better delivery as well as faster realization of the business value, the ultimate promise of the project. Microsoft’s Use of MSFMicrosoft Solutions Framework is now a part of Microsoft Windows® Engineering Services and Solutions (WESS), which manages and maintains it. MSF was recently transferred from Microsoft Consulting Services (MCS) to WESS in order to extend its reach beyond the services of MCS and to deliberately embed the principles of MSF within Microsoft product documentation, solution accelerators, and service offerings. MSF in Microsoft Product Groups and Services Microsoft product groups utilize a collection of proven practices, collected from various sources, that are applied to the development of most Microsoft products. MSF is primarily used by Microsoft product groups to structure and enhance solution delivery documentation for products, service offerings, and solution accelerators. Product groups that review MSF can recognize the similarities between it and the way they work. They also acknowledge that while MSF has enhancements that make it more appropriate for customers, the foundation is basically the same. Occasionally, Microsoft product group employees call the practices they’re using MSF, but more often they are not named—they are simply the way Microsoft works. Microsoft Services, in particular Microsoft Consulting Services (MCS), use MSF regularly as the defining structure for their engagements related to delivering technology solutions and as the knowledge base they share with customers. In fact, MSF was maintained by MCS for many years for just these purposes. With such universal application, MSF effectively meets the variable needs of consulting firms, and many Microsoft Certified Partners have adopted and extended MSF for their own purposes. When MCS engagements provide specific services that do not span the solution delivery life cycle (such as quality assurance reviews), consultants selectively use elements of MSF, as appropriate. If MCS is not leading the project (for example, when they are subcontracting to another consulting firm that has its own engagement methodology), MCS works within this context, adding value through the use of MSF where applicable, while adhering to the chosen methodology. Many blended project teams will explicitly discuss how MSF and a specific methodology can be combined and used together for maximum positive impact and team performance. Service operations improvement projects delivered by Microsoft Services use MSF to structure the project and take advantage of the knowledge base within Microsoft Operations Framework (MOF) to put the actual improvements in place. MSF Elsewhere in Microsoft Outside of the product groups, MSF has been widely adopted for the delivery of a variety of technology services and solutions in various lines of business within Microsoft. Microsoft Services widely uses MSF (described above), as do Microsoft’s Operations and Technology Group (OTG), Microsoft Training and Certification, world-wide business operations, and even teams within Microsoft Research. Implementing MSFTechnology has the potential to transform an organization to be much more effective, enabling new opportunities previously unavailable. Most organizations rely on technologies themselves for this transformation, whereas competitive advantage is gained not just from which technologies are used, but how well they are used. MSF helps guide teams through this transformation. With the appropriate stakeholder support, training, and mentoring, embracing MSF for a few technology solutions is fairly straightforward. Taking an iterative approach to its implementation helps keep goals achievable, enabling teams to learn as they go. Embracing MSF organizationally, however, is a demanding initiative that requires leadership support and careful planning. An effort of this nature may entail some change in organizational culture as well as individual habits. This makes it similar in many ways to the introduction of a new solution, so it is not surprising that many MSF techniques can be usefully applied to the implementation of MSF itself. Specifically, these would include a clear vision, representation of similar roles, versioned releases, risk and readiness management, and learning from experience. Microsoft recognizes the challenge this represents and has established many channels for providing training and assistance to organizations implementing MSF. Learning MSF Customers can learn about MSF through several vehicles, including:
Using MSF After learning more about MSF, readers may wish to implement it within their organizations. Organizational adoption is much easier when MSF is applied to a few projects first—nothing promotes successful change quite like success. Similarly, organizations that successfully utilize MSF, even if only on a few projects, continue to enjoy highly capable teams and opportunities for internal sharing, leadership, and mentoring long after the initial projects end. MSF leadership, guidance, and mentoring are available through the following resources:
SummaryMicrosoft Solutions Framework (MSF) is a powerful tool that helps organizations address the key areas critical to technology project success—people and processes. Originating from real-life projects of Microsoft and its partners and customers, MSF provides guidance on the application of a defined set of principles, models, disciplines, concepts, and proven practices that have been shown to help prevent the primary causes of technology project failure. This white paper has provided an introduction to and overview of the foundational principles, core models, and disciplines of MSF, with references to additional material for more in-depth coverage of specific topics. It has explained the relationship of MSF to other industry methodologies and standards and recommended an approach to implementing and adopting MSF in an organization, along with suggested guidance and assistance. For more information: Microsoft Solutions Framework: www.microsoft.com/technet/itsolutions/tandp/innsol/default.asp Microsoft Operations Framework: www.microsoft.com/technet/itsolutions/tandp/opex/default.asp Appendix: MSF, Industry Standards, and MethodologiesMSF has been used successfully by many organizations to improve their solution delivery success rates and quality, independent of the adoption of any industry standards or methodologies. However, as a framework, MSF readily supports, co-exists with, and augments industry standards and methodologies for organizations that have previously adopted them. MSF’s foundational principles provide a good indication of whether a particular methodology may be compatible with MSF. Those with similar principles will generally provide a good fit. Many organizations have experience with different industry standards and methodologies. Several of the more prevalent ones are itemized below with a brief explanation of their touch points and similarities and differences with MSF. This section is not intended to provide thorough comparisons; it merely introduces the relationship between MSF and each methodology or standard. The goal of MSF is to deliver successful, high-quality, business-driven technology solutions—balancing the need for flexibility with meeting commitments quickly, managing costs, and minimizing risk. Each of the industry standards and methodologies described below has specific applications, serves unique purposes, or is limited to a particular domain; their goals are different from those of MSF. For these reasons, Microsoft does not explicitly endorse or recommend the use of an industry standard or methodology without first understanding the specific areas an organization seeks to improve. Organizations can and have seen benefits from their adoption; but if organizations do not first ensure that the goals of a standard or methodology are compatible with their own business objectives, difficulties can arise. MSF and the Software Engineering Institute (SEI) Capability Maturity Model Integration (CMMI) The Capability Maturity Model® Integration (CMMI®) is a collaborative effort to integrate systems and software disciplines into one process improvement framework. The CMMI models build on and extend the best practices of the Capability Maturity Model for Software (SW-CMM®), the Systems Engineering Capability Model (SECM), and the Integrated Product Development Capability Maturity Model (IPD-CMM). The primary focus of CMMI is the application of models to support process improvement, guide quality processes, and provide a yardstick for appraising current practices in key process areas. CMMI puts in place a means for modeling, defining, and measuring the maturity of the processes used by software development professionals. It is geared to give organizations a benchmark for comparing their software project processes, as well as guidelines for improving them. Although the MSF Process Model provides guidance and proven practices for process improvement in meaningful areas, MSF itself is not intrinsically process-centric. Designed as a flexible approach to improving project success, MSF includes such non-process elements as envisioning, teaming, and leadership. MSF focuses on creating successful technology project teams that deliver through effective processes, but MSF does not address organizational improvement or establishing organizational processes as CMM does. Both CMMI and MSF share the same goals of continual improvement and learning from all experiences to continuously refine best practices. Each captures practices that the other does not, but their content overlaps. CMMI, through its defined stages of process maturity, uses a prescribed appraisal method that is designed to compare current processes to benchmarked models. MSF does not attempt to measure or assess either the capability or maturity of an organization’s processes but has instead proven to be a very useful and flexible framework for organizations that are evolving their capability maturity to meet the intent of CMMI. For further information on the CMM, consult the book by Paulk et. al, The Capability Maturity Model, Guidelines for Improving the Software Process. MSF and Agile Software Development Methodologies Agile methods, such as Lean Development, eXtreme Programming, and Adaptive Software Development, are software development approaches that embrace practices that are adaptive versus predictive, people/team centric, iterative, feature- and deliverable-driven, communication-intensive, and require direct business involvement. In comparing these attributes to the MSF foundational principles, MSF and agile methodologies are very much aligned in both principles and practice for software development in environments that require a high-degree of adaptability. MSF, however, encompasses a broader field than these agile methods. Agile methodologies are specific to software development and are considered optimal on projects where there is enough uncertainty that exploration and progressive understanding of requirements favors this highly adaptive approach. MSF advances an approach that can easily incorporate the practices of agile methods where appropriate, but is flexible enough to also accommodate projects where higher levels of structure for optimizing processes can yield greater dividends. MSF is also broader in the project issues it addresses. Agile methodologies develop practices that are most useful and primarily applied during the design and development phases of a project life cycle. MSF readily incorporates these practices into software development projects, but adds the upfront activities of deliberately capturing, documenting, and defining business value through a more diligent envisioning process. Similarly, MSF adds the back-end phase of implementation that includes transitioning the software from development to operations. MSF and Project Management Bodies of Knowledge The discipline of project management, with roots in mature industries such as engineering, pharmaceuticals, and construction, has spawned several nationally and internationally recognized project management organizations, each with its own respective body of knowledge. The Project Management Institute (PMI®), the International Project Management Association (IPMA), and PRINCE2, to name just a few, all provide organizations with a standard approach to the management of projects. MSF embraces these collective bodies of knowledge and associated skills, tools, and techniques as essential competencies on any project team. Given the importance of such skills on the success of technology projects, MSF encourages the distribution of project management activities throughout the entire team. This shared responsibility of project management is a key differentiator of MSF compared to other methodologies, which generally prescribe a “top-down” approach to project management where the project manager is often synonymous with "who’s in charge" on the project. Conversely, the distribution of project management activities across the multidisciplinary roles of the MSF Team Model maintains the balance of the team of peers. The MSF Project Management Discipline described earlier in this paper has been influenced by the PMBOK. However, as just one component of the total framework, the MSF Project Management Discipline is not MSF. As a complete framework, MSF adds other knowledge areas beyond those of project management, such as guidance on software architecture and design. MSF itself is also part of a larger framework, the Microsoft Enterprise Services Framework, which includes operational management practices embodied as Microsoft Operations Framework (MOF), mentioned earlier in this paper. MSF and the International Organization for Standardization (ISO) The ISO 9000 family of standards represents an international consensus on good management practices for enabling organizations to reliably and repeatably deliver products or services that meet clients’ quality requirements. Originating in manufacturing and process control, these good practices have been distilled into a set of standardized requirements for a quality management system that can be used by any organization, regardless of what the organization does, its size, or whether it’s in the private or public sector. ISO 9000 provides a framework for taking a systematic approach to managing business processes. ISO 9000 lays down what requirements your quality system must meet, but does not dictate how they should be met in an organization. ISO 9000 is concerned with the way an organization goes about its work—and not directly with the result of this work—ISO 9000 standards are not product standards. The family also includes models against which this system can be audited to give the organization and its clients assurance that the system is operating effectively. The three quality assurance models are ISO 9001, ISO 9002, and ISO 9003. Compared to the audience for most ISO standards, MSF is geared to a much narrower audience—those developing and deploying technology solutions in the IT field. MSF focuses more on how to build quality into the services and products of an organization and less on meeting the specific requirements of a quality system. An element that MSF and the ISO standards have in common is that they are both based on documenting proven practices. However, ISO specifies no particular approach for doing this, so an organization a can define process in a way that best enables it to bring its business under control. MSF does define an approach, within its technology domain, that includes organizing people and processes and adhering to MSF disciplines in order to produce quality products and services. Effective application of Microsoft Solutions Framework can be useful to an organization in support of its compliance with ISO standards. Given that an ISO approach is conducive to minimizing variances and ensuring compliance to a process, there is typically more applicability for this approach in deployment projects where there are higher levels of certainty and repeatability than in software development projects where higher levels of creativity and uniqueness of outcomes are encouraged. Nevertheless, an ISO approach and associated standards are very applicable within the quality plan of any technology project to ensure higher levels of reliability in the solution. 1 Frederick P. Brooks, Jr, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (Boston, MA: Addison-Wesley, 1995), 74-75. 2 Steve McConnell, Software Project Survival Guide (Redmond, WA: Microsoft Press, 1998), 86. 3 Jim and Michele McCarthy, Software for Your Head (Boston, MA: Addison-Wesley, 2002), 273, 277. 4 Tom DeMarco and Timothy R. Lister, Peopleware: Productive Projects and Teams (New York, NY: Dorset House Publishing, 2000), 155. 5 Peter Block, The Empowered Manager (San Francisco, CA: Jossey-Bass Inc., Publishers, 1987), 108. 6 Carl Larson and Frank LaFasto, Teamwork: What Must Go Right/What Can Go Wrong (Newberry Park, CA: Sage Publications, 1989), 55. 7 Ibid. 8Randall E. Stross, The Microsoft Way: The Real Story of How the Company Outsmarts Its Competition (Cambridge, MA: Perseus Publishing, 1997), 51. 9 Tom Peters, Thriving on Chaos (New York, NY: First Harper Collins Publishers, 1987) 10 Jim Highsmith, "What Is Agile Software Development?" CrossTalk (October 2002), 4. 11 Ibid. 12 Tom Peters, Thriving on Chaos, (New York, NY: HarperCollins Publisher, 1987), 98. 13 George Santayana, The Life of Reason, vol. 1 (New York, NY: MacMillan Pub Co., 1981). 14 Peter Senge, The Fifth Discipline: The Art and Practice of the Learning Organization (Garden City, NY: Doubleday & Company, Incorporated, 1994). 15 Peter Senge, Charlotte Roberts, Richard Ross, Art Kleiner, and George Roth, The Dance of Change: The Challenges of Sustaining Momentum in a Learning Organization (Garden City, NY: Doubleday & Company, Incorporated, 1994). The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication. This white paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred. © 2003 Microsoft Corporation. All rights reserved. Microsoft, MSDN, and Windows are a registered trademark of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. |