Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.

Slides:



Advertisements
Similar presentations
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Advertisements

Time Management By Zahira Gonzalez.
Acceptance Testing.
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
W5HH Principle As applied to Software Projects
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Tietojärjestelmien peruskurssi Software engineering Malin Brännback.
Project Management of A Practical Guide to Uppsala.
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Lesson 2: Software Project Planning
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
Software Engineering Process I
Project management.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
1. 2 IMPORTANCE OF MANAGEMENT Some organizations have begun to ask their contractors to provide only project managers who have been certified as professionals.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Estimation Chapter 3 Applied Software Project Management, Stellman & Greene.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
COMP 208/214/215/216 Lecture 3 Planning. Planning is the key to a successful project It is doubly important when multiple people are involved Plans are.
KAREN PHELPS Spontaneous Sponsoring. Your Home Presentations “A Valuable Source for Recruits”
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Applied Software Project Management
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Applied Software Project Management HOW TO DIAGNOSE AND FIX A TROUBLED SOFTWARE PROJECT Why Software Projects Fail 1.
New Supervisors’ Guide To Effective Supervision
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software Project Management Week 1 Lecture 2
What do you need to know about XP?
Introduction to Project Management
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 3 – Agile Software Development
Applied Software Project Management
Coming up: What is Agile?
Roles and Responsibilities of a Project Manager
Applied Software Project Management
Agile Development – a new way of software development?
Project Management.
Presentation transcript:

Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale

Applied Software Project Management What is software project management? The Art and science of planning and leading software project, and requires knowledge of the entire development lifecycle:  Defining the vision  Planning the tasks  Gathering people who will do the work  Estimating the efforts  Creating the schedule  Overseeing the work  Gathering the requirements  Designing and programming the software  Testing end products 2

Applied Software Project Management A practical book The specific tools, techniques, and practices that need to be put in place to run a software project. Who should take this course?  A project manager responsible for a software development project and a team  A programmer, designer, business analyst, architect, tester, or other method of a software team looking to improve the product he/she is working on.  and more…such as quality assurance manager and consultant 3

Applied Software Project Management 4 Why do software projects fail? People begin programming before they understand the problem  Everyone likes to feel that they’re making progress  When the team starts to code as soon as the project begins, they see immediate gains  When problems become more complex (as they always do!), the work gets bogged down  In the best case, a team that begins programming too soon will end up writing good software that solves the wrong problem

Applied Software Project Management 5 Why do software projects fail? The team has an unrealistic idea about how much work is involved.  From far away, most complex problems seem simple to solve  Teams can commit to impossible deadlines by being overly optimistic and not thinking through the work  Few people realize the deadline is optimistic until it’s blown

Applied Software Project Management 6 Why do software projects fail? Defects are injected early but discovered late.  Projects can address the wrong needs  Requirements can specify incorrect behavior  Design, architecture and code can be technically flawed  Test plans can miss functionality  The later these problems are found, the more likely they are to cause the project to fail

Applied Software Project Management 7 Why do software projects fail? Programmers have poor habits – and they don’t feel accountable for their work.  Programmers don’t have good control of their source code  Code written by one person is often difficult for another person to understand  Programmers don’t test their code, which makes diagnosing and fixing bugs more expensive  The team does not have a good sense of the overall health of the project.

Applied Software Project Management 8 Why do software projects fail? Managers try to test quality into the software.  Everyone assumes that the testers will catch all of the defects that were injected throughout the project.  When testers look for defects, managers tell them they are wasting time.  When testers find defects, programmers are antagonized because they feel that they are being personally criticized.  When testers miss defects, everyone blames them for not being perfect.

Applied Software Project Management 9 How can we make sure that our projects succeed? Make sure all decisions are based on openly shared information  It’s important to create a culture of transparency, where everyone who needs information knows where to find it and is comfortable looking at it.  All project documents, schedules, estimates, plans and other work products should be shared with the entire team, managers, stakeholders, users and anyone else in the organization who wants them.  Major decisions that are made about the project should be well- supported and explained.  Everyone agrees on what needs to be built, how long it will take and what steps will be taken, how to know it has been done properly.

Applied Software Project Management 10 How can we make sure that our projects succeed? Don’t second-guess your team members’ expertise  Managers need to trust team members and make them productive.  Just because a manager has responsibility for a project’s success, it doesn’t mean that he’s more qualified to make decisions than the team members. Rely on the expertise of the members. No way a single person can fill all the roles. They make recommendation, you make the informed decisions.  If you don’t have a good reason to veto an idea, don’t. Support them, listen to them.  However, do not blindly trust your team. Evaluate their ideas in relation to solid engineering principles.

Applied Software Project Management 11 How can we make sure that our projects succeed? Introduce software quality from the very beginning of the project  Review everything, test everything. Review is not just force people to sign and make commitment.  Use reviews to find defects – but don’t expect the review to be perfect. Catch enough defects to more than pay for the time to hold it. Faster to fix something on paper than build it first and fix it. A few minutes review can save hours, days or weeks in fixing code.  Use reviews to gain a real commitment from the team. Foster respect among team members for everyone’s contribution.  Testing (unit testing, functional testing, performance testing) is just as cost-effective as reviews. Testing must be planned from the beginning and then supported throughout the entire project. Look for defects at every stage, in every document, and in the software.

Applied Software Project Management 12 How can we make sure that our projects succeed? Don’t impose an artificial hierarchy on the project team  All software engineers were created equal.  A manager should not assume that programming is more difficult or technical than design, testing or requirements engineering.  Managers should definitely not assume that the programmer is always right, or the tester is always raising false alarms.  Everyone on the team feels respected and valued and gain a true commitment from each person to make the software the best it can be.

Applied Software Project Management 13 How can we make sure that our projects succeed? Remember that the fastest way through the project is to use good engineering practices  Managers and teams often want to cut important tasks – especially estimation, reviews, requirements gathering and testing.  Do not like adopting practices unless they believe they will see a net gain.  If it were faster to build the software without these practices, we would never use them.  Every one of these practices is about saving time and increasing quality by planning well and finding defects early. Cutting them out will cost time and reduce quality.

Applied Software Project Management Part I: Tools and Techniques Software Project Planning  Vision and scope document  Software project plan Estimation  Wideband Delphi estimation process Project Schedule  Project schedules  Earned value metrics  Scheduling software (such as Microsoft Project and Open Workbench) 14

Applied Software Project Management Tools and Techniques Review  Inspections, Deskchecks, Walkthroughs code reviews and pair programming Requirements  Use cases  Functional and nonfunctional requirements  Software requirements specifications  Change control 15

Applied Software Project Management Tools and Techniques Design and Programming  Configuration management  Subversion  Refactoring  Unit tests  Project automation software Software testing  Test plans, Test cases and Test automation  Defect tracking system  Postmortem meetings  Metrics 16

Applied Software Project Management Part II: Using Project Management Effectively It is not enough for a project manager to understand practices that are used by all of the team members. A good project manager also needs to know how to lead the team. Focused on learning how to use the five basic principles in order to work with people, teams, and organizations. Understanding Changes Management and Leadership Managing an Outsourced Project Process Improvement 17