Good Design

advertisement
George Blank
University Lecturer
Good Design
Still an art practiced by craftsmen, not
an engineering discipline
Some Designs are Classics
Question:
• How do you recognize a great design?
Answer:
• All your competitors file for bankruptcy
because you took away all of their
customers.
So what?
• How do you design great software? Very few
software designers even think about driving
competitors out of business when they design
software.
A really stupid idea
• When I first studied systems analysis about
1980, many “authorities” recommended that
you begin by modeling the existing system.
• That is almost the worst possible way to
design a system, especially in those days
when computers were essentially automating
existing manual systems.
Why is that stupid?
• Modeling the existing system almost guarantees that
you will reproduce the existing system with some
automation.
• For example, you will probably keep some activities
that are unnecessary in an automated system just
because they were necessary in a manual system.
Your system will be inefficient and overstaffed.
• You will tend to keep all the problems of the old
system and introduce new problems as well!
Example of saving the old
The mechanism that
opens a car window was
designed to be operated
by a hand crank at a
comfortable position for
a person seated in the
car. It is unnecessarily
complex due to its off
center location and the
need to obtain leverage.
Power windows
• Most car manufacturers
just put a motor where
the crank was. But that
required extra power,
extra weight, and a
stronger lever that was
prone to failure.
A Better Design?
• With a straight toothed lever,
you could use a smaller
motor, save weight, save
money, use less leverage,
and have more reliability and
better gas mileage. By
saving 10 pounds per car,
you could save the
equivalent of one car for
every 350 cars made.
Actual Power Window Types
Scissors type
Cable type
Bowden type
Examples from Italian Manufacturer ElectricLife Windows
Optimization
• In a competitive economy, over time inefficient
practices tend to be eliminated as business finds
better (more profitable) ways to do the same things.
Businesses that use the older ways tend to go broke.
• But all systems can only be optimized around present
resources. A good new resource, such as a
computer, always changes the optimal strategy.
Disintermediation
• Most of the productivity gains from computers
have come from disintermediation. That is a
fancy term that basically means “cutting out
the middleman.”
• A computer is primarily a communications
tool. Efficient communication allows us to
avoid unnecessary tasks and costs.
Example
• Most large companies have flattened their hierarchies
since automation, getting rid of middle managers.
• The two primary tasks of middle management were
to gather information from subordinates to pass on to
upper management and to communicate the policies
of upper management to the workers. If
communication is automated, fewer people need to
do it.
• That is disintermediation.
Another example
• Small merchants are not as efficient as (good) large
merchants. They can not get big discounts by
ordering in truckload quantities. They survive on
convenience and lack of price competition.
• Around 1970, large malls started to be built all around
the United States. Whenever a new mall was built,
many small merchants were driven out of business.
• In smaller towns, Wal-Mart had the same effect.
Knowledge is power
• Merchants survive by charging more for goods than they
pay for them. It is to their advantage to reduce your ability
to know their costs and to shop around and see what their
competitors are charging.
• The Internet has changed the nature of an auto
dealership. Now most new car customers know what they
want and how much it will cost the dealer before they buy
the car. Now car dealers have to make their money
where the customer lacks knowledge, on trade-in values,
used cars, and the service and parts departments.
Brokers are hurting
• A broker is in the business of bringing buyers and
sellers together. Where there are efficient
communications that allow buyers and sellers to find
each other without brokers, brokers have to become
much more efficient to survive.
• Travel agencies are in trouble, because most airline
tickets are now sold direct. Since the airlines no
longer need the agencies, they have reduced or
eliminated commissions.
And your point is?
• Newspapers are threatened by the Internet. Craig’s
List alone probably reduces newspaper classified ad
revenues by $50 million a year.
• All of these are examples of disintermediation. If
disintermediation is a large part of the benefit of
automation, shouldn’t designers think about it every
time they design a system?
Goal driven systems
• A best practice in software development is to
focus on stakeholder goals instead of the
functions or activities to be performed by a
system.
• In essence, focusing on goals allows us to
avoid reproducing functions that are not
necessary to reach those goals. (More
disintermediation!)
What goals?
• There are three basic types of customers in
the economy.
• Business
• Consumers
• Government
• Each type has different goals.
Business Goals
• Business has the following goals:
– More Profit
– Lower Costs
– Growth (in size, value, market share, pricing
power)
– Reduction in competition (buy them or drive
them out of business)
Consumer Goals
• Consumers want
–
–
–
–
–
Economy (lower prices)
Convenience (less time)
Reliability (no hassles)
Status (style and perceived quality)
Pleasure (sex, drugs, and music?)
Government goals
• People in power tend to have the primary goal of
remaining in power.
• While they are happy to pass laws that benefit
special interests and grant monopolies in return for
campaign contributions, they are aware that the
customers of government are business and
consumers, so they have to meet some business and
consumer goals if voters hold them accountable.
Government example
• My water and sewer bill is an example of the difference in
government. It is the only bill I get that does not have a
return envelope. The town doesn’t have to worry about
customer convenience. If your payment is late, they add a
fine to your next bill.
• I had a septic system. When the town put in sewers, I had
to pay a sewer assessment, pay for a plumber to hook me
up, and then pay every month for service. Each of those
items cost thousands of dollars, and I had no choice unless I
wanted to sell my house and move to another town.
Fitness for a purpose
• Software development process is about
controlling the three basic risks of time (late
delivery), cost (over budget) and quality (not
meeting requirements).
• One of the most appropriate definitions of
quality comes from Philip Crosby— “quality is
fitness for a purpose.” In other words, quality
is defined by your goals.
Case Study - Automobiles
• We have had many great cars in the past. They
include the Stutz Bearcat, the Austin Boat-tail
Speedster, the Packard Limousine, the Duisenberg
Model J, and the Studebaker Golden Hawk. I
deliberately chose examples from companies that are
no longer in business. Unfortunately, a great
company needs more than an occasional great
product to survive.
What makes a great car?
• Most of those car models had good styling and good
technology for their period. But consider these
examples of quality from the standpoint of fitness for
a purpose.
– Tata Nano
– The Ford Taurus and Buick Century
– Mercedes and Rolls Royce
• I imagine most people would only think of the last
group as representing quality.
Tata Nano
• How can the world’s cheapest car serve as an
example of quality? If we look at quality as fitness for
a purpose, this car was designed very well and with a
great deal of innovation to be purchased by someone
who otherwise could not afford a car.
• If your choice is between trying to carry your family
on a motorbike and being able to ride in a car, that is
a big difference in quality!
Taurus and Century
• These cars have embarrassed more teenage boys
than any others, as they borrowed the family car to
go on a date. They are average, very ordinary, family
cars, with nothing exciting about their styling. But
precisely because they tended to fit the needs of
many families, they are two of the best selling car
models in Detroit’s history.
• That is fitness for a purpose.
Rolls Royce and Mercedes
• These cars were built to burn money, not gas.
• Mercedes has a high reliability record because
dealers are trained to replace parts before they fail.
This results in very high service costs.
• But if your objective is to impress the neighbors (or
your girlfriend) and demonstrate that you are
financially well off, these cars were designed to be fit
for your purpose.
And your point is?
• If quality is fitness for a purpose, we must
design systems to meet the goals of the
stakeholders.
• That is one of the primary reasons why
designing around functions instead of goals
can lead to disaster.
Example of a quality design
Inventory Case Study
Case study: Inventory
• Inventory is expensive. If your store has
merchandise that will not be sold today, you
need to pay rent on a bigger store, you may
need to maintain an expensive warehouse,
you need to tie up working capital to finance
the goods, and the goods deteriorate, get
damaged or stolen, and become obsolete or
go out of style.
Inventory goals
• Why do stores have inventory?
• They want to make sales, and they have
found that most customers will go elsewhere
rather than special ordering merchandise.
• They also want to buy cheap and sell at a
profit. To do that, they need discounts for
buying in quantity.
Traditional Inventory
• Traditional inventory is based on economic order
quantity (EOQ). That is an approach that minimizes
financing costs, storage costs, shipping costs,
reordering costs and lost sales from being out of
stock while maximizing manufacturer discounts.
• In traditional inventory, customers and suppliers have
opposite goals. Customers want small orders and
big discounts. Manufacturers want big orders and
small discounts.
Fundamental Problems
• In addition to the contention between opposing goals
of customer and supplier, there are three
fundamental inventory problems:
• Out of stock. If you don’t have what the customer
wants, they go elsewhere.
• Overstock. If you order things that don’t sell, you
may have to sell them at a loss.
• Carrying costs. The costs of owning inventory.
Goal congruence
• These three problems are actually problems for both
customer and supplier.
• If you are out of stock, the sale might go not only to your
competitor, but also to the competitor of your supplier.
• If you are overstocked, you are less likely to purchase
from that supplier in the future.
• If you are carrying inventory, your supplier needs to keep
an inventory to resupply you.
• In these items, customer and supplier have the same
goals.
Effect on system design
• Wal-Mart designed their inventory system around
giving suppliers daily information on what was selling,
and gave the suppliers the responsibility for
restocking. Manufacturers no longer had to wait for
orders, and could reduce their own inventories.
• K-Mart automated the traditional inventory based on
EOQ.
• The result? K-Mart went bankrupt, and the children of
Sam Walton became five of the ten richest people in
the world.
Review Question
• How does Wal-Mart’s inventory process
involve disintermediation?
Answer
• Obviously, automated reordering reduces work for
buyers who would otherwise have to place orders
and salespeople who would take them.
• But there are ripple effects throughout all the
companies involved. For example, with daily sales
by store, marketing departments can track the effects
of advertising, promotions and repackaging without
hiring analysts to gather the data.
More Best Practices
(besides disintermediation and
focusing on goals)
Study the problem first
• Another best practice in design is to understand the
problem before you attempt to design a solution.
• By focusing on the problem instead of a solution, you
are more likely to come up with an elegant and
innovative solution, and less likely to duplicate what
already exists. After all, why duplicate the existing
system—you already have it! Don’t pay for it a
second time!
Defer decisions
• A best practice derived from understanding the
problem is to defer decision making as late as
possible in the design process.
• The later you make a decision that will affect the
subsequent direction of the product, the more
information you will have about the problem before
you make the decision. That should result in a better
solution.
Design Patterns
• When you find classic solutions to common
problems, use them as templates to reduce
errors and increase reliability.
Art, Science, and Engineering
• Art (Craftsmanship) is developing elegant and
innovative solutions to problems.
• Science is a disciplined approach to discovering new
information.
• Engineering is applying proven methods to a well
structured problem.
• Systems analysis is a science. Software
development is engineering. But system design is an
art.
Not “Paint by numbers”
• There was a time when it was popular to sell “paintings”
that consisted of line drawings with numbers inside each
space, and corresponding paint sets where the colors
matched the numbers. You painted the drawing and you
had an “original artwork.” Naturally, the results were
awful. It was embarrassing to see someone display their
painting in the living room.
• Museums pay millions for art works by Da Vinci,
Rembrandt, Van Gogh, and Renoir. They don’t display
paint-by-number paintings.
And your point is…?
• You will not become a good designer by learning
methods, UML drawings, and cookbook recipes for
software development.
• Understanding disintermediation, focusing on goals,
studying the problem before thinking about solutions,
deferring decisions and seeking competitive
advantage can help you avoid the pitfalls of bad
design, but they cannot make you a good designer.
• Great design is a combination of creativity,
inspiration, genius, hard work, and experience.
Review
•
•
•
•
•
•
•
•
Don’t model the current system
Remember Disintermediation
Focus on Goals
Fitness for a Purpose
Study the Problem before you think about a solution
Defer decisions
Use good Design Patterns
Design as an artist, not a mechanic
Download