The Systems Development Life Cycle is expressed as:
Design
starts when we choose the changes that need to be done.
In class and in an ideal world we complete analyzing the situation
before we start to choose the projects. In practice, we usually discover
the need for more information (Analysis) about the enterprise and its systems
as we choose our project.
Here is a definition of vision and an example from a project.
For example
. . . . . . . . . ( end of section Envisioning a Project) <<Contents | End>>
Selecting a Project
Story -- Diagnose problems and propose solutions thoughtfully
Once there was a tall office building with a set of elevators.
People always were complaining that they were too slow.
They would have to wait
when they entered the building before the elevator came.
Exercise in class: What are the problems? Propose solutions. Moral: TBA in class.
A good pattern for thinking is TEC from the British Cognitive Research Trust. TEC is the acronym for: Target Expand Contract.
Here is another useful pattern. When evauating an idea start by looking for the positive points and end by looking for things you don't know.
Principle -- Avoid Problems
The best way to solve a problem is to avoid having it in the first place.
Be aware that an important job when analyzing and designing systems
is to avoid problems rather than to create and then solve them.
Choosing your battles is a significant part of successful systems work.
Technique -- Personal Problem Solving
Sometimes our task is to solve a problem that exists in the current system.
Problem solving is a skill that you can learn. It pays to practice it.
I've put a set of online resources that you can refer to later at the end
of this section.
Here is a procedure I've used for many decades
| Criteria | Solution1 | Solution2 | Solution3 | ... |
|---|---|---|---|---|
| Feelings | ? | ? | ? | |
| Ease | ? | ? | ? | |
| Cost | ? | ? | ? | |
| fit with Goals | ? | ? | ? | |
| Best case | ? | ? | ? | |
| Worst case | ? | ? | ? | |
| How handle worst | ? | ? | ? | |
| ... |
| Criteria | Solution1 | Solution2 | Solution3 |
|---|---|---|---|
| Benefit | ? | ? | ? |
| Cost | ? | ? | ? |
| Risk1 | ? | ? | ? |
| ... |
Pattern -- Mathematical Problem Solving
. . . . . . . . . ( end of section Details) <<Contents | End>>
Moving from the "early adopters" to the "early majority" is difficult -- it is known as bridging the chasm. If your solution doesn't cross the chasm then it does not enter the mainstream and will vanish from sight.
Pattern -- The Inventor's Dilemma
Clayton M Christensen wrote a very good book (
"The Innovator's Dilemma: When new Technologies cause Great Firms to Fail",
Harvard Business School Press Boston MA 1997 ISBN 0-87584-585-1 CR9802-0061
). He documented the way that a new technology enters a market
and then comes to dominate it. Paradoxically, initially the old system is
more effective than the new one. Only evolution through usage makes the new
system better. Thus new technology is rarely introduced by companies that
already have a dominant product. The technology comes from a start-up with
nothing to loose.
Some large companies handle this by creating separate parts charged with
coming up with a new product which must then compete with the old
internally. Examples are the Java language developed inside Sun and The PC
developed inside IBM. You may find this branch of the organization called
the "Skunk Works".
Notice that this also means that technological innovations tend to start with a backward step. It takes several iterations to get a better system that people are happy to adopt. For this reason you would be wise to always develop projects as a series of iterations with time to test ideas with the stakeholders well before the deadline.
Phase vs Iteration
(phase): a section of time when a particular part of a method is followed.
(iteration): a cycle through a series of steps that moves something closer to its ideal state.
Principle -- Network Effects
You will often find that a piece of software's value depends on how many
people are using it -- the more the better. This effect was first noted by
economists with respect to telephones: the value of owning a telephone
depends, critically, on there being people you can talk to using the phone.
Hence the name: Network Effect or Network Externality.
In software, for example, it pays to have a the same word processor as everybody else. The value of your word processor is higher if lots of other people also use it. So, as a rule, a better connected product does better. An example is Apple's Newton that did not interface with their Macintosh series -- and failed. On the other hand, Palm Pilots have always have HotSynched with PC's -- and are still with us. And of course now Apple has the iPhone, iPods, and iTunes that connect with PCs and Mac's.
A wise designer will design a new system to communicate well with the old systems so that people using the new system are not isolated. This might be called
Exception: in the presence of malicious and infective software it can pay to
be different. Diversity slows the spread of viruses.
Principle -- There are many ways to skin a cat
Never forget that software doesn't have to be developed internally. You can
. . . . . . . . . ( end of section Document -- Statement of Work) <<Contents | End>>
Document -- Project scope
. . . . . . . . . ( end of section Document -- Project scope) <<Contents | End>>
Technique -- Assessing Feasibility
(AMOW): I added three kinds of feasibility (Legal, Political, and Ethical) that are not found in most texts.
They are based on my experience of projects.
Pattern -- The Bathtub Law of Costs and Reliability
Costs of a system tend to start high and then slowly decline,
and then stay low for a long time, until the system starts to need extra maintenance and ultimately replacement.
We call such a pattern a
Bathtub curve.
Bathtub curves were first observed for failure rates.... but the same curve
fits the costs of a system.
name::type=definitionso that I can extract them into a data file "dictionary" that my search engine's uses to find things on my web site. The notation (Bachus Naur Form or BNF) has been used since the 1960's to define computer languages. In the 1970's it was extended(EBNF)... and through the 1980s onward I experimented with stretching it to the limit -- eXtreme Backus Naur Form (XBNF).
So, choosing the right technology for data stores, choosing the right places on the network, and making processes access data in the optimal sequence all add up to a winning architecture.
. . . . . . . . . ( end of section Performance depends on the location of the data) <<Contents | End>>
Performance is Limited by the minimum resource available
Read this article [ 001304.html ] (Coding Horror).
. . . . . . . . . ( end of section Performance is Limited by the minimum resource available) <<Contents | End>>
Performance depends on load
Scalable systems respond linearly to growth -- costs go up on a straight line not a curve.
. . . . . . . . . ( end of section Performance depends on load) <<Contents | End>>
Designing for Performance
. . . . . . . . . ( end of section Designing for Performance) <<Contents | End>>
. . . . . . . . . ( end of section Performance) <<Contents | End>>
How far in advance should you plan
Your design should be a good design for the whole life time of the system.
This is an arbitrary time and
if the system works well the life time will be longer than you
would ever believe possible. But in planning: look at how
long it is before a system will be replaced. For planning activities within
a project follow these guidelines
For example, if you are producing a piece of software for the mass market the most critical quality is time to market and just about all the others (reliability, usability, completeness, ...) have been sacrificed to beat a rival company to the market. For NASA however reliability tops the list... but they also have hard deadlines (launch windows). For many businesses the most critical non-functional requirement is maintainability: being able to cheaply make changes in running software.
. . . . . . . . . ( end of section Architectural Choices) <<Contents | End>>
. . . . . . . . . ( end of section Selecting a Project) <<Contents | End>>
Document -- Systems Design Specification -- SDS
The target of all this activity is to know what needs to be done to
make the systems run better. Typically a project needs to define
a "Systems Design Specification" or SDS. A typical one looks like
this
Note: your final project report will be a Systems Design Specification. You will develop it during this course. You will be given extra time to perfect it before your final presentation in the 20th class meeting.
Plan Presentations
Start by visualizing the audience and the room.
Think about your preferred styles and techniques.
What about the equipment?
Focus on your objectives.
Present: opportunities, strengths, resources, weaknesses, and threats
Present ideas that will appeal to the audience whenever possible.
Slides and PowerPoint
Movement: Don't animate -- unless it is special, meaningful, or to get attention.
A Good Structure for a presentation:
Design: Choose the right layout, line, scale, color, movement, and timing.
Layout
Good Layouts: Heading and simple diagram, Heading + 4 or 5 bullets... Empty space. NO PARAGRAPHS.
Bullet points: aim for sentences rather than keywords.
Paragraph? Long Text? Make a handout. Share the reading.
Mix layouts. Avoid "machine gun" bullets.
Scale and Color
Big is seen as most important.
Minimum font 16pt, San Serif.
Big text is better than small. Big hall->big text.
Color: moods and style rather than content -- many color-blind people.
Careful: foreground must contrast background.
Check lighting in room.
. . . . . . . . . ( end of section Slides) <<Contents | End>>
The Twenty Minute Law
If you don't change pace, style, or process every 20 minutes
your audience will be asleep.
The twenty-twenty meeting
Each person is give time to present 20 PowerPoint slides with only 20 seconds per
slide.
Check
In your slides and handouts check for
Technology. Check room out before hand: systems and visibility.
Laser pointers
Avoid laser pointer: program a red circle cursor on computer. Use a pen
on the OHP. Rest your hand on something to avoid shaking. Laser is
only good when you are a long way from the projector system... or
you can loan it to the audience.
Lighting
Lighting? When you project reduce the lighting. Make sure that
every one is happy with the lighting -- note: deaf people need light to read
lips.
PlanB.
Things go wrong. Make a list and think up some work a rounds.
Practice to be spontaneous
Do NOT read your slides. Tell stories about the facts on the slides.
Share metaphors, stories, & analogies verbally. Show Facts visually.
Notes? Put key words on cards and "palm them".
Prepare. Test. Dress.
Dress to fit audience and topic. In OOPSLA, jeans but in IBM: shirt/blouse
and tie.
Don't forget to switch any PC doing AVs to Presentation mode.
Take a few deep breaths.
Audience Involvement
Eye contact:
Look at the audience. Talk to them. SMILE.
Invent ways to find out audience experiences/needs and link to them.
Invent ways to allow/encourage thinking about the data, making plans, doing things.
Ask for ideas and display them as they happen -- honestly.
Distribute cards and ask people to put questions or ideas on them -- collect.
Circulate ideas on cards and rate them for importance to the people
in the audience.
Handouts
If you handout notes.... do it last! Otherwise people can go to sleep.
You can give out an outline first with space for the
audience to write notes.
If you are presenting a long document ... hand out at the best time
and try to involve the audience in presenting parts of it.
Walkthoughs and Inspections find errors
You need a document that people have had a chance to see, a way to
project the document, and a way to take notes. Lead people through
the document/artifact and ask what is wrong with it.
Don't defend it or try to persuade people.
Don't fix it: take note, thank, and promise to fix later.
. . . . . . . . . ( end of section Presentations) <<Contents | End>>
Georges Polya was a mathematician who wrote a book "How to Solve it" about solving mathematical problems. It is worth reading... I borrowed his ideas and prepared a page "polya.html" based on his work. [ ../samples/polya.html ]
Here [ http://www.dilbert.com/strips/comic/2009-10-09/ ] is a relevant Dilbert cartoon on the dark side of organizations choosing what projects to do.
Wikipedia:
[ Brain-storming ]
(with Activity Diagrams)
[ Lateral_thinking ]
[ How_to_Solve_It ]
[ Cognitive_Research_Trust ]
[ Dr_Edward_De_Bono ]
Patterns of Technology Adoption
You can find a good summary at
[ Technology_adoption_lifecycle ]
in the Wikipedia.
That article lead me to
[ pencil.htm ]
which you will (1) enjoy, and (2) learn something about changing
technology.
An Example in the history of the computerized spreadsheet:
Grier07b
. . . . . . . . . ( end of section Online Resources) <<Contents | End>>
. . . . . . . . . ( end of section Choosing Projects) <<Contents | End>>
Abbreviations
Also see
[ glossary.html ]
for more special abbreviations and phrases.
End