1 software engineering discussion for scec useit intern program phil maechling 26 may 2005...

36
1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 [email protected] http://www.scec.org/cme

Upload: luke-flowers

Post on 05-Jan-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

1

Software Engineering Discussion for SCEC UseIT Intern Program

Phil Maechling26 May [email protected]://www.scec.org/cme

Page 2: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

2

Creating Over Consuming

Science is a creative activity.

Developing software is a creative activity.

Try them out this summer. Give them a chance. You could find something meaningful to you personally.

Page 3: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

3

Simple is Good

"Any darn fool can make something complex; it takes a genius to make something simple."- Pete Seeger

Page 4: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

4

Types of Software Development

You can develop software a couple of ways. Each has value and can be satisfying.

• Hacker Approach

• Engineer Approach

Page 5: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

5

Power of Programming

Hacker Potential - One person, alone in a room with a computer, and compiler, can change the world.

(Note: Others occupations with this power include writers, musicians, artists, scientists)

Page 6: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

6

Hacker Hero Gallery

Page 7: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

7

Power of Programming

One person, alone in a room with a computer, and compiler, can change the world.

Page 8: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

8

Hacker Mentality

Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome.

Page 9: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

9

Hacker Hero Gallery

Page 10: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

10

Hacker Essential Reading

• Hackers – Steven Levy

• The New New Thing – Michael Lewis

Page 11: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

11

The Power of Engineering

Engineer Potential - By organizing group efforts, managing the communication between members, large scale tools and system can be produced.

Page 12: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

12

Engineer Hero Gallery

Page 13: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

13

Engineer Hero Gallery

Page 14: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

14

Engineer Hero Gallery

Page 15: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

15

Engineering Challenge is Working With Groups of People

Page 16: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

16

Engineering Challenge is “Does it Work” is well Defined

Page 17: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

17

Software Engineering Essential Reading

• Mythical Man Months – Robert Brooks

• The Soul of a New Machine – Tracy Kidder

Page 18: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

18

Difference Between Hacking and Engineering is Scale

There is a huge difference between what one person can build and a group can build.

Page 19: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

19

One Person Scale

Page 20: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

20

A Group of People

Page 21: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

21

The Power of Organization

Engineering – Cost of software systems are equivalent to large buildings.

50K – Small Program, 2BRM House Wichita 10M – SCEC/CME, 5 Story Office Building200M – Healthcare Billing system, 60 Story

Building

Page 22: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

22

Software Engineering Class in School

• Does not teach Programming! Assumes you already know how to program.

• Describes how large projects are organized, planned, scheduled, cost estimated.

• Usually a heavy load class, group projects, software development task and often competition between groups.

Page 23: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

23

Software Engineering Issues

• How do we define what the system should do (requirements)?

• How much will system cost?

• How long will it take to develop?

• How do we organize the group (who does what)?

• How do we verify system is giving correct answer?

Page 24: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

24

Software Development as a Process

• Accumulated wisdom in the field says software development should be treated as a process.

• The process is repeated, even though the product being developed, changes.

• While there are many Software Engineering Processes. They typically deal with the same issues including: requirements, cost, schedule, testing, validation, managing changes.

Page 25: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

25

Software Development as a Process

1 - Initial  : At maturity level 1, processes are usually ad hoc and chaotic.

2 - Repeatable : At maturity level 2, Software development successes are repeatable.

3 - Defined  : At maturity level 3, processes are well characterized and understood, and are described in standards, procedures, tools, and methods.

4 - Managed  : Using precise measurements, management can effectively control the software development effort

5 - Optimizing  : Maturity level 5 focuses on continually improving process performance

Page 26: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

26

Standard Aerospace Software Process

Page 27: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

27

Standard Aerospace Software Process

Page 28: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

28

Software Development Process

Page 29: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

29

Software Times Changed

Page 30: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

30

Software Times Changed

Page 31: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

31

Revolutions Require an Alternative to Status Quo

Page 32: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

32

Expression of Values

The four main values of the agile methods are:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

Page 33: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

33

Agile/XP Process/Practices

1. Planning Game 2. Small Releases 3. Metaphor 4. Simple Design 5. Testing 6. Continuous Integration 7. Pair Programming 8. Collective Ownership 9. Refactoring 10. 40-Hour Week 11. On-Site Customer 12. Coding Standards

Page 34: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

34

Software Engineering This Summer

• Enginering requires more than Programming. Not every has to program.

• Group has room for both hackers and engineers

• No full time hackers. Some engineering required of everyone using an agile method

• Show skill, tolerance, patience, work ethic, and precedence of group interests over individual interests.

Page 35: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

35

Software Engineering This Summer

• Personal skill development this summer should include skill of working with a group.

Page 36: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu

36

Software Engineering This Summer

• Creating a functional and useful software system from a group this large will require an engineering process.

• Please participate with us in our Engineering Process.

• Our Engineering Process should reflect our values: Learning, People, Communications, Science, Creativity, Usefulness.