Download presentation
Presentation is loading. Please wait.
Published byLuke Flowers Modified over 8 years ago
1
1 Software Engineering Discussion for SCEC UseIT Intern Program Phil Maechling 26 May 2005 maechlin@usc.edu http://www.scec.org/cme
2
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.
3
3 Simple is Good "Any darn fool can make something complex; it takes a genius to make something simple." - Pete Seeger
4
4 Types of Software Development You can develop software a couple of ways. Each has value and can be satisfying. Hacker Approach Engineer Approach
5
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)
6
6 Hacker Hero Gallery
7
7 Power of Programming One person, alone in a room with a computer, and compiler, can change the world.
8
8 Hacker Mentality Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome.
9
9 Hacker Hero Gallery
10
10 Hacker Essential Reading Hackers – Steven Levy The New New Thing – Michael Lewis
11
11 The Power of Engineering Engineer Potential - By organizing group efforts, managing the communication between members, large scale tools and system can be produced.
12
12 Engineer Hero Gallery
13
13 Engineer Hero Gallery
14
14 Engineer Hero Gallery
15
15 Engineering Challenge is Working With Groups of People
16
16 Engineering Challenge is “Does it Work” is well Defined
17
17 Software Engineering Essential Reading Mythical Man Months – Robert Brooks The Soul of a New Machine – Tracy Kidder
18
18 Difference Between Hacking and Engineering is Scale There is a huge difference between what one person can build and a group can build.
19
19 One Person Scale
20
20 A Group of People
21
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 Building 200M – Healthcare Billing system, 60 Story Building
22
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.
23
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?
24
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.
25
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
26
26 Standard Aerospace Software Process
27
27 Standard Aerospace Software Process
28
28 Software Development Process
29
29 Software Times Changed
30
30 Software Times Changed
31
31 Revolutions Require an Alternative to Status Quo
32
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
33
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
34
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.
35
35 Software Engineering This Summer Personal skill development this summer should include skill of working with a group.
36
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.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.