1 software engineering discussion for scec useit intern program phil maechling 26 may 2005...
TRANSCRIPT
![Page 1: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/6.jpg)
6
Hacker Hero Gallery
![Page 7: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/9.jpg)
9
Hacker Hero Gallery
![Page 10: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/12.jpg)
12
Engineer Hero Gallery
![Page 13: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/13.jpg)
13
Engineer Hero Gallery
![Page 14: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/14.jpg)
14
Engineer Hero Gallery
![Page 15: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/19.jpg)
19
One Person Scale
![Page 20: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/20.jpg)
20
A Group of People
![Page 21: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/26.jpg)
26
Standard Aerospace Software Process
![Page 27: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/27.jpg)
27
Standard Aerospace Software Process
![Page 28: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/28.jpg)
28
Software Development Process
![Page 29: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/29.jpg)
29
Software Times Changed
![Page 30: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/30.jpg)
30
Software Times Changed
![Page 31: 1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062722/56649f275503460f94c3f262/html5/thumbnails/36.jpg)
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.