logo

Books : Microsoft Secrets ( Management )

Microsoft Secrets

1. Find smart people who know the technology and the business

a. If the CEO and senior management team and key employees understand their technology and markets, seize opportunities, and make the future their vision, then they have a chance to dominate not one but many promising markets creates a organization centered around the right products and markets.

b. Hire a CEO with a deep understanding of the both the technology and the business, a visionary with "drive to succeed, accumulation of great power, and make money by taking advantage of technical knowledge and understanding of industry dynamics."

c. Don't let non technical managers trying to make technical tradeoffs.

d. Microsoft marketing staff creates a sales forecast based on divisions product plans. Detailed budget planning begins, and managers look at the sales verses budget estimates to determine how these estimates compare with the profit objectives for the company. Based on this analysis, Gates and other top executives determine employee head count for the fiscal year.

e. Gates kept a check on new product development schedules through a one page succinct status report and he read each report and sometimes provides a memo back.

f. Gates went on "think weeks" where he would isolate himself and think about a particular problem. "The products that comprise 80 percent of our revenue, I try to understand very, very deeply."

g. "With the fiercely independent culture of Microsoft managers and developers, it is rare Gates tries to mandate anything", says Sinofsky.

h. "Gates feels Microsoft is big enough to afford to have a research group and fund it lavishly."

i. Microsoft wants developers, "who seek personal challenges and enjoy shipping products into the marketplace-making money for themselves and the company. Microsoft managers also prefer to hire computer science graduates directly from college and then get them involved in Microsoft projects as quickly as possible."

2. Organize small teams of overlapping functional specialist

a. Empower employees to learn by doing without creating bureaucratic rules and regulations or formal training programs.

b. A shortage of experienced mentors will always exist. For this reason, inexperienced developers will reinvent the wheel and discover many best practices by trial and error. New hirers will learn by doing and receiving information from experienced people. Maples brought important principles from IBM to Microsoft: Standardized hiring practices, nurturing middle managers, cultivate functional expertise, and smooth out internal conflicts between functional areas. Maple other common principles included: let people do their schedules, assume change will happen, manage by milestones, focus on customer problems, and move people around. "It is a common practice for managers to continue doing their functional jobs after becoming senior managers."

c. Promote innovation and efficiency by organizing multifunctional teams.

d. Organize functional skills and knowledge necessary to build larger and more complex products. Put key people in speciality areas and allow them enough independance from top management and centralized personnel department so they can continually redine the skills they need.

3. Pioneer and orchestrate evolving mass markets

a. It is often useful to be first in the market

b. Many managers need to think about more than one set of custoemers because markets become saturated.

c. It may be possible to enter a PC software mass market with products that are at least "good enough" initially to set the de facto industry standards, to preempt competition then work to incrementally improve the product features and quality.

d. Simplify and target millions of novice home consumers. "It continues to be a challenge for Microsoft to make products reliable enough for companeis to buy and simple enough for novice consumers to understand."

4. Focus creativity by evolving features and fixing resources

a. Define new products and development processes that facilititate mass markets

b. Direct creativity of smart people

c. Think about features that large amounts of people will pay money for and by putting pressure on projects by limiting their resources. Manage schedule by milestones and push to hit schedules for shipment to markets. Bill Gates says, "Forcing these milestones, where you actually do th debugging and you get to a very stable point - not a point of perfection, but a very stable point - is super important to us" "We used to end up with those huge test periods at the end. It was just hopeless. What if there's a design mistake? What if it doesn't look like it's going to get done in time? The you didn't have the abiltiy to trade off features...The last time you can do coding is way before product release, and then you're not getting the benefit of the lastest ideas or what's going on in the marketplace. So the milestone approach is a major practice for us."

d. Use vision statements to guide teams but with no attempt to determine everything that they do in advance. This leave team members room to innovate or adapt to changes or unforeseen competitive oportunities and threats. Development teams should come up with featuers that map directly to activities that average customers perform, and then design products and projects around these features. Managers need to limit resources and time allocated to any one project.

5. Do everything in parallel, with frequent synchronizations

a. Large scale projects are simpler to schedule and manage if they proceed with clearly defined functional groups and sequential phases, and precise rules and control. Control is the essence of any large team project. Form small teams that break down functional and phase barieers and facilitate communication and coordination; encourage team members to share responsibilities; many small teams should be working in parrellel and function as one large team to build the large scale product. "Loosely structured small-team style of product development so that large teams can work like small teams." The teams adhere to a few rigid rules that enforce a high degree of coordination and communication and resolve feature details and conflicts on a frequent basis. Rules: break the code then fix it immediately; developers must check in code and sync with the product project every night and apply regression tests; development teams will work at a single site and use a common set of tools and same development language; and test the product from multiple perspectives.

"Synch and stablize does not guarantee on-time or bug-free products. Creating new, large-scale software products on a precisely predicted schedule and with no major defects are extremely difficult goals in the PC industry."

b. "Good architecture can reduce the amount of interdependency within even a development group"

c. Smaller teams communicate better and have fewer dependencies than bigger teams.

6. Improve through contineous self-critiquing, feedback, and sharing

a. Build a learning organization

b. Learn from the past

c. Listen to customers. Listen to customer feedback facilitates competition by enhancing products features that incorporate customer inputs. Short time lines make sure the most important features are complete first and priorities set and change or cut less important features.

d. Share knowlege in project management and quality control. More than one person should understand large bodies of code.

e. Build components that more than on project can use. Additionally, ensure your structures links to reusable components being developed by R&D.

7. Attack the future.

a. Take advanced the base of existing customers and products to build the features and products of the future.

b. Confront internal, external, and new market opportunities

s