I’ve always been keenly interested in Software Project Management; this semester, I finally had the chance to take a class! In this “evolving” post, I plan to dump my notes, musings, and links to resources and other interesting things I find on the Web. I also plan to put up a list of the books I plan to read (and their summaries, I hope!).
Lesson 1, Introduction (My notes based on Project Management by Jeffrey K. Pinto and discussions in class)
Definition of a Project:
- A temporary endeavor that seeks to achieve a goal in mind (deliver a quality product/service to a customer), with the constraints of a schedule, budget, and resources.
- “A project is a temporary endeavor undertaken to create a unique product or service.” – PMBook 2000
- “A project is a unique venture with a beginning and an end, conducted by people to meet established goals within parameters of cost, schedule and quality.” – Buchanan & Boddy 92
- “Projects are goal-oriented, involve the coordinated undertaking of interrelated activities, are of finite duration, and are all, to a degree unique” – Frame 95
The Elements of a Project: complex, limited resources, clear goal, and customer-focused.
The main differences between between a process and a project are as follows:
1. Processes are routine, repeated tasks, while projects are a one-time thing.
2. A Process has several objectives, while projects have one goal.
3. Processes are ongoing, while projects are terminated upon successful completion.
4. Processes are done by people of the same department/skills set (homogeneous), while a project requires people from diverse skills sets and roles to be successful (heterogeneous).
5. A process has systems to integrate efforts, while systems need to be created for a project.
6. Processes have known factors such as time, cost, etc., while these are estimated for a project.
7. Processes use established practices and maintain the status quo, while projects create new practices and upsets the latter.
Why software project management?
We need SPM because software itself is intangible, as well as flexible. A customer may change his mind about the requirements. On top of that, the process of creating software is subject to constraints, such as schedule, budget, and resources. Furthermore, the practice of software engineering is not standardized (unlike other branches of engineering), posing the need for something that will push for quality at all times.
Activities of a SP manager may include:
1. Proposal writing
2. Project planning and scheduling
3. Project costing
4. Project reviewing and monitoring
5. Project evaluation and selection
6. Report writing and presentation
Concerns on Project Staffing
There may be a lack of budget to hire the people with the required skill set.
Or there may be a lack of people with the skill sets needed. Training recruits is always an option, as well.
-Takes the most time.
-Iterative and evolving.
-Evolves constantly, from initial concept to final delivery.
-Mostly concerned with budget and schedule. (A note on schedules… Most schedules track a maximum of 1 year, 2 years for very complex projects.)
Types of project plans include the quality, validation, configuration management, maintenance, and staff development plans. (We’ll talk about these in detail soon…)
The Importance of Projects
-shorter product life cycles
-helps out with shorter windows for a new product launch
-gives concerted effort for creating complex products
-better collaboration in a global market
The Project Life Cycle
1. Conceptualization. Initial requirements gathering, brainstorming, design. Roles that may be active include the project manager, systems analyst, business analyst, or senior developers/software architects. Deliverables include the business requirement spec, the statement of work, the request for proposal, and the proof of concept/prototype.
2. Planning. Details of the project are finalized. By this stage, you should know exactly what the project should accomplish. Developers, QA, everyone needs to be included in the discussion, as they alone will be able to give an accurate idea of how long this will take, possible problems, etc. Deliverables include the WBS breakdown, the schedule, budget, and a myriad of plans (see above).
3. Execution. Where most of the work happens. Designers design, coders code, QA tests, etc.
4. Termination. The product is handed over to the customer, and resources are assigned to different projects. Deliverables include documentation.
The Constraints of a Successful Project
To be successful, a project must stick to its budget and schedule (as much as possible), without compromising performance. The final product must satisfy the customer.
The Domains of a Successful Project
-Pleasing to customer
-Planning for the future
(Efficient product wows customer. The product drives revenue to the customer or simplifies their company processes. They are so happy with this that they go back to your company for future transactions.)
Project milestones – Predictable stages where management can review the status of the product/project.
Risk Management – There may business, product, or project risks. Risk management tries to foresee those risks in order to minimize their impact or avoid them altogether.
Books I am currently reading: