You are on page 1of 42

Each group must have the following points covered in the assignment on the company/organisation being

covered -

1) Company / Organisation Background - History, Products, Sales, details of profit, competitors,


sales of last 5 yrs, no. of people
2) Quality Philosophy / mission / vission, Quality Management practices, Current quality practices
and benchmarks
3) History of Quality Failures.

Apart from the companys website, you may have to refer to research papers, articles etc to substantiate.

Instructions for document

-Word Limit-2000-3000 words


-CD with PPT and Word Document to be submitted to COE (on the date in the assignment schedule) with
topic and names of group members clearly mentioned on CD.

Points to be kept in Mind


-Document should be divided into clear sections
-Word limit should not be exceeded
--Referencing should be extremely clear.
-Tables, graphs, charts, sketches, pictures must be labeled and numbered and
referenced.
AQM Assignment

TOPIC :-

MICROSOFT

By :-

Arshiya Gupta (6)

HImanshu Upadhyay (9)


Contents

1) About Microsoft

a. Company Brief

b. Company History

c. Products

d. Sales

i. Details of profits

ii. Sales of last 5 years

e. Employment information

i. Headcount

ii. Classification by gender

iii. Classification by age

f. Competitiors
About Microsoft
1) Company Brief

Microsoft Corporation (NASDAQ: MSFT) is an American multinational corporation headquartered


in Redmond, Washington, United States that develops, manufactures, licenses and supports a wide
range of products and services related to computing. The company was founded by Bill
Gatesand Paul Allen on April 4, 1975. Microsoft is the world's largest software maker measured by
revenues.[3] It is also one of the world's most valuable companies.[4]

Microsoft was established to develop and sell BASIC interpreters for the Altair 8800. It rose to
dominate the personal computer operating systemmarket with MS-DOS in the mid-1980s, followed
by the Microsoft Windows line of operating systems. The company's 1986 initial public offering, and
subsequent rise in its share price, created an estimated three billionaires and 12,000 millionaires
from Microsoft employees. Since the 1990s, it has increasingly diversified from the operating system
market and has made a number of corporate acquisitions. In May 2011, Microsoft acquired Skype
Technologies for $8.5 billion in its largest acquisition to date.[5]

As of 2012, Microsoft is market dominant in both the PC operating system and office suite markets
(the latter with Microsoft Office). The company also produces a wide range of other software for
desktops and servers, and is active in areas including internet search (with Bing), the video game
industry (with the Xbox and Xbox 360 consoles), the digital services market (through MSN), and
mobile phones (via the Windows Phone OS). In June 2012, Microsoft announced that it would be
entering the PC vendor market for the first time, with the launch of the Microsoft Surface tablet
computer.

In the 1990s, critics began to contend that Microsoft used monopolistic business practices and anti-
competitive strategies including refusal to dealand tying, put unreasonable restrictions in the use of
its software, and used misrepresentative marketing tactics; both the U.S. Department of
Justiceand European Commission found the company in violation of antitrust laws. Microsoft was
ranked number 1 in the list of the World's Best Multinational Workplaces by the Great Place to Work
Institute in 2011.[103]

http://en.wikipedia.org/wiki/Microsoft
2) Company History
3) Early history
4) Paul Allen and Bill Gates, childhood friends with a passion in computer programming,
were seeking to make a successful business utilizing their shared skills. The January
1975 issue of Popular Electronics featured Micro Instrumentation and Telemetry
Systems's (MITS) Altair 8800microcomputer. Allen noticed that they could program
a BASIC interpreter for the device; after a call from Gates claiming to have a working
interpreter, MITS requested a demonstration. Since they didn't actually have one, Allen
worked on a simulator for the Altair while Gates developed the interpreter. Although they
developed the interpreter on a simulator and not the actual device, the interpreter worked
flawlessly when they demonstrated the interpreter to MITS in Albuquerque, New Mexico
in March 1975; MITS agreed to distribute it, marketing it as Altair BASIC.[6]:108, 112
114 They officially established Microsoft on April 4, 1975, with Gates as the CEO.[8] Allen

came up with the original name of "Micro-Soft," as recounted in a 1995 Fortune


magazine article. In August 1977 the company formed an agreement with ASCII
Magazine in Japan, resulting in its first international office, "ASCII Microsoft".[9] The
company moved to a new home in Bellevue, Washington in January 1979.[8]

5) Microsoft entered the OS business in 1980 with its own version of Unix,
called Xenix.[14] However, it was MS-DOS that solidified the company's dominance. After
negotiations with Digital Research failed, IBM awarded a contract to Microsoft in
November 1980 to provide a version of the CP/M OS, which was set to be used in the
upcoming IBM Personal Computer (IBM PC).[15] For this deal, Microsoft purchased a
CP/M clone called 86-DOS from Seattle Computer Products, branding it as MS-DOS,
which IBM rebranded to PC-DOS. Following the release of the IBM PC in August 1981,
Microsoft retained ownership of MS-DOS. Since IBM copyrightedthe IBM PC BIOS, other
companies had to reverse engineer it in order for non-IBM hardware to run as IBM PC
compatibles, but no such restriction applied to the operating systems. Due to various
factors, such as MS-DOS's available software selection, Microsoft eventually became the
leading PC operating systems vendor.[7][16]:210 The company expanded into new markets
with the release of the Microsoft Mouse in 1983, as well as a publishing division
named Microsoft Press.[6]:232 Paul Allen resigned from Microsoft in February after
developing Hodgkin's disease.[6]:231
6) 19841994: Windows and Office
7) While jointly developing a new OS with IBM in 1984, OS/2, Microsoft released Microsoft
Windows, a graphical extension for MS-DOS, on November 20.[6]:242243, 246 Microsoft
moved its headquarters to Redmond on February 26, 1986, and on March 13 the
company went public;[17] the ensuing rise in the stock would make an estimated four
billionaires and 12,000 millionaires from Microsoft employees.[18] Due to the partnership
with IBM, in 1990 theFederal Trade Commission set its eye on Microsoft for
possible collusion; it marked the beginning of over a decade of legal clashes with the
U.S. Government.[19] Microsoft announced the release of its version of OS/2 to original
equipment manufacturers (OEMs) on April 2, 1987;[6]:243244meanwhile, the company was
at work on a 32-bit OS, Microsoft Windows NT, using ideas from OS/2; it shipped on July
21, 1993 with a new modularkernel and the Win32 application programming
interface (API), making porting from 16-bit (MS-DOS-based) Windows easier. Once
Microsoft informed IBM of NT, the OS/2 partnership deteriorated.[20]
8) Microsoft introduced its office suite, Microsoft Office, in 1990. The software bundled
separate office productivity applications, such as Microsoft Word andMicrosoft
Excel.[6]:301 On May 22 Microsoft launched Windows 3.0 with a streamlined user
interface graphics and improved protected mode capability for the Intel
386 processor.[21] Both Office and Windows became dominant in their respective
areas.[22][23] Novell, a Word competitor from 19841986, filed a lawsuit years later
claiming that Microsoft left part of its APIs undocumented in order to gain a competitive
advantage.[24]
9) On July 27, 1994, the U.S. Department of Justice, Antitrust Division filed a Competitive
Impact Statement that said, in part: "Beginning in 1988, and continuing until July 15,
1994, Microsoft induced many OEMs to execute anti-competitive "per processor"
licenses. Under a per processor license, an OEM pays Microsoft a royalty for each
computer it sells containing a particular microprocessor, whether the OEM sells the
computer with a Microsoft operating system or a non-Microsoft operating system. In
effect, the royalty payment to Microsoft when no Microsoft product is being used acts as
a penalty, or tax, on the OEM's use of a competing PC operating system. Since 1988,
Microsoft's use of per processor licenses has increased."[25]
10) 19952005: Internet and the 32-bit era
11) Following Bill Gates's internal "Internet Tidal Wave memo" on May 26, 1995 Microsoft
began to redefine its offerings and expand its product line intocomputer networking and
the World Wide Web.[26] The company released Windows 95 on August 24, 1995,
featuring pre-emptive multitasking, a completely new user interface with a novel start
button, and 32-bit compatibility; similar to NT, it provided the Win32 API.[27][28]:20 Windows
95 came bundled with the online service MSN, and for OEMs Internet Explorer, a web
browser. Internet Explorer was not bundled with the retail Windows 95 boxes because
the boxes were printed before the team finished the web browser, and instead was
included in the Windows 95 Plus! pack.[29]Branching out into new markets in 1996,
Microsoft and NBC Universal created a new 24/7 cable news
station, MSNBC.[30] Microsoft created Windows CE 1.0, a new OS designed for devices
with low memory and other constraints, such as personal digital assistants.[31] In October
1997, the Justice Department filed a motion in the Federal District Court, stating that
Microsoft violated an agreement signed in 1994 and asked the court to stop the bundling
of Internet Explorer with Windows.[6]:323324
12) Bill Gates handed over the CEO position on January 13, 2000 to Steve Ballmer, an old
college friend of Gates and employee of the company since 1980, creating a new
position for himself as Chief Software Architect.[6]:111, 228[8] Various companies including
Microsoft formed the Trusted Computing Platform Alliance in October 1999 to, among
other things, increase security and protect intellectual property through identifying
changes in hardware and software. Critics decry the alliance as a way to enforce
indiscriminate restrictions over how consumers use software, and over how computers
behave, a form of digital rights management; for example the scenario where a computer
is not only secured for its owner, but also secured against its owner as well.[32][33] On
April 3, 2000, a judgment was handed down in the case of United States v.
Microsoft,[34] calling the company an "abusive monopoly";[35] it settled with the U.S.
Department of Justice in 2004.[17] On October 25, 2001 Microsoft released Windows XP,
unifying the mainstream and NT lines under the NT codebase.[36] The company released
the Xbox later that year, entering the game console market dominated
bySony and Nintendo.[37] In March 2004 the European Union brought antitrust legal
action against the company, citing it abused its dominance with the Windows OS,
resulting in a judgment of 497 million ($613 million) and to produce new versions of
Windows XP without Windows Media Player, Windows XP Home Edition N and Windows
XP Professional N.[38][39]
13) 2006present: Windows Vista, mobile, SaaS, Yammer
14) Released in January 2007, the next version of Windows, Windows Vista, focused on
features, security, and a redesigned user interface dubbedAero.[41][42] Microsoft Office
2007, released at the same time, featured a "Ribbon" user interface which was a
significant departure from its predecessors. Relatively strong sales of both titles helped
to produce a record profit in 2007.[43] The European Union imposed another fine of
899 million ($1.4 billion) for Microsoft's lack of compliance with the March 2004
judgment on February 27, 2008, saying that the company charged rivals unreasonable
prices for key information about its workgroup and backoffice servers. Microsoft stated
that it was in compliance and that "these fines are about the past issues that have been
resolved".[44]
15) Bill Gates retired from his role as Chief Software Architect on June 27, 2008 while
retaining other positions related to the company in addition to being an advisor for the
company on key projects.[45] Azure Services Platform, the company's entry into the cloud
computing market for Windows, launched on October 27, 2008.[46] On February 12,
2009, Microsoft announced its intent to open a chain of Microsoft-branded retail stores,
and on October 22, 2009 the first retail Microsoft Store opened in Scottsdale, Arizona;
the same day the first store opened Windows 7 was officially released to the public.
Windows 7's focus was on refining Vista with ease of use features and performance
enhancements, rather than a large reworking of Windows.[47][48][49]
16) As the smartphone industry boomed beginning in 2007, Microsoft struggled to keep up
with its rivals Apple and Google in providing a modern smartphone operating system. As
a result, in 2010, Microsoft revamped their aging flagship mobile operating
system, Windows Mobile, replacing it with the new Windows Phone OS; along with a
new strategy in the smartphone industry that has Microsoft working more closely with
smartphone manufactures, such as Nokia, and to provide a consistent user experience
across all smartphones using Microsoft's Windows Phone OS.
17) Microsoft is a founding member of the Open Networking Foundation started on March
23, 2011. Other founding companies include Google, HP
Networking, Yahoo, Verizon, Deutsche Telekom and 17 other companies. The nonprofit
organization is focused on providing support for a new cloud computing initiative called
Software-Defined Networking.[50] The initiative is meant to speed innovation through
simple software changes in telecommunications networks, wireless networks, data
centers and other networking areas.[51]
18) In May 2012, Microsoft opened its social networking site So.cl to the general
public.[52] On 31 May 2012, Microsoft released the release preview version of its next
generation Windows 8software. It is designed to power devices ranging from tablets to
desktop computers.[53]
19) On 25 June 2012, Microsoft announced that it is paying $1.2 billion to buy the social
network Yammer.[54]

Microsoft Inc. logo history

Logo Years

Microsoft "blibbet" logo, filed August 26, 1982 at theUSPTO and used until 1987.[10]

Microsoft "Pac-Man" logo, designed by Scott Baker and used since 1987, with the 1994
2002 slogan "Where do you want to go today?".[11][12]

Microsoft logo as of 20062011, with the slogan"Your potential. Our passion."[12]

Logo by Microsoft with the slogan"Be What's Next." 2011present.[13]


1) PRODUCTS

Microsoft Platform Products and Services Division


[edit]Windows
This division produces Microsoft's flagship product, the Windows operating system. It has been
produced in many versions, including Windows 3.1, Windows 95, Windows 98, Windows
2000,Windows Me, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows 8,
and Windows Server 2008. Almost all IBM compatible personal computers designed for the
consumer come with Windows preinstalled.

[edit]Server System

Main article: Microsoft Servers

Microsoft offers a suite of server software, entitled Microsoft Servers. Windows Server 2008, an
operating system for network servers, is the core of the Windows Server System line. Other server
products include:

SQL Server - a relational database management system and set of business intelligence tools;
Exchange Server - a is a messaging and collaborative software product;
BizTalk Server - a business process automation, modeling, communication and integration
server;
Systems Management Server - a collection of tools providing remote-control abilities, patch
management, software distribution, and a hardware/software inventory.
Small Business Server - an integrated suite of server products designed for running network
infrastructure (both intranet management and Internet access) of small and medium enterprises;
[edit]Developer Tools
Microsoft Visual Studio is the company's set of programming tools and compilers. The software
product is GUI-oriented and links easily with the Windows APIs, but must be specially configured if
used with non-Microsoft libraries. The current version is Visual Studio 2010 and previous version
are Visual Studio 2008, Visual Studio 2005. Visual Studio supports development for both
nativeWindows platform and .NET Framework.

[edit]Online Services
The online service MSN is also part of this division. Windows Live is the next generation of Microsoft
online initiative includes services such as Bing, Windows Live Mail, Windows Live Messengerand
others.
Microsoft also has hosted versions of Exchange, SharePoint, Live Meeting and Office
Communicator.

[edit]Microsoft Business Division

Microsoft Office 2010 logo

The Microsoft Business Division produces Microsoft Office, which is the company's line of office
software. The software product includesWord (a word processor), Access (a personal relational
database application), Excel (a spreadsheet program), Outlook (Groupware, frequently used
with Exchange Server), PowerPoint (presentation software), and Publisher (desktop publishing
software). A number of other products were added later with the release of Office 2003
including Visio, Project, MapPoint, InfoPath and OneNote.[3]

The division focuses on developing financial and business management software for companies.
These products include products formerly produced by the Business Solutions Group, which was
created in April 2001 with the acquisition of Great Plains. Subsequently,Navision was acquired to
provide a similar entry into the European market, resulting in the planned release of Microsoft
Dynamics NAV in 2006. The group markets Axapta and Solomon, catering to similar markets, which
is scheduled to be combined with the Navision and Great Plains lines into a common platform
called Microsoft Dynamics.[3]
[edit]Microsoft Entertainment and Devices Division

The Xbox 360, Microsoft's second console in the gaming console market.

Microsoft has attempted to expand the Windows brand into many other markets, with products such
as Windows CE for PDAs and its "Windows-powered" Smartphone products. Microsoft initially
entered the mobile market through Windows CE for handheld devices, which today has developed
intoWindows Phone. The focus of the operating system is on devices where the OS may not directly
be visible to the end user, in particular, appliances and cars. The company produces MSN TV,
formerly WebTV, a television-based Internet appliance. Microsoft used to sell a set-top Digital Video
Recorder(DVR) called the UltimateTV, which allowed users to record up to 35 hours of television
programming from a direct-to-home satellite television providerDirecTV. This was the main
competition in the UK for BSkyB SKY + service, owned by Rupert Murdoch. UltimateTV has since
been discontinued, with DirecTV instead opting to market DVRs from TiVo Inc. before later switching
to their own DVR brand.[3]

Microsoft sells computer games that run on Windows PCs, including titles such as Age of
Empires, Halo and the Microsoft Flight Simulator series. It produces a line of reference works that
include encyclopedias and atlases, under the name Encarta. Microsoft Zone hosts free premium and
retail games where players can compete against each other and in tournaments. Microsoft entered
the game console market dominated by Sony and Nintendo in late 2001,[4] with the release of
the Xbox. The company develops and publishes its own video games for this console, with the help
of its Microsoft Game Studios subsidiary, in addition to third-party Xbox video game publishers such
as Electronic Arts and Activision, who pay a license fee to publish games for the system. The Xbox
also has a successor in the Xbox 360, released on 2005-11-22 in North America and other
countries.[5][6] With the Xbox 360, Microsoft hopes to compensate for the losses incurred with the
original Xbox. However, Microsoft made some decisions considered controversial in the
video gaming community, such as selling two different versions of the system, as well as
providing backward compatibility with only particular Xbox titles.[7][8] In addition to the Xbox line of
products, Microsoft also markets a number of other computing-related hardware products as well,
including mice,keyboards, joysticks, and gamepads, along with other game controllers, the
production of which is outsourced in most cases.[3] Microsoft is also in the media player market,
competing directly with Apple Computer's iPod with the Zune. It has features such as Wi-Fi sharing
and connectivity with the Xbox 360.

http://en.wikipedia.org/wiki/Microsoft_Product_Divisions

1) Sales
http://www.microsoft.com/investor/reports/ar11/financial_highlights/index.html

Financial
Standard and Poor's and Moody's have both given a AAA rating to Microsoft, whose assets were
valued at $41 billion as compared to only $8.5 billion in unsecured debt. Consequently, in February
2011 Microsoft released a corporate bond amounting to $2.25 billion with relatively low borrowing
rates compared to government bonds.[94]

For the first time in 20 years Apple Inc. surpassed Microsoft in Q1 2011 quarterly profits and
revenues due to a slowdown in PC sales and continuing huge losses in Microsoft's Online Services
Division (which contains its search engine Bing). Microsoft profits were $5.2 billion, while Apple Inc.
profits were $6 billion, on revenues of $14.5 billion and $24.7 billion respectively.[95]

Microsoft's Online Services Division has been continuously loss-making since 2006 and in Q1 2011
it lost $726 million. This follows a loss of $2.5 billion for the year 2010.[96]

On July 20, 2012, Microsoft posted its first quarterly loss ever, despite earning record revenues for
the quarter and fiscal year. Microsoft reported a net loss of $492 million; the 2007 acquisition of
advertising company aQuantive for $6.2 billion and problems associated with it have been cited as
the cause.[97]

http://en.wikipedia.org/wiki/Microsoft#Financial
1) Employment information
Employment Information

Last updated: June 30, 2012


Current Employment Headcount

Location Employees
Worldwide 94,290

USA 55,455

Puget Sound (Washington State) 40,854

Reported Gender Breakout (USA)

Gender Employees Percentage


Male 42,337 76.3%

Female 13,118 23.7%

Reported Age Breakout (USA)

Age Range1 Employees Percentage


29 or Under 8,331 15.0%

30-39 22,457 40.5%

40+ 24,667 44.5%

1
Average age: 38.6 years.
http://www.microsoft.com/en-us/news/inside_ms.aspx

1) Competitors

Ballmer: And Microsofts main competitors are

Who are Microsofts main competitors right now? According to CEO Steve Ballmer:

Asa Mathat/All Things Digital

Microsft CEO Steve Ballmer, pictured, talks with ATD writer Walt Mossberg and Microsoft chief software architect Ray
Ozzie during the D8 tech forum Thursday morning.

Google
Apple
Oracle
VMware
open source (Linux, Firefox)
Thats what he said during All Things Digitals D8 tech conference Thursday morning. Ballmer and Microsofts chief
software architect, Ray Ozzie, sat down with ATD co-editor Walt Mossberg on the second day of the confab in Rancho
Palos Verdes, Calif.

So lets take a look at why each of those companies is a main competitor:

Google

This is the big kahuna. Google is a serious threat because not only does it have its hand in multiple markets, it has the
ability to jump in and quickly grab significant market share.

Web search/online advertising is one thing do I really have to explain that? Googledominates, and Bing (soon to be
paired with Yahoo) is scraping away at its market share. But Bing is not, despite what Ballmer may hope, one of
Microsofts biggest products. At least its not making much, if any, money.
Gmail went public only about three years ago, but already its the third-largest webmail service behind Hotmail and
Yahoo. Google Apps is up-and-coming, having won a few key contracts in the enterprise market. Microsofts release of
Office Web Apps shows the company is worried about Google, which is touting apps as an easy-to-use-from-anywhere
service with an easier and less expensive business model.
Android has accomplished a heckuva feat, jumping from nearly no market share a year ago to being the platform of choice
for about 10 percent of new smart phones sold. Chrome has been consistently eating away at Internet Explorer since its
launch nearly two years ago. And with App Engine, Google has been making a push in the cloud-platform space to which
Microsoft, with Windows Azure, just showed up this winter.
And then theres Chrome OS, the browser-based operating system that Google is expected to launch by late autumn. Its
unknown how successful the novel idea will be, especially with the incoming tablet market, but considering Googles
success in other sectors it could very well grab netbooks away from Windows.

Apple

Consumers, consumers, consumers. If youve been reading The Microsoft Blog, youve seen that Ive been writing a lot
about Apple recently. Thats because the company, which was nearly dead 10 years ago, has surged back to pass up
Microsoft in market capitalization. And Apple did it with consumers.
When youre talking competition between Microsoft and Apple, youre mainly talking about hand-held devices. Windows
is still on more than 90 percent of computers and Safari, Apples Web browser, essentially has the same market share as
Macintosh computers though that line is now being blurred.

Because the iPhone has turned into, well, the iPhone. Its a sensation. Apple is leading the charge for mobile computing.
And as Google can attest, theres plenty of room in the market to capitalize. Microsoft, for its part, has not been able to do
that lately. As Apple and Android surge in popularity, Windows Mobile hemorrhages market share. Microsoft must
deliver a knock-out hit with Windows Phone 7 this holiday season.

And then theres the iPad dont even get me started on tablets. Apple has succeeded where others, namely Microsoft,
tried 10 years ago. Apple has opened the door for a potentially huge new market, but Microsoft must step it up if it wants
Windows on the hottest slates.

Oracle

Ah, enterprise software. Microsoft is a household or perhaps, officehold? name in the sector. But so is Oracle.

And so was, as it happens, Sun Microsystems which Oracle bought last year. Now Oracle offers not just software, but an
entire line of hardware, as well. Oracles new slogan, Software. Hardware. Complete., highlights for the enterprise
sector the same reason Apples products have dominated the consumer business: hardware plus software, built by the same
company, working elegantly together as a package.

Of course, Microsoft doesnt produce hardware. (Well, nothing significant mice and keyboards and webcams dont
count.) Its enterprise products Windows Server, SQL Server, Office are well known in the sector, and so is Microsofts
competition there with Oracle. Java, Linux/Solaris, Siebel CRM, MySQL, Open Office, virtualization? Yeah, Oracle is a
main competitor, for sure.

VMware

And heres where things get interesting. VMware represents the future of Microsofts enterprise competition:
virtualization and cloud computing. Microsoft, arguably late to the game, launched its Windows Azure cloud platform just
this past winter. VMware, with vCloud, has already found its place in the sector.

But Microsoft has the legacy its Windows and .NET programming languages to immediately make a splash. Besides,
the Redmond company has already offered cloud solutions for some time, just not with the metered payment model of a
platform/infrastructure like Windows Azure.
Virtualization has changed enterprise computing by reducing the number of physical servers a company or data center
needs. And virtualization is VMwares bread and butter. With Hyper-V, Microsoft could take a chunk out of VMwares
ESX.

As cloud computing becomes more the norm for the enterprise, well see how the market shakes down. Because in that
sector, VMwares not by far the only company Microsoft must think about. How about Salesforce, Amazon, Google,
Rackspace, GoGrid and Oracle?

Thanks to CNET News Ina Fried, ATDs John Paczkowski, Barrons Eric Savitz and others for the live coverage from
California.

http://blog.seattlepi.com/microsoft/2010/06/03/ballmer-and-microsofts-main-competitors-are/

1) Mission

http://www.microsoft.com/about/en/us/default.aspx
A Vision and Strategy for the Future
Diversity and inclusion are integral to Microsofts vision, strategy and business success. We recognize that leadership
in todays global marketplace requires that we create a corporate culture and an inclusive business environment
where the best and brightest diverse mindsemployees with varied perspectives, skills, and experiences--work
together to meet global consumer demands. The collaboration of cultures, ideas, and different perspectives is an
organizational asset and brings forth greater creativity and innovation.

Learn about our commitment to global diversity and inclusion, including our vision, strategy, and plans for the
future. Understand why at Microsoft, global diversity and inclusion is a long term business-critical principle that is
linked to the current and future success of our company.

Microsoft is on an accelerated path of growth. We recognize that in order to achieve our aggressive leadership goals
we must leverage the intellectual power and harness the creative energy of top, highly trained individuals from all
regions of the world, and those from a wide range of diverse backgrounds.

We actively seek to foster greater levels of diversity in our workforce by partnering with our outreach partners which
include academic institutions, professional organizations, and national advocacy groups, offering scholarships
and youth programs to encourage the study of technology and science and work with our senior executive leadership
team to ensure that diversity and inclusive best practices are deeply embedded throughout our work environment.
We know that these goals provide a solid foundation to creating a highly engaged workforce with a shared purpose
of achieving Microsofts mission.

http://www.microsoft.com/about/diversity/en/us/vision.aspx
1) Quality practices

REFER TO THE PDF

Develop practical, achievable, and believable


quality standards
By Lonnie Pacelli

One of my former clients had a large IT organization dedicated to quality management. The
chief information officer mandated that every project have a quality manager to ensure that the
project adhered to sanctioned standards. When my team's project started, the quality manager
gave us a long list of standards. As we looked through them, it appeared that many didn't apply
to our project, or they were so vague we couldn't understand how to implement them. Many
people assigned to the project dismissed the quality standards as busy work and simply ignored
them. Others tried to understand how the standards applied to the project and made a valiant
effort to demonstrate adherence. Nonetheless, while our project passed the quality standards
review, it was a distraction to the team and didn't add much value.

Quality does matter


Despite that one experience, I am still a strong proponent of quality standards. They help
tremendously when meeting expectations during product development and if the product has
to be modified. But quality standards must not take on a life of their own, requiring incremental
work to meet some standard with no defined,associated value. Yes, quality standards need to
exist, and projects should follow them. But these standards must be available to all, practical,
achievable, and believable. More important, the group needs to see the value that quality
standards provide. If value can't be understood or demonstrated, the project team will have a
hard time buying into and implementing the needed quality.

TOP OF PAGE

Guidelines for developing quality standards


How can you put in place practical, achievable, and believable quality standards? Consider the
following guidelines as you embark on your journey:

See if quality standards already exist in your organization. If you're in a large organization,
chances are someone has already developed quality standards for the type of projects you manage.
Ask peers, managers, and other stakeholders if the needed standards are in place. If you find any,
consider adopting them or using them as a starting point.
Set up a quality standards advisory board. Assemble a team from stakeholder groups that are
affected by the projects you manage. Your goal here isn't to share the workload with this team, but
to use them as advisors to help ensure that the quality standards you define are all you intend them
to be.
Understand how your stakeholders perceive quality. Conduct interviews with each stakeholder
group to understand the expectations for deliverables. For example, for IT quality standards, you
could discuss expectations with managers from usability, production support, and other key
sponsors. Ask them what they think is needed to deliver a successful project. You may think this is an
obvious question, but some responses may give you perspective about stakeholder values, and also
what isn't important to them. Don't underestimate the power of these interviews: they can help to
align your perceptions of quality with those of your stakeholders.
Start with a template. There are lots of standard quality plans and templates out there, so you
shouldn't have to start with a blank sheet of paper. Use a good, robust template with options to pick
and choose from that apply to your organization and project.
Develop a consequence for each quality standard. I like to call this the "Who cares?" test. For
each standard you identify, develop a logical, thoughtful consequence that will occur if it is not met.
If you and your advisory board can't identify a realistic outcome, or if the consequence is minor,
consider revising or deleting the standard. It's too easy to throw everything into your quality
standards list. More is not always better, so be sure to focus on what matters most.
Evaluate the quality standards as a regular part of your project postmortem. Putting practical
standards in place is a great first step toward meeting stakeholder expectations. So, to ensure that
your quality standards continue to pay dividends, it's important to include a regular postmortem
review. Ask questions such as:
Were any quality standards ignored? If so, was the consequence significant?
Was the product designed with the quality standards in mind, or were they applied after the product
was designed and needed to be tested?
Did the team take the quality standards seriously, or did they follow the guidelines because they had
to?

Getting a good read on how project teams viewed the quality standards will help you improve
these measures, and over time they will evolve with your organization.

TOP OF PAGE

Conclusion
Quality standards are an important component of your project management methodology. For
measurements to be effective, they need to be practical, believable, and achievable. If you create
quality standards that don't represent reality, your project teams will look for loopholes or
ignore them entirely.

TOP OF PAGE

About the author Lonnie Pacelli is a business owner, consultant, and author with over 20 years of experience in project management. He h

worked with Fortune 500 companies including Microsoft, Accenture, Motorola, Hughes Electronics, AT&T, and Northrop Grumman, and successful

managed projects ranging from installation of complex information technology systems to small process improvements. He is currently CEO of Banz

Sushi in Seattle. Lonnie is the author of The Project Management Advisor: 18 Major Project Screw-ups and How to Cut Them Off at the Pass (Prenti

Hall, 2004), The Truth About Getting Your Point Across (Prentice Hall, 2006), and Leadership Made Simple (Amazon.com, 2006).
http://office.microsoft.com/en-us/project-help/develop-practical-achievable-and-believable-quality-

standards-HA010172705.aspx
http://www.slideshare.net/KundanBhaduri/software-development-and-quality-management-at-

microsoft
Chapter 16: Quality Attributes

13 out of 19 rated this helpful - Rate this topic

For more details of the topics covered in this guide, see Contents of the Guide.

Contents

Overview
Common Quality Attributes
Additional Resources

Overview

Quality attributes are the overall factors that affect run-time behavior, system design, and user
experience. They represent areas of concern that have the potential for application wide impact
across layers and tiers. Some of these attributes are related to the overall system design, while others
are specific to run time, design time, or user centric issues. The extent to which the application
possesses a desired combination of quality attributes such as usability, performance, reliability, and
security indicates the success of the design and the overall quality of the software application.

When designing applications to meet any of the quality attributes requirements, it is necessary to
consider the potential impact on other requirements. You must analyze the tradeoffs between
multiple quality attributes. The importance or priority of each quality attribute differs from system to
system; for example, interoperability will often be less important in a single use packaged retail
application than in a line of business (LOB) system.

This chapter lists and describes the quality attributes that you should consider when designing your
application. To get the most out of this chapter, use the table below to gain an understanding of
how quality attributes map to system and application quality factors, and read the description of
each of the quality attributes. Then use the sections containing key guidelines for each of the quality
attributes to understand how that attribute has an impact on your design, and to determine the
decisions you must make to addresses these issues. Keep in mind that the list of quality attributes in
this chapter is not exhaustive, but provides a good starting point for asking appropriate questions
about your architecture.
Common Quality Attributes

The following table describes the quality attributes covered in this chapter. It categorizes the
attributes in four specific areas linked to design, runtime, system, and user qualities. Use this table to
understand what each of the quality attributes means in terms of your application design.

Category Quality Description


attribute

Design Conceptual Conceptual integrity defines the consistency and coherence of the overall des
Qualities Integrity designed, as well as factors such as coding style and variable naming.

Maintainability Maintainability is the ability of the system to undergo changes with a degree
features, and interfaces when adding or changing the functionality, fixing err

Reusability Reusability defines the capability for components and subsystems to be suita
Reusability minimizes the duplication of components and also the implemen

Run-time Availability Availability defines the proportion of time that the system is functional and w
Qualities system downtime over a predefined period. Availability will be affected by s
and system load.

Interoperability Interoperability is the ability of a system or different systems to operate succ


with other external systems written and run by external parties. An interopera
information internally as well as externally.

Manageability Manageability defines how easy it is for system administrators to manage the
instrumentation exposed for use in monitoring systems and for debugging an

Performance Performance is an indication of the responsiveness of a system to execute an


terms of latency or throughput. Latency is the time taken to respond to any e
within a given amount of time.

Reliability Reliability is the ability of a system to remain operational over time. Reliabil
to perform its intended functions over a specified time interval.

Scalability Scalability is ability of a system to either handle increases in load without im


readily enlarged.

Security Security is the capability of a system to prevent malicious or accidental actio


or loss of information. A secure system aims to protect assets and prevent un

System Supportability Supportability is the ability of the system to provide information helpful for i
Qualities correctly.

Testability Testability is a measure of how easy it is to create test criteria for the system
determine if the criteria are met. Good testability makes it more likely that fa
manner.

User Usability Usability defines how well the application meets the requirements of the use
Qualities globalize, providing good access for disabled users, and resulting in a good o

The following sections describe each of the quality attributes in more detail, and provide guidance
on the key issues and the decisions you must make for each one:

Availability
Conceptual Integrity
Interoperability
Maintainability
Manageability
Performance
Reliability
Reusability
Scalability
Security
Supportability
Testability
User Experience / Usability

Availability

Availability defines the proportion of time that the system is functional and working. It can be
measured as a percentage of the total system downtime over a predefined period. Availability will be
affected by system errors, infrastructure problems, malicious attacks, and system load. The key issues
for availability are:
A physical tier such as the database server or application server can fail or become
unresponsive, causing the entire system to fail. Consider how to design failover support for
the tiers in the system. For example, use Network Load Balancing for Web servers to distribute
the load and prevent requests being directed to a server that is down. Also, consider using a
RAID mechanism to mitigate system failure in the event of a disk failure. Consider if there is a
need for a geographically separate redundant site to failover to in case of natural disasters
such as earthquakes or tornados.
Denial of Service (DoS) attacks, which prevent authorized users from accessing the system,
can interrupt operations if the system cannot handle massive loads in a timely manner, often
due to the processing time required, or network configuration and congestion. To minimize
interruption from DoS attacks, reduce the attack surface area, identify malicious behavior, use
application instrumentation to expose unintended behavior, and implement comprehensive
data validation. Consider using the Circuit Breaker or Bulkhead patterns to increase system
resiliency.
Inappropriate use of resources can reduce availability. For example, resources acquired too
early and held for too long cause resource starvation and an inability to handle additional
concurrent user requests.
Bugs or faults in the application can cause a system wide failure. Design for proper exception
handling in order to reduce application failures from which it is difficult to recover.
Frequent updates, such as security patches and user application upgrades, can reduce the
availability of the system. Identify how you will design for run-time upgrades.
A network fault can cause the application to be unavailable. Consider how you will handle
unreliable network connections; for example, by designing clients with occasionally-
connected capabilities.
Consider the trust boundaries within your application and ensure that subsystems employ
some form of access control or firewall, as well as extensive data validation, to increase
resiliency and availability.

Conceptual Integrity

Conceptual integrity defines the consistency and coherence of the overall design. This includes the
way that components or modules are designed, as well as factors such as coding style and variable
naming. A coherent system is easier to maintain because you will know what is consistent with the
overall design. Conversely, a system without conceptual integrity will constantly be affected by
changing interfaces, frequently deprecating modules, and lack of consistency in how tasks are
performed. The key issues for conceptual integrity are:

Mixing different areas of concern within your design. Consider identifying areas of concern
and grouping them into logical presentation, business, data, and service layers as appropriate.
Inconsistent or poorly managed development processes. Consider performing an Application
Lifecycle Management (ALM) assessment, and make use of tried and tested development
tools and methodologies.
Lack of collaboration and communication between different groups involved in the
application lifecycle. Consider establishing a development process integrated with tools to
facilitate process workflow, communication, and collaboration.
Lack of design and coding standards. Consider establishing published guidelines for design
and coding standards, and incorporating code reviews into your development process to
ensure guidelines are followed.
Existing (legacy) system demands can prevent both refactoring and progression toward a new
platform or paradigm. Consider how you can create a migration path away from legacy
technologies, and how to isolate applications from external dependencies. For example,
implement the Gateway design pattern for integration with legacy systems.

Interoperability

Interoperability is the ability of a system or different systems to operate successfully by


communicating and exchanging information with other external systems written and run by external
parties. An interoperable system makes it easier to exchange and reuse information internally as well
as externally. Communication protocols, interfaces, and data formats are the key considerations for
interoperability. Standardization is also an important aspect to be considered when designing an
interoperable system. The key issues for interoperability are:

Interaction with external or legacy systems that use different data formats. Consider how you
can enable systems to interoperate, while evolving separately or even being replaced. For
example, use orchestration with adaptors to connect with external or legacy systems and
translate data between systems; or use a canonical data model to handle interaction with a
large number of different data formats.
Boundary blurring, which allows artifacts from one system to defuse into another. Consider
how you can isolate systems by using service interfaces and/or mapping layers. For example,
expose services using interfaces based on XML or standard types in order to support
interoperability with other systems. Design components to be cohesive and have low coupling
in order to maximize flexibility and facilitate replacement and reusability.
Lack of adherence to standards. Be aware of the formal and de facto standards for the domain
you are working within, and consider using one of them rather than creating something new
and proprietary.

Maintainability

Maintainability is the ability of the system to undergo changes with a degree of ease. These changes
could impact components, services, features, and interfaces when adding or changing the
applications functionality in order to fix errors, or to meet new business requirements.
Maintainability can also affect the time it takes to restore the system to its operational status
following a failure or removal from operation for an upgrade. Improving system maintainability can
increase availability and reduce the effects of run-time defects. An applications maintainability is
often a function of its overall quality attributes but there a number of key issues that can directly
affect maintainability:

Excessive dependencies between components and layers, and inappropriate coupling to


concrete classes, prevents easy replacement, updates, and changes; and can cause changes to
concrete classes to ripple through the entire system. Consider designing systems as well-
defined layers, or areas of concern, that clearly delineate the systems UI, business processes,
and data access functionality. Consider implementing cross-layer dependencies by using
abstractions (such as abstract classes or interfaces) rather than concrete classes, and minimize
dependencies between components and layers.
The use of direct communication prevents changes to the physical deployment of
components and layers. Choose an appropriate communication model, format, and protocol.
Consider designing a pluggable architecture that allows easy upgrades and maintenance, and
improves testing opportunities, by designing interfaces that allow the use of plug-in modules
or adapters to maximize flexibility and extensibility.
Reliance on custom implementations of features such as authentication and authorization
prevents reuse and hampers maintenance. To avoid this, use the built-in platform functions
and features wherever possible.
The logic code of components and segments is not cohesive, which makes them difficult to
maintain and replace, and causes unnecessary dependencies on other components. Design
components to be cohesive and have low coupling in order to maximize flexibility and
facilitate replacement and reusability.
The code base is large, unmanageable, fragile, or over complex; and refactoring is
burdensome due to regression requirements. Consider designing systems as well defined
layers, or areas of concern, that clearly delineate the systems UI, business processes, and data
access functionality. Consider how you will manage changes to business processes and
dynamic business rules, perhaps by using a business workflow engine if the business process
tends to change. Consider using business components to implement the rules if only the
business rule values tend to change; or an external source such as a business rules engine if
the business decision rules do tend to change.
The existing code does not have an automated regression test suite. Invest in test automation
as you build the system. This will pay off as a validation of the systems functionality, and as
documentation on what the various parts of the system do and how they work together.
Lack of documentation may hinder usage, management, and future upgrades. Ensure that you
provide documentation that, at minimum, explains the overall structure of the application.

Manageability

Manageability defines how easy it is for system administrators to manage the application, usually
through sufficient and useful instrumentation exposed for use in monitoring systems and for
debugging and performance tuning. Design your application to be easy to manage, by exposing
sufficient and useful instrumentation for use in monitoring systems and for debugging and
performance tuning. The key issues for manageability are:
Lack of health monitoring, tracing, and diagnostic information. Consider creating a health
model that defines the significant state changes that can affect application performance, and
use this model to specify management instrumentation requirements. Implement
instrumentation, such as events and performance counters, that detects state changes, and
expose these changes through standard systems such as Event Logs, Trace files, or Windows
Management Instrumentation (WMI). Capture and report sufficient information about errors
and state changes in order to enable accurate monitoring, debugging, and management.
Also, consider creating management packs that administrators can use in their monitoring
environments to manage the application.
Lack of runtime configurability. Consider how you can enable the system behavior to change
based on operational environment requirements, such as infrastructure or deployment
changes.
Lack of troubleshooting tools. Consider including code to create a snapshot of the systems
state to use for troubleshooting, and including custom instrumentation that can be enabled
to provide detailed operational and functional reports. Consider logging and auditing
information that may be useful for maintenance and debugging, such as request details or
module outputs and calls to other systems and services.

Performance

Performance is an indication of the responsiveness of a system to execute specific actions in a given


time interval. It can be measured in terms of latency or throughput. Latency is the time taken to
respond to any event. Throughput is the number of events that take place in a given amount of time.
An applications performance can directly affect its scalability, and lack of scalability can affect
performance. Improving an applications performance often improves its scalability by reducing the
likelihood of contention for shared resources. Factors affecting system performance include the
demand for a specific action and the systems response to the demand. The key issues for
performance are:

Increased client response time, reduced throughput, and server resource over utilization.
Ensure that you structure the application in an appropriate way and deploy it onto a system
or systems that provide sufficient resources. When communication must cross process or tier
boundaries, consider using coarse-grained interfaces that require the minimum number of
calls (preferably just one) to execute a specific task, and consider using asynchronous
communication.
Increased memory consumption, resulting in reduced performance, excessive cache misses
(the inability to find the required data in the cache), and increased data store access. Ensure
that you design an efficient and appropriate caching strategy.
Increased database server processing, resulting in reduced throughput. Ensure that you
choose effective types of transactions, locks, threading, and queuing approaches. Use efficient
queries to minimize performance impact, and avoid fetching all of the data when only a
portion is displayed. Failure to design for efficient database processing may incur unnecessary
load on the database server, failure to meet performance objectives, and costs in excess of
budget allocations.
Increased network bandwidth consumption, resulting in delayed response times and
increased load for client and server systems. Design high performance communication
between tiers using the appropriate remote communication mechanism. Try to reduce the
number of transitions across boundaries, and minimize the amount of data sent over the
network. Batch work to reduce calls over the network.

Reliability

Reliability is the ability of a system to continue operating in the expected way over time. Reliability is
measured as the probability that a system will not fail and that it will perform its intended function
for a specified time interval. The key issues for reliability are:

The system crashes or becomes unresponsive. Identify ways to detect failures and
automatically initiate a failover, or redirect load to a spare or backup system. Also, consider
implementing code that uses alternative systems when it detects a specific number of failed
requests to an existing system.
Output is inconsistent. Implement instrumentation, such as events and performance counters,
that detects poor performance or failures of requests sent to external systems, and expose
information through standard systems such as Event Logs, Trace files, or WMI. Log
performance and auditing information about calls made to other systems and services.
The system fails due to unavailability of other externalities such as systems, networks, and
databases. Identify ways to handle unreliable external systems, failed communications, and
failed transactions. Consider how you can take the system offline but still queue pending
requests. Implement store and forward or cached message-based communication systems
that allow requests to be stored when the target system is unavailable, and replayed when it is
online. Consider using Windows Message Queuing or BizTalk Server to provide a reliable
once-only delivery mechanism for asynchronous requests.

Reusability

Reusability is the probability that a component will be used in other components or scenarios to add
new functionality with little or no change. Reusability minimizes the duplication of components and
the implementation time. Identifying the common attributes between various components is the first
step in building small reusable components for use in a larger system. The key issues for reusability
are:

The use of different code or components to achieve the same result in different places; for
example, duplication of similar logic in multiple components, and duplication of similar logic
in multiple layers or subsystems. Examine the application design to identify common
functionality, and implement this functionality in separate components that you can reuse.
Examine the application design to identify crosscutting concerns such as validation, logging,
and authentication, and implement these functions as separate components.
The use of multiple similar methods to implement tasks that have only slight variation.
Instead, use parameters to vary the behavior of a single method.
Using several systems to implement the same feature or function instead of sharing or
reusing functionality in another system, across multiple systems, or across different
subsystems within an application. Consider exposing functionality from components, layers,
and subsystems through service interfaces that other layers and systems can use. Use
platform agnostic data types and structures that can be accessed and understood on different
platforms.

Scalability

Scalability is ability of a system to either handle increases in load without impact on the performance
of the system, or the ability to be readily enlarged. There are two methods for improving scalability:
scaling vertically (scale up), and scaling horizontally (scale out). To scale vertically, you add more
resources such as CPU, memory, and disk to a single system. To scale horizontally, you add more
machines to a farm that runs the application and shares the load. The key issues for scalability are:

Applications cannot handle increasing load. Consider how you can design layers and tiers for
scalability, and how this affects the capability to scale up or scale out the application and the
database when required. You may decide to locate logical layers on the same physical tier to
reduce the number of servers required while maximizing load sharing and failover capabilities.
Consider partitioning data across more than one database server to maximize scale-up
opportunities and allow flexible location of data subsets. Avoid stateful components and
subsystems where possible to reduce server affinity.
Users incur delays in response and longer completion times. Consider how you will handle
spikes in traffic and load. Consider implementing code that uses additional or alternative
systems when it detects a predefined service load or a number of pending requests to an
existing system.
The system cannot queue excess work and process it during periods of reduced load.
Implement store-and-forward or cached message-based communication systems that allow
requests to be stored when the target system is unavailable, and replayed when it is online.

Security

Security is the capability of a system to reduce the chance of malicious or accidental actions outside
of the designed usage affecting the system, and prevent disclosure or loss of information. Improving
security can also increase the reliability of the system by reducing the chances of an attack
succeeding and impairing system operation. Securing a system should protect assets and prevent
unauthorized access to or modification of information. The factors affecting system security are
confidentiality, integrity, and availability. The features used to secure systems are authentication,
encryption, auditing, and logging. The key issues for security are:
Spoofing of user identity. Use authentication and authorization to prevent spoofing of user
identity. Identify trust boundaries, and authenticate and authorize users crossing a trust
boundary.
Damage caused by malicious input such as SQL injection and cross-site scripting. Protect
against such damage by ensuring that you validate all input for length, range, format, and
type using the constrain, reject, and sanitize principles. Encode all output you display to users.
Data tampering. Partition the site into anonymous, identified, and authenticated users and
use application instrumentation to log and expose behavior that can be monitored. Also use
secured transport channels, and encrypt and sign sensitive data sent across the network
Repudiation of user actions. Use instrumentation to audit and log all user interaction for
application critical operations.
Information disclosure and loss of sensitive data. Design all aspects of the application to
prevent access to or exposure of sensitive system and application information.
Interruption of service due to Denial of service (DoS) attacks. Consider reducing session
timeouts and implementing code or hardware to detect and mitigate such attacks.

Supportability

Supportability is the ability of the system to provide information helpful for identifying and resolving
issues when it fails to work correctly. The key issues for supportability are:

Lack of diagnostic information. Identify how you will monitor system activity and
performance. Consider a system monitoring application, such as Microsoft System Center.
Lack of troubleshooting tools. Consider including code to create a snapshot of the systems
state to use for troubleshooting, and including custom instrumentation that can be enabled
to provide detailed operational and functional reports. Consider logging and auditing
information that may be useful for maintenance and debugging, such as request details or
module outputs and calls to other systems and services.
Lack of tracing ability. Use common components to provide tracing support in code, perhaps
though Aspect Oriented Programming (AOP) techniques or dependency injection. Enable
tracing in Web applications in order to troubleshoot errors.
Lack of health monitoring. Consider creating a health model that defines the significant state
changes that can affect application performance, and use this model to specify management
instrumentation requirements. Implement instrumentation, such as events and performance
counters, that detects state changes, and expose these changes through standard systems
such as Event Logs, Trace files, or Windows Management Instrumentation (WMI). Capture and
report sufficient information about errors and state changes in order to enable accurate
monitoring, debugging, and management. Also, consider creating management packs that
administrators can use in their monitoring environments to manage the application.
Testability

Testability is a measure of how well system or components allow you to create test criteria and
execute tests to determine if the criteria are met. Testability allows faults in a system to be isolated in
a timely and effective manner. The key issues for testability are:

Complex applications with many processing permutations are not tested consistently, perhaps
because automated or granular testing cannot be performed if the application has a
monolithic design. Design systems to be modular to support testing. Provide instrumentation
or implement probes for testing, mechanisms to debug output, and ways to specify inputs
easily. Design components that have high cohesion and low coupling to allow testability of
components in isolation from the rest of the system.
Lack of test planning. Start testing early during the development life cycle. Use mock objects
during testing, and construct simple, structured test solutions.
Poor test coverage, for both manual and automated tests. Consider how you can automate
user interaction tests, and how you can maximize test and code coverage.
Input and output inconsistencies; for the same input, the output is not the same and the
output does not fully cover the output domain even when all known variations of input are
provided. Consider how to make it easy to specify and understand system inputs and outputs
to facilitate the construction of test cases.

User Experience / Usability

The application interfaces must be designed with the user and consumer in mind so that they are
intuitive to use, can be localized and globalized, provide access for disabled users, and provide a
good overall user experience. The key issues for user experience and usability are:

Too much interaction (an excessive number of clicks) required for a task. Ensure you design
the screen and input flows and user interaction patterns to maximize ease of use.
Incorrect flow of steps in multistep interfaces. Consider incorporating workflows where
appropriate to simplify multistep operations.
Data elements and controls are poorly grouped. Choose appropriate control types (such as
option groups and check boxes) and lay out controls and content using the accepted UI
design patterns.
Feedback to the user is poor, especially for errors and exceptions, and the application is
unresponsive. Consider implementing technologies and techniques that provide maximum
user interactivity, such as Asynchronous JavaScript and XML (AJAX) in Web pages and client-
side input validation. Use asynchronous techniques for background tasks, and tasks such as
populating controls or performing long-running tasks.
http://msdn.microsoft.com/en-us/library/ee658094.aspx

1) Quality failures

10 Security, Quality Issues Microsoft Must Address Quickly

( Page 1 of 2 )

Microsoft is all over the news this week, but unfortunately for the company, it's for the wrong
reasons. Early this week it was revealed that a security flaw in Internet Explorer caused
opened the way for cyber attacks on Google users and some corporate networks. Now
officials in France and Germany are advising its citizens it is best to avoid using IE until at
least until Microsoft patches the IE vulnerability.

The company is also facing growing discontent over its handling of Windows Mobile and the
possibility of it offering two versions of the smartphone software, rather than one. Even
Microsoft's online division, led by Bing, is under fire over privacy concerns. Needless to say,
it's a difficult time for Microsoft.

As difficult as it might be now, it won't end until Redmond gets its act together and starts
working towards addressing the many troubles that are plaguing it. This isn't the late 1990s
or the beginning of the past decade when Microsoft was unchallenged as the dominant
force in the industry.

Today, its power is being challenged by other huge companies, including Google and
Apple. Worst of all, those companies are doing a fine job of providing a compelling
alternative most products that Microsoft offers.

Time is running out for Microsoft. The longer it waits to address its many issues, the worse
its chance will be of overcoming them. But the first step is identifying those troubles. So let's
take a look at the problems Microsoft needs to address in its operation.

1. Internet Explorer

Although it's still widely used, Internet Explorer enjoys far less clout in the browser space
than it once did. That's mainly due to Microsoft's mistakes with the platform. Internet
Explorer lacks many of the compelling extensions found in Firefox. It doesn't boast the
lightweight speed of Google Chrome. And judging by the revelation that Internet Explorer
caused the recent security issues plaguing Google users, it would seem that Microsoft's
browser can't even keep users as adequately protected as it should. If Microsoft wants to
offer a successful browser, it must get to work on Internet Explorer.

2. Windows Mobile

The current state of Windows Mobile is cause for alarm in Redmond. Although the company
plans to release Windows Mobile 6.5.3 soon, which should boast some updates over the
previous version of the software, it's Windows Mobile 7 that will be Microsoft's first foray into
the touch-enabled smartphone space. The only problem is, Microsoft hasn't given any
indication of when it will release the software. Moreover, recent reports are suggesting there
will be multiple versions of the mobile OSanother mistake. Microsoft needs to work hard
on delivering the best mobile platform it can and get it out to consumers as quickly as
possible. There is no more time to waste.

3. Bing

According to Nielsen, the software giant's search engine, Bing, lost market share to Google
in December, capturing less than 10 percent share. And now that Microsoft's data retention
policies have caught the attention of privacy watchdogs at the European Union, it seems
that Microsoft is spending more time trying to determine how to make regulators happy than
figuring out how to compete. Bing is a key component in Microsoft's Web strategy. The
company can't allow more missteps to stunt its growth.

4. The Web-based OS

Although Microsoft has Azure, which could become an important product in the company's

online endeavors, Google has set the pace for the Web-based OS. By announcing Chrome

OS and capturing much of the attention, Google has put Microsoft back on its heels,

potentially making it difficult for Redmond to catch up. Microsoft needs to quickly get an OS

to the Web.

5. Regulators

Over the past few months, Microsoft has faced mounting pressure from regulators on

several of its services. The company was forced to give users the option of choosing a

browser to use in Windows 7. Now it has agreed to save search data for just six months.

Microsoft has a target on its back. It needs to make a more concerted effort to get it off.

6. A suspect enterprise
The corporate world is unsure just how well it can trust Microsoft's Windows 7. Windows

Vista was a nightmare that most companies didn't adopt. Internet Explorer is in the news,

thanks to a security breach. And Windows Mobile is still the also-ran in the market. The

longer Microsoft allows the corporate world to remain suspect, the worse it will get.

Microsoft needs to actively improve enterprise relationships sooner rather than later.

7. Vista's legacy

Unfortunately for Microsoft, Windows Vista is still fresh in the minds of both corporate users

and consumers. The operating system was rife with incompatibility problems, security

issues, and thanks to its hunger for resources, required most users to pick up a new

computer just to run it. Vista has cast a long shadow over Redmond that it has yet to

emerge from. It must.

8. Security

Microsoft's security woes are troublesome. Not only is Windows not nearly as secure as

users would like, but Internet Explorer is causing trouble for users as well. Security is a

thorn in Microsoft's side that won't go away until the company makes a concerted effort to

fully address the security problems that are affecting its platforms. Admittedly, Microsoft has

done a better job of that recently by deploying Security Essentials and having a more open

line of communication, but it needs to do more before the mainstream loses faith in its

software.
9. Innovation

A quick glance around many of the markets where Microsoft operates reveals a staggering

issue: the competition is innovating far more rapidly than Microsoft. The iPhone makes

Windows Mobile obsolete. Mac OS X provides a clean, secure experience that Windows

can't easily match. Even Google and its Chrome OS beat Microsoft. That needs to change.

If Microsoft wants to turn things around, it needs to be more innovative. It needs to take

chances. Most of all, it needs to spend that bundle of cash sitting in its coffers on something

unique.

10. A look to the future

Following that, it's important to note that so far, Microsoft's strategies have focused mainly

on the short term. The future of software is, at least by most accounts, centered on the

Web. And yet, as the most important software company in the industry, Microsoft is lagging

behind the Web software innovators. That's a major blunder. As the leader in the market,

Microsoft needs to lead to maintain its position. It's not. And it could cost the company

dearly.

http://www.eweek.com/c/a/Security/10-Security-Quality-Issues-Microsoft-Must-Address-Quickly-

714807/

You might also like