7/29/2019 1. IntroAndChapter1
1/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 1
CSCI 663
Chapter 1
7/29/2019 1. IntroAndChapter1
2/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 2
Software development as a student
Professor hands you assignment
You code the assignment
You run the tests the professor tells you to run
You doc it
You hand it in
7/29/2019 1. IntroAndChapter1
3/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 3
Real world software development
You are part of team that decides on whatcode will do
You are part of team that decides howit will do it
You code part of project
You define the tests you need to make, to be sure yourcode will not break
You test your code
Someone else tests your code together with other
people's code Someone installs your product on client computers
Client decides whether to pay you
7/29/2019 1. IntroAndChapter1
4/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 4
A few years later...
You get promoted, are a manager
After which you never:
design
code
test
Instead:
You are responsible for having other people do thesethings
7/29/2019 1. IntroAndChapter1
5/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 5
Which means...
Life in the real world: nothing like anything you havedone in computing so far.
This course: all the otherstuff.
The undergraduate A&D course (CSCI 467/567): Good
in t ro course. Programming: much more than you learn in your first
course.
Same with A&D/software engineering: much more to
than you learn in your first A&D course Goal of this course: you are prepared for real world
SW development, and prepared to manage real worldSW development.
7/29/2019 1. IntroAndChapter1
6/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 6
Goal of this course in more detail
Give you an edge over your competition
Most IT professionals:
Good at design & programming.
Mediocre to poor at understanding customers & their ITneeds
Poor at understanding their clients.
This course: Much more advanced knowledge
about How organizations work
What you do with your customers
7/29/2019 1. IntroAndChapter1
7/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 7
You will gain..
Knowledge of how to deal with clients
Skills for dealing with customers
Very sophisticated procedures for doing
frequent tasks Ex:
How do find out what your customers want and need
How to design a meeting/presentation
How to estimate a software project
What to do when the project slips its schedule
7/29/2019 1. IntroAndChapter1
8/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 8
In the real world:
What matters: producing systems that
Meet the needs of your clients
they agree meets their needs
Not: Software efficiency, system power, technical
elegance & sophistication, etc.
7/29/2019 1. IntroAndChapter1
9/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 9
Why this emphasis?
Most A&D courses: focus is on technical
content: architecture, good designs, patterns,
programming techiniques
This course: how to work with clients, how to runmeetings, how to understand clients, how to
manage SW projects and teams
Why the difference?
7/29/2019 1. IntroAndChapter1
10/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 10
Because...
What we study in here is what matters the most
in real world SW development:
Biggest effect on SW project success
Biggest effect on satisfying SW clients
7/29/2019 1. IntroAndChapter1
11/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 11
Industry track record
7/29/2019 1. IntroAndChapter1
12/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 12
Industry track record
28% success
23% failure (cancelled)
49% challenged.
Challenged: over budget, over time, and fewer
features/functions than planned.
Summary: 28% delivered what was promised, at
the promise time, for the promised price!!
7/29/2019 1. IntroAndChapter1
13/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 13
How "challenged"?
Cost overruns: 45%
Time overruns: 63%
Features: 67%
This is shameful. By academic standards, the
industry gets an F.
7/29/2019 1. IntroAndChapter1
14/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 14
Not due to technical problems
20% of software project failures due to a failure
of technology
Overwhelmingly, causes are:
Bad job on the requirements
Lack of customer involvement
7/29/2019 1. IntroAndChapter1
15/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 15
Relationship between technical and non-technical
Figure - ground
7/29/2019 1. IntroAndChapter1
16/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 16
Two faces or a vase?
7/29/2019 1. IntroAndChapter1
17/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 17
Software development figure/ground
Vase:technical
Faces: human/
organizational
7/29/2019 1. IntroAndChapter1
18/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 18
Figure/ground: the real point
When you're looking at the faces, the vase isgone can't see it, ask questions about it,
analyze it. And vice versa.
7/29/2019 1. IntroAndChapter1
19/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 19
No sloppy talk!
Technical and human/org intimately intertwined Changing one changes the others
Talking about one IS talking about the other
BUT: Usually: we are very careful and precise in describing the
system. We are very sloppy, loose, intuitive, crude, vague in describing
the client's organization and what they need.
pop psychology
no specification of who what system used for
abstractions
THIS IS NOT GOOD ENOUGH!
Being sloppy about client org IS being sloppy about thesystem!
7/29/2019 1. IntroAndChapter1
20/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 20
Needed:
Resources for being as precise in describing thecustomers as we are in describing the designand code.
Sloppiness: deadly in code, and deadly in talking
about customer needs Human system model: only such resource
available Communities & intentional action parametric
formulations Applications to software engineering situations &
tasks
7/29/2019 1. IntroAndChapter1
21/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 21
Learning to be precise about clients
Major goal of next 6 weeks: learn to specify
client work completely and precisely
Nothing left out
Nothing added
ONLY way to do this: learn to dissect
ordinary English to find the logical
structure of client org and its work Be warned: this is HARD
7/29/2019 1. IntroAndChapter1
22/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 22
Let's start: What is software engineering?
1. Simplest definition: Developing SW in the RW
2. Better: Developing SW for use by a group ofpeople
3. Better yet: Development of a SW system byone grp of people for use by another grp ofpeople
4. A complete, formal definition: the outcome of
the work practices of one group of people is aSW system which is to be used in the workpractices of another group of people.
7/29/2019 1. IntroAndChapter1
23/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 23
Definition 1 vs. Definition 4
Definition 1: correct, but not helpful
Definition 4: result of the work practices of onegrp of people is a SW system which is to be
used in the work practices of anothergrp of people.
Define formally!
7/29/2019 1. IntroAndChapter1
24/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 24
Payoff
We can be as precise & rigorous about the
human/organizational set of facts as we are
about the technical ones
7/29/2019 1. IntroAndChapter1
25/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 25
3-part system
Computer
system
Producers Clients
3
componentsof 1 system!
Human
systems
7/29/2019 1. IntroAndChapter1
26/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 26
Implications
The facts we need, as analysts, include are 2
distinct kinds of objects, processes, events, and
situations:
Technical Human/organizational.
Technical facts and human/organization facts
are not separate sub-systems; they are two
views of one system: figure/ground
Neitheris the whole story.
7/29/2019 1. IntroAndChapter1
27/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 27
Decisions
One system, not separate sub-systems.
Result: each kind of fact affects the other kind:
technical things affect the human/organizational
and vice versa.
Result: There is no such thing as a purely
technical decision
(a choice about technical things, like code and datastructures based on technical attributes and
characteristics).
7/29/2019 1. IntroAndChapter1
28/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 28
Facts NEVER speak for themselves
Many think: the facts speak for themselves
Put the technical facts and attributes on a scale; the
side of the scale with the most reasons wins
Never, never, never! Brute fact: ALL decisions are made by
individual persons, based on whatever they
consider relevant relevant, some of which may
are technical.
7/29/2019 1. IntroAndChapter1
29/29
Copyright Dr. H. Joel Jeffrey, Ph.D. 29
Good analysts must be able to...
Understand the whole story, including the
technical and the human/organizational aspects
i.e., the human-technical system.
Recognize when a situation calls for a focus on oneor other
Switch focus when called for
Recognize when thing are going wrong due to
aspects of the other world Ex: System does not provide functions to gather data unique
to how thus client does due diligence, because of their
company philosophySystem
functioning Client
practiceClient values