1 professional software development: shorter schedules, higher quality products, more successful...

106
1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP, BSCS March 24, 2009 EECS 811

Upload: barrie-howard-farmer

Post on 11-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

1

Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers

Gregory (Greg) Maltby, PMP, BSCSMarch 24, 2009

EECS 811

Page 2: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

2

Introduction (1)

• Author : Steve McConnell– CEO and Chief Software Engineer at Construx

Software– Other books by Steve McConnell

• Code Complete (1993)• Rapid Development (1996)• Software Project Survival Guide (1998)

– On the panel of experts that advises the Software Engineering Body of Knowledge (SWEBOK) project

Page 3: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

3

Introduction (2)

• Book consists of four parts– The Software Tar Pit– Individual Professionalism– Organizational Professionalism– Industry Professionalism

Page 4: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

4

Introduction (3)

• Presentation - 10 topics / thoughts– “Code and Fix” programming– Software Programming

• Art• Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing

Page 5: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

5

Introduction (4)

• Presentation - 10 topics / thoughts (continued)– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 6: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

6

Introduction (5)

• Topics are significant as standalone topics, but some can be viewed as interrelated.

• I see those with a relationship as: – Software Development as a Profession

• Code of Ethics• Software Development Certification • Software Development Licensing

Page 7: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

7

Introduction (6)

• Topics are significant as standalone topics, but some can be viewed as interrelated.

• I see those with a relationship as: – Software Development Productivity

• Software Development Job Specialization• Teamwork• Process Improvement

Page 8: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

8

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 9: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

9

Code & Fix Programming

• Definition – Jumping straight into coding without planning or designing the software first.

• Sometimes done because:– Developers are anxious to begin coding– Manager or Customers are eager to see tangible

signs of progress

• Over all “Code & Fix” programming is ineffective on all but the tiniest projects

Page 10: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

10

Code & Fix Programming (2)

• Building a Pyramid Analogy

Page 11: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

11

Code & Fix Programming (3)

• Building a Pyramid – Block Moving

Page 12: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

12

Code & Fix Programming (4)

• Building a Pyramid – Block Moving

Page 13: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

13

Code & Fix Programming (5)

• Building a Pyramid – Block Moving

Page 14: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

14

Code & Fix Programming (6)

• Problems with Code & Fix Programming

– Quick movement off starting line doesn’t necessarily translate into quick progress towards the finish line

– Leads to large # of defects early in the project• Several studies have found that 40% to 80% of a typical

software project’s budget goes into fixing defects that were created earlier on, in the project development efforts.

Page 15: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

15

Code & Fix Programming (7)

• Why Code & Fix Programming Continues to be Used

– Appears to be appealing in 2 ways

• Allows the project team to show signs of progress immediately

• Requires no or minimal additional training

Page 16: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

16

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 17: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

17

Software Programming: Is it Art or Science? • There is a long tradition in the software field

debating whether software programming is Art or Science.

– Art point of view :• Refer to the aesthetic aspects of Software

Development• Science does not allow for inspiration and creative

freedom

– Science point-of-view : more rigor and formal processes are needed to reduce the error rate in (current) Software Development practices.

Page 18: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

18

Software Programming: Is it Art or Science? (2)

• Scientists learn :– What is “true”– How to test hypotheses– How to extend knowledge in their field

• Scientists must keep up to date with the latest research.

• Scientist don’t have to be regulated because they are chiefly accountable to other Scientists

Page 19: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

19

Software Programming: Is it Art or Science? (3)

• Wrong Question: “What is Software Development?”

• Right Question: “What should Software Development be?

The Answer : Engineering

Page 20: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

20

Software Programming: Is it Art or Science? (4)

• Definition: Engineering:

The application of scientific and mathematical principles towards practical ends.

Page 21: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

21

Software Programming: Is it Art or Science? (5)

• Engineers learn :– What is “true”– What is useful– How to apply well-understood knowledge to solve

problems

• Engineers must be familiar with knowledge that has already proven to be reliable and effective.

• Engineers have to be regulated because they are chiefly accountable to the public

Page 22: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

22

Software Programming: Is it Art or Science? (6)

Should professional Software Development be Engineering?

• Questions that should be answered:

– What is the Software Engineer’s core body of knowledge?

– What needs to be done before professional software developers can use that knowledge?

Page 23: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

23

Software Programming: Is it Art or Science? (7)

Should professional Software Development be Engineering?

• Questions that should be answered (cont):

– How big is the payback for practicing software development as an engineering discipline?

– What are appropriate standards of professional conduct for Software Developers?

– Should Software Developers be regulated?

Page 24: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

24

Software Programming: Is it Art or Science? (8)

Big question:

• What will the software industry look like after all these questions have been answered?

Page 25: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

25

Software Programming: Is it Art or Science? (9)

In mature engineering fields, routine design involves solving familiar problems and reusing large portions of priorsolutions.

• Many software project artifacts are potentially reusable and promote the potential to improve quality and productivity.

– Architectures themselves and software design procedures

– Design patterns

– Requirements themselves and requirements development procedures

Page 26: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

26

Software Programming: Is it Art or Science? (10)

• Many software project artifacts are potentially reusable and promote the potential to improve quality and productivity. (continued)

– User interface elements and user interface design procedures

– Estimates themselves and estimation procedures

– Planning data, project plans, and planning procedures

– Test Plans, test cases, test data, and test procedures

Page 27: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

27

Software Programming: Is it Art or Science? (11)• Many software project artifacts are potentially reusable and

promote the potential to improve quality and productivity. (continued)

– Technical review procedures

– Source code, construction procedures, and integration procedures

– Software configuration management procedures

– Post-project reports and project-review procedures

– Organizational structures, team structures, and management procedures

Page 28: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

28

Software Programming: Is it Art or Science? (12)

• The Call for Engineering

– Whether the goal is safety, aesthetics, or economics, treating software as an engineering discipline is an effective way to raise Software Development to the level of a true profession.

Page 29: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

29

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 30: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

30

Software Development as a Profession

• A Profession as defined by the Code of Federal Regulation (CFR) :

– Professional Work – Requires advanced knowledge in science or a field of learning acquired through a prolonged course of specialized study.

– Can be creative or artistic in nature

– Requires the consistent exercise of discretion and judgment in its performance

– Predominately intellectual and varied in character

Page 31: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

31

Software Development as a Profession (2)

• Definition from the body of knowledge of legal precedents (court cases) –

A profession has:

– A requirement for extensive learning and training

– A code of ethics imposing standards higher than those normally tolerated in the marketplace

– A disciplinary system for professionals who breach the code

Page 32: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

32

Software Development as a Profession (3)

• Definition from the body of knowledge of legal precedents (court cases) –

A profession has (continued):

– A primary emphasis on social responsibility over strictly individual gain, and a corresponding duty of its members to behave as members of a disciplined and honorable profession

– A perquisite of a license prior to admission to practice

Page 33: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

33

Software Development as a Profession (4)

Page 34: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

34

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 35: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

35

Software Development Certification

• Professional Certification

– Certification is a voluntary process administered by a professional society.

– The intent of certification is to give the public a way of knowing who is qualified to perform specific kinds of work.

Page 36: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

36

Software Development Certification (2)

Professional Certification

• After completion of education and skills development, a professional is required to pass one or more exams that ensure the person has attained a minimum level of knowledge.

– Examples :• Doctors take Board Exams• Accountants take CPA Exams• Lawyers take Bar Exams

Page 37: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

37

Software Development Certification (3)

• The American Society for Quality Control offers a Software Quality Engineer designation.

• Many Computer Hardware and Software Companies, such as Microsoft and Oracle, offer certification programs related to specific technologies.

Page 38: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

38

Software Development Certification (4)

The Institute of Certification of ComputingProfessionals (ICCP) offers various types of

Certifications

Examples:– Associate Computing Professional (ACP)– Certified Computing Professional (CCP)

Page 39: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

39

Software Development Certification (5)

• Next few slides are from the ICCP web-site –

www.iccp.org/certification.html

Copyright 2007

by the

Institute for Certification of Computing Professionals

Incorporated not-for-profit, in the State of Delaware

All rights reserved, including the right of reproduction, in whole or in part, in any form, without the expressed permission of the ICCP.

Page 40: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

40

Software Development Certification (6)

Forces Driving Growth in IT Professional Certification

Adapted from “The Complete Guide to Certification for Computing Professionals”Sylvan (formerly Sylvan Prometric)New York: The McGraw-Hill Companies, Inc.

Page 41: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

41

Software Development Certification (7)

Financial Reward0.4%

Professional Growth46.3%

Company Requirement

0.4%

Credential38.3% Self-Evaluation

5.1%

Other11.4%

Why People Certify

Page 42: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

42

Software Development Certification (8)

Primary Achievement Resulting from Certification

"Greater Self-Esteem"

22%

"More Credibility within

Organization"24%

"Solve Problems Quicker"

19%

"Increase in Salary"

11%

"More Credibility with Customers"

24%

Page 43: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

43

Software Development Certification (9)

IEEE Certification CSDP - Certified Software Development Professional:

• Possesses fundamental knowledge and understanding of computing principles and concepts and their application to the definition, design, construction and testing of software development.

• Has met the IEEE CS CSDP education, experience, and examination requirements.

Page 44: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

44

Software Development Certification (10)

IEEE Certification CSDP - Certified Software Development Professional:

• Is able to provide appropriate design with technical and economic tradeoffs of modules, subsystems, and systems in accordance with standards of practice, specifications, and principles of behavior of software as required to perform the functions as stated in the software requirements

Page 45: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

45

Software Development Certification (11)

IEEE CSDP (Certified Software Development Professional) distribution of Questions per knowledgearea

1. Business Practices & Engineering Economics (3-4%)2. Software Requirements (13-15%)3. Software Design (22-24%)4. Software Construction (10-12%)5. Software Testing (15-17%)

Page 46: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

46

Software Development Certification (12)

IEEE CSDP (Certified Software Development Professional) distribution of Questions per knowledgearea (continued)

6. Software Maintenance (3-5%)7. Software Configuration Management (3-4%)8. Software Engineering Management (10-12%)9. Software Engineering Process (2-4%)10. Software Tools and Methods (2-4%)11. Software Quality (6-8%)

Page 47: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

47

Software Development Certification (13)

• Sample Questions on IEEE CSDP (Certified Software Development Professional) exam

{handout}

– IEEE Computer Society Web page

– http://www2.computer.org/portal/web/certification/test

Page 48: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

48

Software Development Certification (14)

• Certification offers employers and customers a way to recognize software professionals who have achieved at least some minimum level of qualifications.

Page 49: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

49

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 50: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

50

Software Development Licensing

• Professional Licensing

– Licensing is a mandatory process that is intended to protect the public, and is typically administered by jurisdictions (States, Provinces, and Territories).

– In many cases, National organizations advise the jurisdictions on appropriate licensing requirements and exam content.

Page 51: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

51

Software Development Licensing (2)

• Arguments Against Licensing

– There is no generally agreed upon body of knowledge for software engineering

– Knowledge in software engineering changes so quickly that the exams will be out of date by the time they’re offered.

– No reasonable test for software engineering skill could be put into a multiple-choice format. Indeed, no exam-based practices could adequately ensure competency of software engineers.

Page 52: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

52

Software Development Licensing (3)

• Arguments Against Licensing (continued)

– The breadth of sub-disciplines involved in developing software would make licensing all of the sub-disciplines impractical.

– The Fundamentals of Engineering Exams required for licensing existing professional engineers is inappropriate for those receiving a computer science degree.

Page 53: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

53

Software Development Licensing (4)

• Licensing is a Bad Idea – NOT!

– Licenses would unduly restrict the number of people who could practice software engineering at a time when demand for software engineers is increasing.

– When an engineer receives a license, it will be good for life, which is inappropriate considering that software engineering’s body of knowledge is changing rapidly.

– Licensing can’t guarantee that every individual who is licensed will actually be competent. Licensing will give the public a false sense of security.

Page 54: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

54

Software Development Licensing (5)

• Not all Engineers are Licensed

– Majority of engineers are NOT required to obtain licenses.

– Engineering companies are required to employ some licensed engineers

Page 55: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

55

Software Development Licensing (6)

Discipline Licensed

Civil 44%

Mechanical 23%

Electrical 9%

Chemical 8%

All Engineers 18%

Percentage of licensed engineering graduates in the US as of 1996

Ford, Gary, and Norman E. Gibbs, “A Mature Profession of Software Engineering”, SEI CMU, CMU/SEI-96-TR-004, January 1996

Page 56: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

56

Software Development Licensing (7)

• Not all Software Engineers will need to be Licensed

– Most software applications do not require any engineering

– The applications that do require some engineering will require only a small percentage of the software staff to be licensed

Page 57: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

57

Software Development Licensing (8)

• Companies that may require licensed software engineers could include those that:

– Sell software engineering services to the public

– Perform software work for public agencies

– Produce safety-critical software

Page 58: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

58

Software Development Licensing (9)

• Benefits of Licensing – Organizational Perspective

– Some companies may voluntary employ professional (licensed) software engineers to:

• take advantage of the market prestige of hiring workers with the best available credentials

• strengthen their technical pool

• improve their CMM rating

Page 59: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

59

Software Development Licensing (10)

• Benefits of Licensing – Individual Perspective

– Licensed software engineers will most likely be placed in a ‘leadership’ role – helping set direction for the organizations they work for.

– Licensed software engineers can use the position of a well-defined profession to make a stand against poor software development influences

Page 60: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

60

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 61: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

61

Code of Ethics

• Code of Ethics - Purpose is to ensure practitioners behave responsibility

– States what professional should do

– Adherence to a recognized code of conduct helps professionals feel they belong to a well-regarded community

– Professionals can be ejected from their professional societies or lose their license to practice for violating the Code of Ethics

– Enforcement of ethics standards helps maintain a minimum level of conduct

Page 62: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

62

Code of Ethics (2)

• Association for Computing Machinery (ACM) Code of Ethics

1. General Moral Imperatives

2. More Specific Professional Responsibilities

3. Organizational Leadership

4. Compliance with the Code

{Handout }

Page 63: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

63

Code of Ethics (3)

• Code of Ethics – Benefits

– Provides broad support for a true profession of software engineering

– Establishes minimum performance expectations

– Gives employers and clients confidence about the professional standards and character of engineers who adhere to the code

Page 64: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

64

Code of Ethics (4)

• Code of Ethics – “Real World” Benefits Example– Sometimes clients and management insist that software

developers engage in Code-and-Fix development.

– This conflicts with the software engineer’s Code of Ethics

• Use of code-and-fix development, however, is inconsistent with a Software Engineer’s ethical duty to produce high-quality products for acceptable costs and within reasonable schedules.

• Continued use of code-and-fix also undermines the advancement of software engineering as a profession

Page 65: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

65

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 66: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

66

Software Development Productivity• Preview of findings

– Most software productivity studies are inadequate and misleading.

– Small-scale programming productivity has more than an order of magnitude variation across individuals and languages.

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 67: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

67

Software Development Productivity (2)

• Preview of findings

– How and what you measure determines how much productivity you see.

– We found contradictory findings (conclusions), and repeated shortcomings in productivity measurement and data analysis, among the few nuggets of improved understanding.

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 68: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

68

Software Development Productivity (3)

• What to measure?

– Software products

– Software production processes and structures – Software production setting / environment.

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 69: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

69

Software Development Productivity (4)

• Productivity Factors - Process-related (more easily controlled)

– Avoid hardware-software co-development

– Development computer size (bigger is better).

– Stable requirements and specification

– Use of “modern programming practices”

– Assign experienced personnel to team

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 70: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

70

Software Development Productivity (5)

• Productivity Factors - Product related (not easily controlled)

– Computer resource constraints (fewer is better) – Program complexity (less is better)

– Customer participation (less is better)

– Size of program product (smaller is better)

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 71: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

71

Software Development Productivity (6)

• How to improve Software Productivity (so far):

– Get the best from well-managed people

– Make development more efficient and more effective

– Simplify, collapse, or eliminate development steps

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 72: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

72

Software Development Productivity (7)

• How to improve Software Productivity (so far) (continued):

– Eliminate rework

– Build simpler products or products families (similar products)

– Reuse proven products, processes, and production settings

“Understanding and Improving Software Productivity” – Walt Scacchi – University of California, Irvine, 02/16/2005

Page 73: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

73

Software Development Productivity (8)

• Some thoughts on Productivity

– Study after study has found that individual motivation is by far the largest single contributor to productivity.

– Other studies have found that the greatest single contributor to overall productivity was team cohesiveness.

Page 74: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

74

Software Development Productivity (9)

• Some thoughts on Productivity

– Projects that focused on achieving low defect counts had the best schedule and the highest productivity.

– Studies as early as the 1960’s have shown that

teams using a high degree of specialization are more productive than teams that do not.

Page 75: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

75

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 76: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

76

Software Development Job Specialization

• Specialization is an important element of a mature profession.

• Two Categories of Specialization are emerging

– Technology Specialization

– Software Engineering Specialization

Page 77: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

77

Software Development Job Specialization (2) • Examples of current Technology Specializations

offering by IT Vendors

• Microsoft currently (Feb. 2009) offers 17 certifications – a few examples

– Microsoft Certified Architect (MCA) - program recognizes and provides advanced certification to practicing architects in an enterprise setting.

– Microsoft Certified Systems Administrator (MCSA) - administers network and systems environments based on the Windows operating systems. Specializations include the MCSA: Messaging and the MCSA: Security.

– Microsoft Certified Database Administrator (MCDBA) - designs, implements, and administers Microsoft SQL Server databases.

– Microsoft Office Specialist (MOS) - is globally recognized for demonstrating advanced skills in using Microsoft desktop software.

Page 78: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

78

Software Development Job Specialization (3) • Oracle offers over 30 certifications – a few examples

– Oracle Database 11g Administrator Certification - combines training, experience, and testing to ensure that you have a strong foundation and expertise in the industry’s most advanced database management system.

• Certified Associate• Certified Professional• Certified Master

– Oracle Application Server 10g Administrator - offers a comprehensive solution for developing, integrating, and deploying your enterprise’s applications, portals, and Web services. Oracle Application Server 10g Certified Administrators have the proven knowledge and experience to manage the details of this powerful software and are essential to help organizations succeed in the complex world of Internet business.

• Certified Associate• Certified Professional• Certified Master

– Certifications in Oracle’s Business applications are also available• Hyperion (Financial Forecasting)• PeopleSoft (ERP – HR, Payroll, Financials, etc.)• Oracle E-Business Suite (ERP – HR, Payroll, Financials)

Page 79: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

79

Software Development Job Specialization (4) • Software Engineering specialization examples:

– Customer Support Specialists

– Data Base Administration

– Network specific• also includes specialties within this area - such as Security

– Quality Assurance

– Technical Writing

Author references another book “Assessment and Control of Software Risk” (1994) by T. Capers Jones, which identifies 26 specializations, and states Jones’ work on Organizational Assessment has identified over 100 specializations.

Page 80: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

80

Software Development Job Specialization (5) • Projects can benefit from team members who are

specialists – Construction Lead– Design Lead– Planning and Tracking Lead– Project Business Manager– Quality Assurance Lead– Requirements Lead

• Useful to have a specific person identified to focus on these areas

• Advantageous even of these are part-time roles http://www.construx.com CxOne Basic Team structure

Page 81: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

81

Software Development Job Specialization (6) • Project Business Manager

– Overall project manager, responsible for a successful project outcome.

– Performs many of the traditional management tasks, but generally delegates engineering issues to the appropriate leads.

• Planning and Tracking Lead – Manages the project plan, schedule, and budget. – Overseas, coordinates, and tracks progress to

planning, estimation, and scheduling. – Responsible for status reporting.

Page 82: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

82

Software Development Job Specialization (7) • Requirements Lead

– Owns the system requirements. – Oversees the identification, analysis,

documentation, and management of system requirements.

– Is responsible for ensuring that the requirements match business goals

• Design Lead– System architect that oversees all design activities

on the project

Page 83: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

83

Software Development Job Specialization (8) • Construction Lead

– Is responsible for ensuring that construction activities are carried out smoothly and efficiently.

– On projects where deployment is necessary, that is often handled by this lead, or a dedicated deployment lead.

• Quality Lead – Creates the quality plan an is responsible for

ensuring the project meets its quality goals. – Oversees all reviews, test planning, and test

execution

Page 84: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

84

Software Development Job Specialization (9)

• Software Engineer – Instead of a traditional rigid analyst, developer,

tester split, each engineer executes based on their capabilities and interests.

Page 85: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

85

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 86: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

86

Teamwork

Software Development Community – Become Part of the Team

• Author advocates becoming a member of ACM or IEEE– These are communities that care about software

development and take the time to share their experiences for the benefit of other software developers

Page 87: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

87

Teamwork (2)

• Professional organizations support numerous structured ways of exchanging the valuable tips and tricks of the trade that support Software Engineers

• Membership will give you access to articles that provide insight into common issues– Examples

• How to help customers make up their minds about / finalize requirements

• How to create maintainable code• How to coordinate the work of multiple Software

Developers

Page 88: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

88

Teamwork (3)

Team Specialization http://www.construx.com CxOne Basic Team structure

Page 89: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

89

Teamwork (4)

• Author sites a study by Gerald M. McCue, “Architectural Design for Program Development”, while he worked at IBM’s Santa Teresa Laboratory; that found the average programmer spends only about 30% of their time working alone.

• The other 70% is working with teammates, customers (secondary team), and other interactive activities

Page 90: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

90

Teamwork (5)

• A study by B. Lakhanapal, “Understanding the Factors Influencing the Performance of Software Development Groups: An Exploratory Group Level Analysis”; analyzed 31 software projects and found that the greatest single contributor to overall productivity was team cohesiveness.

Page 91: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

91

Presentation Overview• Presentation - 10 topics / thoughts

– “Code and Fix” programming– Software Programming : Art or Science

– Software Development as a Profession– Software Development Certification– Software Development Licensing– Code of Ethics– Software Development Productivity– Software Development Job Specialization– Teamwork– Process Improvement

Page 92: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

92

Process Improvement• Process Improvement – State of Practice

– A common assumption is that organizations effectiveness is distributed according to a typical bell curve.

– The reality is quite different.

– “Process Maturity Profile of the Software Community 2001 Year End Update”, Software Engineering Institute, March 2002

Page 93: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

93

Process Improvement (2)

Benefits of Process Improvement Results of software process improvement efforts

Herbsleb, James, et. al., “Benefits of CMM Based Software Process Improvements: Initial Results”, Pittsburg: Software Engineering Institute, August 2004

Factor Median Improvement Best Sustained Improvement

Productivity 35% year 58% year

Schedule 19% year 23% year

Post-release defect reports 39% year 39% year*

Business value of organizational improvement

5 to 1 8.8 to 1

Page 94: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

94

Process Improvement (3)

Return on Investment for Selected Software Practices

Jones T., Capers “Assessment and Control of Software Risks, Englewood Cliffs, NJ: Yourdon Press, 1994

Practice 12-month ROI 36-month ROI

Formal code inspections 250% 1,200%

Formal design inspections 350% 1,000%

Long-range technology planning 100% 1,000%

Cost and quality estimation tools 250% 1,200%

Productivity measurements 150% 600%

Process assessments 150% 600%

Management training 120% 550%

Technical staff training 90% 550%

Page 95: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

95

Process Improvement (4)

Indirect Benefits of Improved Software Practices

• Better software practices lead to improvements:

– in cost predictability– in schedule predictability– that reduce risk of cost overruns– that reduce risk of schedule overruns– that provide early warnings of problems

• Support better management (control and decision making)

Page 96: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

96

Process Improvement (5)

Improving Software Practices – Where to Start

• 10 Tough Questions

1. How much are you spending on software development?

2. What percentage of your projects is currently on time and on budget?

3. What is the average schedule and budget overrun for your projects?

Page 97: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

97

Process Improvement (6)

Improving Software Practices – Where to Start

• 10 Tough Questions (continued)

4. Which of your current projects are most likely to fail outright?

5. What percentage of your project cost arises from avoidable rework?

6. How satisfied (quantitatively) are users of your software?

Page 98: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

98

Process Improvement (7)

Improving Software Practices – Where to Start

• Ten Tough Questions (cont.)

7. How do the skills of your staff compare to industry averages?

8. How do the capabilities of your organization compare to similar organizations?

Page 99: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

99

Process Improvement (8)

Improving Software Practices – Where to Start

• Ten Tough Questions (cont.)

9. How much (quantitatively) has your productivity improved in the past 12 months?

10. What is your plan for improving the skills of your staff and the effectiveness of your organization?

Page 100: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

100

Conclusion

• For Software Development to be viewed as a profession – bad practices like “Code and Fix” programming needs to be eliminated.

• Whether the goal is safety, aesthetics, or economics, treating software as an engineering discipline and following the disciplines of engineering during software development would be an effective way to raise Software Development to the level of a true profession.

Page 101: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

101

Conclusion (2)

• Certification is valuable, it gives:– software developer credibility.– employers and customers a way to recognize

Software Professionals who have achieved a level of knowledge and skills.

Page 102: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

102

Conclusion (3)

• One key factor supporting licensing Software Engineering is that, today over 50% of Software engineering knowledge is stable.

Therefore the education investment a person makes at the beginning of a career should remain mostly relevant throughout their career.

Page 103: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

103

Conclusion (4)

• Without licensing, the public is exposed to both good and bad software development practices and potentially dangerous software.

Licensing would improve this condition, acting as a filter that would in most cases deny licenses to the worst software developers and grant licenses to the best or at least the qualified.

Page 104: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

104

Conclusion (5)

• There has been a slow pace to adopt the use of effective software development practices

• Factors that impact productivity on software

development projects include:– Individual motivation– Use of experienced and skilled team members– Teamwork or team cohesiveness– Using a high degree of specialization

Page 105: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

105

Additional Information

• Steve McConnell ‘s website – http://www.stevemcconnell.com/index.htm

Here you'll find excerpts from his books and articles, descriptions of his presentations, pointers to his consulting services, and other information.

Page 106: 1 Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers Gregory (Greg) Maltby, PMP,

106

Additional Information

• The company he founded Construx‘s website

http://www.construx.com

• Construx was founded in 1996 by Steve McConnell to provide industry-leading support for software development best practices.