CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical...

16
CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1- 5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System Design, The Second-System Effect

Transcript of CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical...

Page 1: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

CSC 354 – Software Engineering, Spring 2013, Week 2

Mythical Man-Month Ch. 1-5Tar Pit, Mythical Man-Month, Surgical Team,

Aristocracy / Democracy & System Design, The Second-System Effect

Page 2: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

1. The Tar Pit

• The Programming Systems Product (p. 5)• Program -> Programming System >= 3x cost

• Interfaces, system integration• Interfaces for plug-ins on extensible systems• Extension language integration for interpreted systems

• Program -> Programming Product 3x cost• Generalization, testing, documentation, maintenance

• -> Programming Systems Product >= 9x cost

Page 3: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

The Joys of the Craft

• As the child delights in the mud pie, so the adult enjoys building things, especially things of her / his own design.

• There is the pleasure of making things that are useful to other people.

• Fashioning complex puzzle-like objects of interlocking moving parts and watching them work.

• The joy of always learning.• The delight of working in such a tractable (malleable)

medium.

Page 4: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

The Woes of the Craft

• One must perform perfectly.• Other people set the objectives and furnish the

information.• Quality may be constrained by the need to use other people’s

code libraries.

• Finding nitty little bugs is grunt work.• The fix & re-test cycle can drag on and on.• Many systems start to become obsolete upon (or

before) completion.

Page 5: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

2. The Mythical Man-Month

• Techniques of estimating poorly developed.• Estimating confuses effort with progress.• Poor managers promise the customers

unrealistic delivery dates / feature sets (mine).• Gutless estimating

• Schedule progress is poorly monitored.• Natural response is to add staff.

• Like dowsing a fire with gasoline.

Page 6: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

The Mythical Man-Month (ctd.)

• Optimism• Creativity: Idea, Implementation, Interaction

• The Man-Month• Cost varies with staff count X time.• Progress does not.• Communication costs: Training & Intercommunication

• Systems Test• Sequential constraints on component debugging &

system test• Brooks: 1/3 planning, 1/6 coding, ¼ component & early

system test, ¼ system test of all components in hand

Page 7: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

Regenerative Schedule Disaster

Page 8: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

Brook’s Law

Adding manpower to a late software project makes it later.

Page 9: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

3. The Surgical Team

• It’s all about Conceptual Integrity.• Integrated architecture from one or a few minds.

• 10:1 programmer skill differential• 5:1 program speed / size efficiency differential• Small, sharp teams are too slow (serial) for big

systems• Use Mill’s Proposal with hierarchical teams.

• Teams: http://faculty.kutztown.edu/parson/spring2013/csc354spring2013questions.pdf

Page 10: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

4. Aristocracy, Democracy & System Design

• Conceptual integrity is the most important consideration in system design.

• 1. How is it achieved?• 2. Does it imply an elite and a horde of

implementers?• 3. How to keep the architects from drifting

into the costly / impossible blue?• 4. How do the details get communicated?

Page 11: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

How is it achieved?

• The architect must have an underlying conceptual model for the system – That is the architecture!

• The architect must bring the architecture into the world.

• Formal or existing domain models help.• The architect must have expertise in realization of

architecture, i.e., implementation.

Page 12: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

Does it imply an elite & a horde of implementers?

• Creative design is hierarchical.– Creative activities: architecture, implementation,

realization

• Architect must listen to useful feedback.– Architect & team leaders must not “nickel &

dime” team members to death. It creates friction.

• Implementers must honor the architecture.– Architects must be benevolent dictators.

Page 13: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

How to keep an architect from drifting into the blue.

• Architects are seasoned designers & implementers.– They should continue keeping their hands dirty.

• Culture must reward technical expertise.– Use a dual career ladder to avoid diverting all

expertise into management.• Architect’s pay is tied to realistic architecture.• Architect’s pay is tied to successful architecture.

Page 14: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

How do details get communicated?

• Hierarchy– Hierarchical teams with well-aligned leaders

• Simple, direct writing & documentation– Illustrate well

• Cordial interpersonal relations– Again, don’t “nickel & dime.”

• Productive meetings– Don’t schedule meetings for meetings’ sake.– Many long meetings decrease signal : noise ratio.

Page 15: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

5. The Second System Effect

• There is a tendency to try to jam everything that didn’t make it into the first system into the second system.

• Use self-discipline.• Use approaches that worked in the first.• Newer methodologies are incremental & even

continual. Build something that runs and that you can test every day.

Page 16: CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.

Our course teams?

• Dr. Parson is the System Architect.• Individual team leaders are responsible for translating

architectural intent to team actions.– I will join any team that starts spinning its wheels.

• We are modeling a startup in the sense that our customers are planned, not current.– I have experience with musical games-in-planetarium.

• We will employ aspects of newer methodologies as the semester progresses.– We will also use tools to help communication, documentation.