+ All Categories
Home > Documents > Software Process In The Real World Chris Platner.

Software Process In The Real World Chris Platner.

Date post: 20-Jan-2016
Category:
Upload: melissa-murphy
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
32
Software Process In The Real World Chris Platner
Transcript
Page 1: Software Process In The Real World Chris Platner.

Software Process In The Real World

Chris Platner

Page 2: Software Process In The Real World Chris Platner.

Questions…

23-Apr-20032

Why Should I Care? What is Software Process? How is it used in the ‘Real World’?

Page 3: Software Process In The Real World Chris Platner.

Why Should I Care?

Page 4: Software Process In The Real World Chris Platner.

Why Should I Care?

23-Apr-20034

if (you_write_software) {

you_have_a_software_process = TRUE;}

Page 5: Software Process In The Real World Chris Platner.

Do You Know Enough?

23-Apr-20035

For any software project, you must know at least the following: Where are the files going to be stored? Will you complete the design first, then code, or

use some iterative approach? How will you handle defects?

Once more people are added, a whole host of coordination issues arise

… but, will this really make me a better software developer?

Page 6: Software Process In The Real World Chris Platner.

You don’t have time to fit it all in

23-Apr-20036

time + people + features + quality = 3.0

Example: .95 + .9 + .75 + .4 = 3.0

Page 7: Software Process In The Real World Chris Platner.

Can You Communicate?

23-Apr-20037

Most software is developed by teams, where individuals must communicate in a technical manner.

Fun Exercise

Page 8: Software Process In The Real World Chris Platner.

What is Software Process?

Page 9: Software Process In The Real World Chris Platner.

What is Software Process?

23-Apr-20039

A way for successfully getting work done A way to avoid fears and mitigate risks A way to (hopefully) feel good about what you

do

Page 10: Software Process In The Real World Chris Platner.

What is Software Process?

23-Apr-200310

Questions that software process should answer: Low-Level

When is the next build of the product? How do we handle defects? When do we branch our code? How do we communicate

With developers in other divisions? Amongst ourselves Must we have status meetings?

High-Level When is it time to ship the product? How and when do we communicate with other internal

departments, like sales, marketing, technical support? What artifacts are important to keep for future reference?

Page 11: Software Process In The Real World Chris Platner.

Risks

23-Apr-200311

What is the most damage that failure of our product could cause? Loss of comfort Loss of discretionary money Loss of essential money Loss of life

Each of these requires a different amount of process, because extra work may need to be done to reduce the chance of loss. (Risks are from Alistair Cockburn’s Crystal

Methodologies)

Page 12: Software Process In The Real World Chris Platner.

Fears

23-Apr-200312

What if people can’t or won’t communicate? What if code gets too messy to be maintained? What if the system architecture deteriorates

into a big ball of mud? . . .

“All methodologies are based on fear.” Kent Beck

Page 13: Software Process In The Real World Chris Platner.

Outside of the Software Process

23-Apr-200313

Business Issues and Processes What customers should we target (market

segments)? Idea generation (new product ideas) Market windows

Development Issues What language should be used?

People Issues Who will be on my team?

Page 14: Software Process In The Real World Chris Platner.

Software Processes

23-Apr-200314

Waterfall Capabilities Maturity Model (CMM) Extreme Programming (XP) Crystal SCRUM Open Source Others…

Page 15: Software Process In The Real World Chris Platner.

Waterfall

23-Apr-200315

A Linear Development Methodology Each of the steps performed in order, with minimal feedback

between each step: Requirements, Analysis, Design, Implementation, Test, Maintenance

Even though it has a lot of disadvantages, it is still Advantages

Emphasis on planning Sometimes used on fixed-price contracts where estimates must

be given up front. Disadvantages

Requires knowing all the requirements up front, with no allowance for change.

Problems with phases are often caught too late, such as requirements problems detected during coding.

Don’t use it!

Page 16: Software Process In The Real World Chris Platner.

Capabilities Maturity Model (CMM)

23-Apr-200316

From the Software Engineering Institute at Carnegie Mellon Really a process framework that encompasses 5 levels of

process maturity Initial: Ad hoc, chaotic - Success depends on heroics. Repeatable: Basic cost, schedule, and functionality tracking.

Can repeat earlier successes on projects with similar applications.

Defined: Software process for management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.

Managed: Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.

Optimizing: Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies

Page 17: Software Process In The Real World Chris Platner.

Capabilities Maturity Model (CMM)

23-Apr-200317

Focuses on 18 Key Process Areas (KPAs) Repeatable (Level 2): Requirements Management, Software Project

Planning, Software Project Tracking and Oversight, Software Subcontract Management, Software Quality Assurance, Software Configuration Management

Defined (Level 3): Organization Process Focus, Organization Process Definition, Training Program, Integrated Software Management, Software Product Engineering, Inter-group Coordination, Peer Reviews

Advantages Respected in the industry Tailorable to each business and project

Drawbacks Tends to involve more ceremony (more writing, etc.) Assumes the rate of change in many areas is low

Requirements, schedule pressure, quality, etc.

See http://www.sei.cmu.edu for more information

Page 18: Software Process In The Real World Chris Platner.

Extreme Programming (XP)

23-Apr-200318

Grew out of experiences at Chrysler (Kent Beck, et al) The primary target was small teams in one

location, coding to requirements that may be changing

Many of the recommendations are familiar, but depend on high-quality communication (face-to-face), rather than high-overhead modes (documents)

Page 19: Software Process In The Real World Chris Platner.

Extreme Programming (XP)

23-Apr-200319

XP Requirements Team

The whole team must be small and be able to sit and work in a single room with the customer

Planning Customer Stories, Release Planning, Iteration Planning

(2 week iterations), Small Releases, Simple Design, Automated Customer/Acceptance tests

Development Test-Driven Development (automated unit tests),

Continuous Integration (multiple builds per day), Refactoring (design improvement), Coding Standards

Collective Code Ownership, Pair Programming See http://www.xprogramming.com,

http://www.extremeprogramming.org

Page 20: Software Process In The Real World Chris Platner.

Extreme Programming (XP)

23-Apr-200320

Advantages Works great for small co-located teams Teams using XP can be extremely productive,

perhaps more so than those using any other methodology

Drawbacks QA departments see it as too light No documentation artifacts after projects are done Won’t work well for large teams, distributed

teams, or teams not willing to pair program

Page 21: Software Process In The Real World Chris Platner.

Crystal

23-Apr-200321

A family of methodologies designed by Alistair Cockburn

There are different methodologies for different sizes and kinds of projects, each corresponding to a type of crystal: Clear, Yellow, Orange, Red Clear – 3-8 people in one office Yellow – 8-20 people, same building Orange – 25-40 people, same building

http://alistair.cockburn.us/

Page 22: Software Process In The Real World Chris Platner.

SCRUM

23-Apr-200322

Iterative, Incremental, Adaptive Uses 3 to 8 time periods called Sprints that each

last about a month. Design and implementation tasks are broken up over the sprints.

A short daily scrum meeting is held each morning to find out what happened the day before, resolve blocking issues, and to plan for the next day.

At the end of a sprint, there is a demo to show progress.

See http://www.controlchaos.com/

Page 23: Software Process In The Real World Chris Platner.

Open Source Process

23-Apr-200323

GNU.org – See http://www.gnu.org/prep/maintain.html

Mozilla.org – See http://www.mozilla.org/hacking/ ‘The Cathedral and the Bazaar’

(http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar)

Page 24: Software Process In The Real World Chris Platner.

What About…?

23-Apr-200324

Agile Methodologies (http://www.agilealliance.org) Personal Software Process (PSP) and Team

Software Process (TSP) From Watts Humphrey and the crew that developed the

CMM. ISO 12207

Grew out of Department of Defense software standards - MIL-STD-1679, DoD-STD-2167A, MIL-STD-498

Rational Unified Process (RUP) From Grady Booch, Jim Rumbaugh, and Ivar Jacobson

(‘The Three Amigos’) It is a process framework

Page 25: Software Process In The Real World Chris Platner.

The Real World

Page 26: Software Process In The Real World Chris Platner.

Why Should I Care?

23-Apr-200326

Do you like to code? The kind of process used affects the amount of non-programming work you do. You may find yourself in meetings and writing

documents For very large projects, the total output of

debugged code can be as low as 10 lines per day Do you want projects you work on to be

successful? Making projects work requires management and

software process

Page 27: Software Process In The Real World Chris Platner.

The Real World

23-Apr-200327

Processes may not be strictly followed. Different managers will like different

processes New processes may be enforced mid-project An outspoken team member may hijack the

process

Page 28: Software Process In The Real World Chris Platner.

Fears and Risks Revisited

23-Apr-200328

What if we lose key team members? What if the defect insertion rate runs away? What if management can’t see progress? What if people can’t or won’t communicate? What if code gets too messy to be

maintained? What if the system architecture deteriorates

into a big ball of mud? What if management changes? What if we’re working on the wrong solution?

Page 29: Software Process In The Real World Chris Platner.

There Is Hope

23-Apr-200329

Must we be shackled to process? No! People are more important. (See Facts and

Fallacies of Software Engineering, Fact #1, by Robert L. Glass).

Page 30: Software Process In The Real World Chris Platner.

References

23-Apr-200330

The Mythical Man-Month, Fred Brooks, 1995 (anniversary edition)

Fact and Fallacies of Software Engineering, Robert L. Glass, 2003 A reminder of what works and what doesn’t in software

engineering. Dynamics of Software Development, Jim McCarthy,

1995 Extreme Programming Explained – Embrace Change,

Kent Beck, 2000 Ruminations on C++, Andrew Koenig, Barbara Moo,

1997 Excellent discussion of why small projects are often

successful, while larger ones are not. Read all of chapter 2. Agile Software Development, Alistair Cockburn, 2002

Great introduction to agile development.

Page 31: Software Process In The Real World Chris Platner.

References

23-Apr-200331

Debugging the Development Process, Steve Maguire, 1994

Software Project Survival Guide, Steve McConnell, 1998 If you want to be a manager, or understand managers,

Steve’s books are must-have’s. Rapid Development – Taming Wild Software

Schedules, Steve McConnell, 1996 Martin Fowler’s Writings – Many interesting articles

on agile methodologies. See http://www.martinfowler.com, http://thoughtworks.com/library/newMethodology.pdf

Page 32: Software Process In The Real World Chris Platner.

Q&A


Recommended