Software Project Management
Total Page:16
File Type:pdf, Size:1020Kb
Software Project Management Copyright c 2018, 2019 Hui Lan Syllabus • Instructor: Hui Lan • Email: lanhui AT zjnu.edu.cn • Office hours: by appointment • Recommended textbook: Karl Fogel. Copyright c 2018, 2019 Hui Lan 1 Producing Open Source Software - How to Run a Successful Free Software Project. 2017. Online at https://producingoss.com Most of the course materials are from the textbook. Copyright c 2018, 2019 Hui Lan 2 Copyright c 2018, 2019 Hui Lan 3 • Grading: { Classroom participation - 20% { Project home page - 30% We will use your old project (if you have one): Open Access Publishing Service or Lab Report Repository. Do project SmartDoc if you have not done the above two projects. { Final Examination - 50% Copyright c 2018, 2019 Hui Lan 4 Free and Open-source software Free and open-source software are quite prevalent today. You can access the source code. Firefox, Emacs, Apache Server. Free software. Richard Stallman. Four Essential Freedoms (run, study, modify, redistribute). GPLv3 (approved by both FSF and OSI). Creative Commons Attribution-ShareAlike. Share. Copyright c 2018, 2019 Hui Lan 5 Remix. Conditions: Attribution. Share Alike. Open-source software. More practical. Community driven development model. https://opensource.org/licenses/category https://opensource.org/osd 9. License Must Not Restrict Other Software The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software. \Given enough eyeballs, all bugs are shallow." Copyright c 2018, 2019 Hui Lan 6 The two terms describe almost the same category of software, but they stand for views based on fundamentally different values. Open source is a development methodology; free software is a social movement. { Richard Stallman Free and open-source. Philosophical matters. Understanding developers' motivations is the best way | in some sense, the only way | to manage a Copyright c 2018, 2019 Hui Lan 7 project. Coercive techniques don't work. People should feel that their connection to a project, and influence over it, is directly proportional to their contributions. Opening up a project can add whole new sets of complexities, and cost more in the short term than simply keeping it in-house. Extra work (or pure overhead at first) for the people least familiar with the project to get started: Copyright c 2018, 2019 Hui Lan 8 • Arrange the code to be comprehensible to complete strangers. • Write development documentation. • Set discussion forums. • Answer questions for potential developers. • Set other collaboration tools. • Set a project home page. Copyright c 2018, 2019 Hui Lan 9 • Automate compilation, packaging and installation. Copyright c 2018, 2019 Hui Lan 10 Software Project Management Application of management activities - planning, coordinating, measuring, monitoring, controlling, and reporting - to ensure that the development and maintenance of software is systematic, disciplined, and quantified. dis·ci·plined: showing a controlled form of behavior or way of working. Copyright c 2018, 2019 Hui Lan 11 Textbook management looks so easy and real- world project management is in fact so hard. { Boehm You have a plan but you continuously get distracted by additional \requests". • A request to add \a few small capabilities" to the product without changing the budget or schedule. • A request to take on some personnel who are between projects and find something useful for Copyright c 2018, 2019 Hui Lan 12 them to do. • A request to reduce the scope of design review (in order to make up some schedule). Should you simply be a nice guy? No. You should think carefully about the impact of the request. You should be able to negotiate a corresponding change in plans, schedules and budgets. Steps you can follow. Copyright c 2018, 2019 Hui Lan 13 1. Politely say \No". 2. Tell that I am willing to help if I am not too busy. 3. Analyze the impact of the additional requests on my current schedule. 4. Ask for more money or time, or both. (People would usually agree as they have already invested a lot, as long as your counter-requests are reasonable.) Copyright c 2018, 2019 Hui Lan 14 Other things: programmers with various background and various personal goals, programming language, license, development process, infrastructure, publicizing the project, etc. Shared belief that people can do better together. The goal of management is to make people continue to believe so. Deep personal satisfaction from doing one's work in the open, and from appreciating and being appreciated by one's peers. Copyright c 2018, 2019 Hui Lan 15 • Set standards for communications. • Make sure useful developers don't get marginalized due to personal idiosyncrasy. Copyright c 2018, 2019 Hui Lan 16 Benefits of opening a project Significant organizational benefits - let the outside world know what you are doing. Low-cost form of advertisement. Global influence. A record of the past activities for future reference. Copyright c 2018, 2019 Hui Lan 17 The nature of software engineering Software is hard. { Jamie Zawinski • Complex • Iterative • Creative and cooperative • Changing technology Copyright c 2018, 2019 Hui Lan 18 Common problems in software industry: unrealistic requirements/expectations, vague specifications, poor staff management, and ignoring user feedback. Copyright c 2018, 2019 Hui Lan 19 Triple constraints for software projects Time, Cost and Quality. Defer the activity of detecting and correcting software problems until late in the project, i.e., in the \test and validation" phase after the code has been developed. There are two main reasons why this is a mistake: (1) Most of the errors have already been made before coding begins; and (2) The later an Copyright c 2018, 2019 Hui Lan 20 error is detected and corrected, the more expensive it becomes. - Barry W. Boehm The following figure shows \increase in cost to fix or change software throughout life cycle". Copyright c 2018, 2019 Hui Lan 21 Copyright c 2018, 2019 Hui Lan 22 Important lesson: the longer you wait to detect and correct an error, the more it costs you - by a long shot. Copyright c 2018, 2019 Hui Lan 23 Aspects of management Organisational policy management. Specific organisation-wide procedures for designing, implementing, estimating, tracking and reporting. Beneficial in the long-term. Personnel management. Specific organisation- wide procedures for hiring, training, motivating and promoting people. Copyright c 2018, 2019 Hui Lan 24 Communication management. Portfolio management. Having an overall vision not only of the software under development, but also of the software already in use in an organisation. Copyright c 2018, 2019 Hui Lan 25 Elements of project management People, Product, Process, Project. Copyright c 2018, 2019 Hui Lan 26 The people The people factor is the most important factor in SPM. Anyhow, we need right people to do the right thing. The manager who forgets that SE work is an intensely human endeavor will never success in project management. Copyright c 2018, 2019 Hui Lan 27 VP1: I guess if you had to pick one thing out that is most important to our environment, I'd say it is not the tools that we use; it is the people. VP2: The most important ingredient that to be success on this project was having smart people...very little else matters in my opinion. VP3: The only rule I have in management is to ensure I have good people { real, good people { and that I grow good people { and that I provide an environment in which good people can produce. Copyright c 2018, 2019 Hui Lan 28 People Capability Maturity Model Capability Maturity Model Integration. A maturity model describes maturity level of an organisation. Originally called SEI, now called CMMI Institute. CMU (now acquired by ISACA), adopted and funded by U.S. DoD. Generic, not just for software engineering. Copyright c 2018, 2019 Hui Lan 29 For organisations, for organisations seeking to improve their process, for appraising/evaluating an organisation's maturity level (1-5). For people, PCMM is an integrated set of best practices that improves performance and key capabilities for organizations that want to improve their critical people management processes. Copyright c 2018, 2019 Hui Lan 30 Copyright c 2018, 2019 Hui Lan 31 Copyright c 2018, 2019 Hui Lan 32 The product Define product objectives and scope. Consider alternative solutions. Objectives: overall goals for the product (from the customer's point of view) without considering how these goals will be achieved. Scope: primary data, functions, behaviours that charaterises and bounds these characteristics in a Copyright c 2018, 2019 Hui Lan 33 quantitative manner. Alternatives: do we have better alternatives, considering the constraints on delivery deadline, budgets, personnel availability, etc. Copyright c 2018, 2019 Hui Lan 34 The process Use new and existing processes to move a project forward to success. Waterfall Copyright c 2018, 2019 Hui Lan 35 Prototyping The spiral model (Boehm) Copyright c 2018, 2019 Hui Lan 36 Agile (popular nowadays) Copyright c 2018, 2019 Hui Lan 37 Copyright c 2018, 2019 Hui Lan 38 The project Projects: 26% failed, 46% experienced cost and schedule overruns. We have to conduct planned and controlled software projects. Copyright c 2018, 2019 Hui Lan 39 PMBOK Project Management Body of Knowledge includes the following KAs (knowledge areas): project integration project scope project time project cost Copyright c 2018, 2019 Hui Lan 40 project quality project human resource project communication Copyright c 2018, 2019 Hui Lan 41 SWBOK A closely related body of knowledge (Software Engineering Body of Knowledge). Copyright c 2018, 2019 Hui Lan 42 Copyright c 2018, 2019 Hui Lan 43 Measurement and management Management without measurement suggests a lack of rigor. Measurement without management suggests a lack of purpose or context.