Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Process and Management (or how to be officious and unpopular)

Similar presentations


Presentation on theme: "Software Development Process and Management (or how to be officious and unpopular)"— Presentation transcript:

1 Software Development Process and Management (or how to be officious and unpopular)

2 The Problem 300,000 projects 1/3 to 2/3 will exceed budget and schedule ½ will be cancelled More will be cancelled in other ways Declaring victory without completion Shelving without cancellation

3 Project Expectations The Customer’s Bill of Rights 1.To set project objectives and have the followed. 2.To know how long it will take and how much it will cost. 3.To decide which features are in which release. 4.The right to make changes in requirements and to know the cost of those changes. 5.To know the project’s status. 6.To have access to deliverables throughout the project.

4 Project Expectations The Developer’s Bill of Rights 1.To know the project’s objectives and priorities. 2.To know in detail the product to be produced. 3.Open access to those making decisions about functionality. 4.To approve effort and schedule estimates. 5.The right to revise effort and schedule estimates when requirements change. 6.To work in a distraction and interruption free environment.

5 The Process 1.All requirements in writing. 2.A systematic procedure for modifying requirements. 3.Frequent reviews of requirements, design and source code. 4.A quality assurance plan including defect tracking. 5.Revision of cost estimates with each milestone. 6.Automated source code control with versions and releases.

6 “Restrictive and Inefficient” 1.Process control adds unnecessary overhead. 2.We can correct mistakes later. 3.What processes we need, we will add when we need them. 4.Process limits programmer creativity. 5.Process reduces moral. “An investment made in process at the beginning of the project produces large returns later in the project” Steve McConnel, “The Software Project Survival Guide ”

7 Process Overhead 1.Process reduces time to market by a factor of 3 to 10. 2.Process reduces defect rate by 75 to 90 percent. (from figures compiled at Lockheed, NASA, Motorola, Xerox, Loral, and Hughes)

8 Sooner Is Better Than Later Poor work early in a project can severely impair the project downstream.

9 Morale 1.In only 20% of developers non-process oriented companies rated staff morale as “good”. 2.In process oriented companies 50% of programmers rated staff morale as “good” or “excellent”. Programmers feel best when they are most productive. Good communication fosters clear leadership and vision.

10 Uncertainty 1.Upstream decisions in a project tend to much more far reaching than those made downstream. Earlier decisions in a project will affect the decisions made later on. Software development is a process of refinement. The less uncertainty at the beginning, the clearer the project requirements, the more on target the early most important project development decisions will be.

11 Uncertainty 1.The project team can only make educated guesses about what decisions will be required later in the project. The less uncertainty at the beginning, the clearer the time and cost estimation will be.

12 Two Phased Funding To reduce project uncertainty, introduce two phased funding: An exploratory phase where the spec and 10 to 20 percent of the project is completed. A checkpoint review phase where management and the customer reviews the spec and funding request and gives a go/no go decision. The project continues.

13 Check Point Review At the check point review, the following materials are made available: Name of the project’s key decision maker. Vision statement and business case for project. Effort and schedule, goals and estimates. Top 10 risks list and quality assurance plan. User interface style guide and prototype. User manual requirements/specification. Detailed development plan.

14 Check Point Review Agenda The actual checkpoint review should focus on the following topics: Is the original product concept still viable? Is the original business case still viable considering more reliable cost and effort estimates? Can the major project risks be surmounted? Can the users and developers agree on the software and interface project plans and do they adequately define the project? Setting the true cost and schedule for developing the project.

15 Intellectual Phases In the conceptual phases of a software, the kind of work performed in each phase varies, but each kind of work occurs to some extent throughout the project

16 Intellectual Phases In the Discovery Phase we seek to understand the nature of the problem. In the Invention Phase we transform uncertainty into certainty. In the Implementation Phase we attempt to realize the potential that has been mapped out in Discovery and Invention. Project plans must allow discovery, invention, and implementation to coexist.

17 Staged Development The software team develops a software concept first, then generates and analyzes requirements, and then completes the architectural design. In staged development you are allowed to step back a phase when new requirements are discovered.

18 Staged Development Staged delivery emphasizes project planning and risk reduction. In each Implementation Phase, the design team does design, coding, debugging and testing, creating a potentially releasable product.

19 Staged Development Staged delivery reduces the administrative time developers spend creating progress reports. On the down side, staged releases creates more overhead in the effort spent in creating the releases. “Working Software is a more accurate status report than any paper report could ever be.”

20 Project Activity Effort is measured by line thickness. Notice that no activity ever completely goes away.

21 Change Control Change control allows all necessary changes to be made while ensuring that change impacts are understood project wide.

22 Change Control Procedure 1.Changes can be made at any time during initial development. 2.Once initial development is complete, changes must be submitted to a “Change Board” in the form of a “Change Proposal”. 3.The Change Board identifies all parties that might be affected by the change and allows them to review the proposal.

23 Change Control Procedure 4.Concerned parties assess the cost, both financial and in delay an submit their viewpoints to the board. 5.The board member combine their assessments and either veto the change or prioritize it. 6.The Change Board notifies all parties of the final status of the change. Change control increases accountability. Changes have to be justified before they are implemented. Change control also improves communication.

24 Revision Control 1.Involves project documents as well as code. 2.Documents are saved with project versions in the document library. In this way, project documentation can always be found. Version specific can always be found with its attending software.

25 Change and Revision Control People who are used to getting their way can still get their way with systematic change control, but they’ll have to do it through a process that emphasizes visible decision making and accountability.


Download ppt "Software Development Process and Management (or how to be officious and unpopular)"

Similar presentations


Ads by Google