Introduction to Microsoft software development model-collection

Source: Internet
Author: User

Author: hyenachenyao (bluehyena)-from Microsoft secrets published by Peking University Press

North
The book "Microsoft's secrets" published by Peking University press at the end of 96 is the most professional and in-depth book I have ever seen about the software product development process of Microsoft. Through this book, we can see that
How does the company manage software product development scientifically and effectively? I think these experiences are useful to a wide range of software developers in China, especially those who are concerned about the development of China's software industry are of great benefit. Therefore
This book extracts some content related to software product development (chapter 4 "product definition and development process") and shares it with you. As an excerpt from this article, it will naturally fall short of ten thousand. Therefore, we suggest you
Read the original book.

In the product definition and development process, Microsoft follows a strategy that can be called "stimulating creativity by improving features and fixed resources. The strategy can be divided into five principles:

I. Major projects are divided into several milestone important stages. There is a buffer time between stages, but no separate product maintenance is performed.

2. Use imaginary descriptions and brief descriptions of features to guide the project.

3. Determine product features and their priorities based on user behaviors and related user data.

4. Establish a modular and horizontal design structure, and reverse the project structure to the features of the product structure.

5. Personal Responsibility and fixed project resource implementation control.

Principle 1: major projects are divided into several milestone important stages. There is a buffer time between stages, but there is no separate product maintenance.

Project schedule and milestones

Micro
Softcom often uses "synchronization-stable product development ". The life cycle of a typical project consists of three phases: the description of the completion function of the planning phase and the final formulation of the Progress table.Source code, Stabilization
The product is completed in stages to enable batch production. The cycle methods in these three phases and stages are different from those in the traditional waterfall development mode. The latter is based on requirements, detailed design, and modularization.CodeDesign
It consists of testing, integration testing, and system testing. Microsoft's three stages are more like a risk-driven, progressive "Spiral" life cycle model.

The product in the planning stage is an imaginary description.
The description file is used to explain what the project will do and what it will do. Before the management personnel draw up the schedule and the developer writes the Code, these things have promoted people to think about the design issues.
The development phase is centered on three major internal product releases; the finalization phase focuses on extensive internal and external tests. Throughout the product production cycle, Microsoft uses the concept of buffer time. Buffer time enabling
The development team can deal with unexpected difficulties and changes that affect the time schedule. It also provides a means to ease the conflict between timely delivery and an attempt to accurately estimate the delivery time.

Development and Stability
During all the time of the finalization phase, a project usually uses 2/3 of the time for development and 1/3 of the time for stabilization. (Vice President of office once outlined the general progress as follows: "generally
In the overall schedule, the product is written in half the time, leaving the other half time for debugging or dealing with accidents. In this way, if I have a two-year project, I will use one year to complete the first thought ...... If
A little troublesome, so I will remove the features that I think are not very important. ") This milestone makes Microsoft managers have a clear picture of what the product development process has taken, and after the development stage
Period has the ability to flexibly delete some product features to meet the requirements of the delivery period.

PLANNING PHASE

The planning phase is in the life cycle of a project, all carried out before development
The scheduled time. The planning stage produces an imaginary description, marketing plan, design goal, an initial product description, interface standards specified for integrating components developed by other groups, initial test plan,
A document Plan (printed documents and online help form) and a list of availability issues. The planning phase begins with an imaginary description. Imaginary description from product managers and various product unitsProgramManager; it is a production
Marketing ideas of product operations, including analysis of competitor products and planning of displayed versions. The imaginary description may also discuss the problems that must be solved in the previous version and the necessary achievements that should be added.
Yes. All of these are based on the analysis of customers and markets and the information obtained from the Product Support Service Group.

The description file starts with an outline and then defines new or added product features.
Assign a different priority to it. The description file is only a preliminary overview of product features. from development to project completion, it needs to be added or changed by 20%-
30%. Although the change is generally small in the later stages of the lifecycle, the more late the change, the more reason the developer must make the change.

Generally, the program manager uses VB to create a project prototype. They also carried out design feasibility studies to understand the trade-offs in the design and make decisions involving product descriptions as soon as possible.

Instructions on important products should be reviewed by the company's senior leadership. For less-active products, some managers should complete them.

Development Phase

Open
The plan for the launch phase allocates a set of features for each of the three or four major milestone versions, specifying the details of the features
And technical relevance, record the tasks of the single developer and the estimation of the progress. In the development phase
The issuer writes the source code under the guidance of the functional description. The tester writes the test project team to check whether the product features and work scope are normal, and the user education staff compiles the draft document.

Test
When the tester finds an error, the developer does not stay for further processing, but immediately corrects the error, and
The test is carried out continuously and automatically. This improves product stability and makes the release date easier.
Estimated. After reaching a certain stage of the project (40%), the developer tries to "Lock" the main functions of the product.
Only small changes are allowed. If developers want to make major changes after this point, they must contact the program manager and the Development Manager, and may ask the product department manager for advice.

I
Projects are organized around 3 or 4 major internal versions, or "milestone sub-projects.
Generally, two to four months are used to develop each major milestone version. Each version includes its own encoding,
Optimize, test, and debug activities. The project retains 1/3 of the total development time for accidents, that is, the "buffer time ".
(Apple's team is isolated and independent, and they develop their own things. In three months,
Boland will integrate all things; Boland will develop in an incremental way, that is, divide the work
A lot of small parts, and always make development work. It seems that this progressive method is more expensive.
Long, but in fact it has not been a long time, because this allows you to always grasp the real situation of things .)

After the last major milestone version is tested and stabilized, the product will be "fixed appearance", that is, determine the main user interfaces of the product, such as menus, dialogs, and file windows. Afterwards, major changes will not be made to the user interface to avoid the difficulty of synchronizing and modifying the corresponding documents.

Stabilization phase

The stabilization phase focuses on product testing and debugging. At this stage, the project should try not to add new functions unless it is a competitor or a change in the market. The stabilization phase also includes buffer time to cope with unpredictable problems or delays.

Buffer time in the project schedule

Micro
The soft-use buffer plan is used to strike a balance between the highest efficiency and better predictions for the future. Such payables
The time of emergencies is part of every major milestone in the development and stabilization process. Buffer time
Used to make up for the incomplete understanding of features, technical difficulties, or neglect to write tasks
Progress or unexpected difficulties. The buffer time helps a project adapt to unexpected events.

Principle 2: guiding the project by Using Imaginary descriptions and brief descriptions of features

Is
A sufficient development framework is provided to enable continuous development, and to accommodate the changes and
To maintain sufficient flexibility, Microsoft uses imaginary descriptions and summary descriptions to guide project development, instead
At the beginning, I tried to write a complete and detailed description. The so-called imaginary description is composed of a program manager and a market camp.
A very short document jointly prepared by the product scheduler of the sales group, which mainly defines the product development objectives
Mark (details of the product are not involved !). Generally, an imaginary description of a brand new product is relatively detailed.
A rough description file is also included. In general, Microsoft's requirements for imaginative descriptions are: the shorter the better, the better, try to explain "what the product does not do" (rather than "what the product wants to do "!).

Operation
In an imaginary description, the program manager starts to write a function description file, which explains what features the product has
And how these features interact with other features and products. At first, it was just an overview file
The program manager will add more details to the project at any time, and the final description file will become
The user manual is the same. The complete description not only describes the latest features of the product, but also serves as the basis for testing and evaluating the product before it is delivered.

Imaginary description helps determine which features to delete

Various development teams in Microsoft use imaginary descriptions to help refine the defined themes of the product version, and then use this subject to determine whether to add various possible features of the product. Do not change the subject easily. Otherwise, it may cause confusion in product development.

Write instructions

Description
The clear document starts between all members of the product team, between the product team and the management department.
The role of transmitting product ideas and requirements. The description file must clearly describe the product features (describe each feature
From the user's point of view. If the feature has an interface,
It should also include one item to show the effect of the Interface) and assign it to the corresponding priority. The Program Manager
Sets up the Project Development Initiation table. In addition, it should include the following items:
Purpose: To list what a product is and what it is, to define a customer, to define a competitive product, and to produce
Product requirements for the system (including the operating system version, Minimum Memory Requirements, hard disk space, processor speed and display resolution), any dependence on third parties (such as printer drivers, components.

The program manager is responsible for coordinating and "writing down" the description

The program manager should consider the following issues:

* What are the key points of this feature?

* How do users use this feature?

* Is this feature meaningful?

* Are similar features in this product or other Microsoft products?

* Which of the following issues have been rectified?

* Is the communication in the group satisfactory?

Finally, the program manager decides the content of the feature through a joint discussion with the developers in the group and writes it down.

Build a prototype

Prototype construction is the best way for the program manager to specify a new product or a new version, which makes pre-development testing possible in many aspects, especially in terms of availability, it also helps to make a good understanding of the interaction with the user, it can also make the product description more compact.

Microsoft developers usually use VB to construct a user interface prototype, but paintbrush is also a useful tool for building computer screen models.

Rigid instructions turn into a live File

Description
It should not be too detailed to limit the invention and creation. During project development, describe the earlier version of the document.
There are considerable increases and changes. As the changes described may cause significant changes in the development work
Microsoft usually focuses on those features that do not have any user interfaces, because
It is essential to understand how users respond to them, that is, these features are unlikely to change. And then face its characteristics.

However, after a product is developed into a certain program, for example, after 40%, the program manager must strictly control the feature modification (mainly to add new features), otherwise it will not only cause development delay, it also compresses the available test time.

Principle 3: Determine product offerings and their priorities based on user behaviors and related user information

It is usually difficult for a development project to determine what features should be included in the final product. For this reason, Microsoft adopted a method called "behavior-based plan" to select features and optimize the first-level arrangement.

Base
The behavior-based planning method begins with systematic research on user behavior, such as writing letters or budgeting. Then, the root
It is evaluated by a program that supports important or frequent user behaviors. Optimization
The point is a more rational discussion of feature trade-offs, a better arrangement of what the customer wants, and a given feature.
Whether it facilitates more concentrated debates on specific tasks, more readable descriptions, and better synchronization in marketing, user education, and product development.

Behavior-based plan in Feature Selection and priority arrangement

Base
The key point in the behavior planning method lies in the comparison between user behavior, product characteristics, and behavior and characteristics.
Department contact to analyze the product. Program Managers and product planners divide the user tasks or solutions the product tries to support
About 20 "behaviors", and then they try to map behaviors (and any sub-behaviors) into Microsoft's current features and Competitions
Competing product features. They also map behaviors to different customer images or different market segments.

When describing a new version of a product, action-based planning helps program managers and developers concentrate on their energy and creativity. There are no more than four major actions to join a project such as Excel in each new version. Most of the mechanisms are directly mapped to these actions. This method enables the project to classify user values based on features.

By classification, program managers and developers are encouraged to take actions to support as many behaviors as possible. This benign competition is beneficial to users and increases productivity.

Fear data for customer behavior rather than product characteristics

Based on and for developing a plan, the project is first concentrated in the plan phase, followed by the characteristics. Programmers and marketers do not think about and exclude their favorite features, and then draft imaginary descriptions around them. What they really do is to list what a customer does, and then concentrate their imaginary descriptions on the features that support those behaviors.

Behavior-centric comprehensive consideration of Products

Because the behavior-based planning method focuses on the entire product, it helps project members who work on different functions to understand what the product is doing, and how the corresponding features of other products can support behaviors that require or do not require other application software products.

Conduct marketing research to support behavior-based planning

In order to support behavior-based planning, product managers from marketing groups, program managers and developers, should work together to conduct some joint research, for example, to guide the user's research work. However, in general, product managers do a lot of research and can make it more clearly affect the evolution of Microsoft products.

Principle 4: Establish a modular and horizontal design structure, and make the project structure reflect the characteristics of the product structure

Micro
A key concept in software product design is the basic structure of the product, especially for applications with short lifecycles,
As the project progresses, it becomes more simple (rather than complex ). When the development team constructs the first version of a product
They use more hierarchical structures to better define an initial architecture for product design. Over time
To a single structure, so that the project can focus on feature development. Project needs to gradually renew and delete me, renew
It is time to change and develop me, and to increase the consistency of features and operations between products. Microsoft is becoming increasingly stressed
Share features between products. Sharing helps to unify the "performance and feeling" of different products.
It also facilitates users who need more than one application software, reduces code duplication, and reduces the size of a single application software.

Microsoft uses a feature Group to organize product development. This method makes it easy for everyone to understand how the group is associated with the entire product. The project starts with the summary of the provision. The summary is in the form of a list of content that has been prioritized, involving the relatively independent features to be developed in the next version of the product for development by separate feature groups.

Program Managers and developers divide projects into feature subsets and allocate them to each feature group for production in 3 to 4 major internal project milestones. This product organization and development method enables Microsoft to gradually add product functions by simply adding developers and creating a large group.

Use features (and functions) as the Development Unit

The features of Microsoft products are relatively independent functional units that are ultimately visible to users, such as building materials, especially for software products. System software products, such as the features of NT or 95, are usually invisible to end users. Microsoft and other companies sometimes simply call these invisible features "functions ".

The program manager is responsible for developing a set of features or functions to implement the process from being tested, documented, and finally completed. They must work with developers to estimate the schedule and improve each feature. The developer also needs to store one or more files on an Internet development computer to save the source code of the feature program.

Only one developer is needed for the development and improvement of most features, while some large features require a small group.

The product structure is the cornerstone of its long-term structural integrity.

Production
Product structure is the basis of the product. It specifies important structural components and how these components are assembled together.
The product structure and components used to assemble the structure provide the pillar for implementing product features (that is, detailed design and coding.
The product structure is usually not directly visible to end users. Only the features to be implemented by the structure are visible.
The product structure is also the cornerstone of the long-term structural integrity of the product. Any changes to product functions should not lead to potential dismounting of product structures.

Product hierarchy

Pair
In the product, you can also use the hierarchical structure method for analysis. Generally, a well-defined hierarchy helps
The product features can be flexibly added, deleted, and improved. In addition, a good hierarchy helps products on different platforms
. (For example, Excel defines a total of five layers, of which only the underlying operating system layer is platform-related.
The other layers are implemented by calling the API interfaces provided by the lower layer, so the porting is extremely convenient. In Windows
In 95, the concept of "Virtual Machine" is used to support 16-bit, 32-bit, and DOS programs .)

Small structure document: the source code is a unique file

Besides
API documentation. Microsoft does not generate corresponding documents for its product structure, although sometimes senior developers may write
Lower-level structure. For complex features, many developers record and review knots specific to their responsibilities at certain points
Details, but this job is optional and is not enforced. In addition to source code files and features, there are not many
The group of new programmers is responsible for describing documents of a certain layer of structure (the main data structure, how to work, etc ). However
These files are not updated frequently, and managers do not require the project team to generate such internal documents. In the relevant plain text
Does not involve implementation issues. Developers should know how to implement or learn. Record mark
So few structure documents are because "An developer's job is to write the code we want to sell, rather than spending time writing high-level design files", "design files should not be separated from source code ".

Separate code and "keep things simple"

Feature team and team lead as "Content Expert"

Feature
A sex group is generally composed of three to eight developers working in the relevant feature areas. Group's
The scale is often determined by the experience and ability of the group leader. The feature team lead reports to the project development team and is responsible for recommending
The project development lead has a more global view of the product, which is the most
Discover problems related to departments. Each person in the feature group is an "expert" in this field and they understand
How to use products, how to understand the products of competitors, and where to go in the future. Usually to facilitate communication and improve the organizational structure of the software (the software tends to map out the structure
Its organizational structure), should maintain the small specification of the feature group.

Principle 5: personal responsibility and fixed project resource implementation control

Pair
For software projects, it is very difficult to accurately estimate the product development and delivery progress. Microsoft
The approach is to shift the schedule and work management responsibilities to the bottom layer, that is, individual developers and testers.
This ensures that everyone is not only part of the group, but also has personal responsibilities. Set up by independent developers
Their own schedule. The program manager sums up the separate schedule and adds the buffer time to determine
A comprehensive project schedule. The top-level general manager also has fixed personnel, time, and other basic resources to ensure that the project set contains and limits its efforts and creation procedures.

Key objectives, especially for Application Software
Is to specify the product's target production date and strive to maintain it as long as possible. The program manager and developer trace back from the production date to specify the date of the project milestone in the middle. This "fixed output product
The day-to-day method is centered on the developer. To avoid consuming one year or more in a loop of useless design, redesign, and testing because the project does not have a fixed end point.

Developers make their own progress estimates

Ratio
Er Zheng, Shan nakang (
Q: Why should I avoid being a hacker? I abandoned that kind of self-defined
Date setting method ". However, developers generally make optimistic estimates.
The provided date is adjusted and the buffer time is added to avoid problems due to incomplete information. Microsoft
The advantage of making progress is that it gets more cooperation from people, because the date is self-defined,
It's not set by the Manager; The progress is always progressive, because developers will inevitably underestimate what they really need.

Detailed task progress estimation

The second way for Microsoft to schedule is to make a very detailed consideration of the task to be completed. On this basis, ask the developers to give their estimation of "Implementation, in this way, we try to "promote" more realism and avoid excessive underestimation.

Connect
Microsoft has refined the task to four hours (half a day) to three days. Microsoft's rationale for the accurate schedule
This is what we know: "If any task lasts for more than a week, people will not fully consider it. Ren
He has considered the task too much if someone is estimated to be able to complete it in less than half a day. He should use multiple columns for time-based programming, with less time to consider. "For Windows
For operating systems such as NT, the progress schedule is more difficult. It generally takes several days or half a week as the unit of work to estimate the progress.

Psychology when developers and groups are arranged

When
When the project grows, Microsoft divides its employees into groups. Then the manager distributes the responsibilities and ownership of the Progress as much as possible.
Continue until the group and the individual; this gives both a sense of working. It is still in the group
People, especially group leaders, are under intense pressure to keep up with the expected progress of other colleagues because managers can
Balance the progress and take the work from the lagging groups or individuals. In this way, the pressure between colleagues allows managers to strictly control the processes of individuals or individual groups without too much effort.

"Fixed" production date

Is
By limiting creativity to time constraints, Microsoft is currently competing to consolidate a new product or product version before it starts.
The production date should be set to at least an internal target for the production date. This allows people to hack features and concentrate on one item.
Pressure, forcing them to think hard to add that new feature to the product. Although the final product delivery goal
It may be set by senior executives, but developers and teams still set their own schedules.

Appendix: synchronization-Stable Development Method

PLANNING PHASE

Define product imaginative descriptions, descriptions, and progress

* Imagining product and program management departments use a wide range of customer opinions to determine and optimize product features.

* The description file is based on an imaginary description. The features of the program management department and the development team are defective, and the structure problems are fixed, as well as the relevance between each part.

* The development schedule and constructor team are located in the explanatory documents. The Program Management Department coordinates the schedule and arranges special teams. Each team includes approximately one program manager and three to eight developers, 3-8 testers (working in parallel with the developers at a ratio of 1: 1 .)

Development Phase

Each of the three-four sub-projects generates a milestone product delivery to complete feature development.

The Program Manager coordinates the development process.

Developer design, coding, debugging. The tester is paired with the developer for Continuous testing.

* Features of subproject I top 1/3: The most important features and shared components.

* Sub-Project ⅱ features 1/3 in the middle.

* Sub-Project III features of the last 1/3: the least important features.

Stabilization phase

Comprehensive internal and external testing, final product stabilization and delivery.

The Program Manager coordinates OEMs and ISVs to supervise the feedback from customers. Developers conduct final debugging and

Code stabilization. The tester found and cleared the error.

* The internal testing company conducts a detailed test on the entire product.

* External beta testing sites of external testing companies, such as OEM, isV, and end users.

Detailed tests.

* Shipping preparation prepares and releases the final "Gold Disk" and documents for bulk production.

Source:. NetEase virtualCommunityHttp://club.netease.com. [from: 210.72.251.139]

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.