Why do I need to learn about software project management?
Knowing how to create software does not mean that you will create software SUCCESSFULLY. Creating software successfully means that you satisfy all customer’s REQUIREMENTS ON TIME, ON BUDGET with HIGH QUALITY while making both the customer and yourself HAPPY. Especially, your software must create REVENUE for the customer.
Have you ever wondered why many software projects failed; why Microsoft, Oracle, Google, Apple, Amazon and IBM abandoned many projects? Software project management will provide you knowledge so that you could improve the success probability of your software projects and mitigate all the project risks.
What can I do after finishing learning about software project management?
You will know how to plan a project, including scoping, estimating time and resources, creating a schedule or an adaptive release plan, identifying and responding to risks.
You will know how to create software using the mindset of a specific methodology (i.e. Waterfall, Rational Unified Process, Iterative and Incremental Development, Agile Methods, Scrum, Extreme Programming, Kanban, PMI, PRINCE2).
You will know how to perform project configuration management, how to combine development and operations to release software faster, how to control project changes, how to report project status, how to control product and process quality.
You will know how to collaborate with others to create software, how to motivate your team members.
Uh-oh! I am a developer. I do not want to be a project manager. Do I really need to know about project management?
If you have a doubt about the usefulness of project management knowledge then just review the situations below. If you can overcome all of them then congratulation, you already have enough project management knowledge that a developer needs.
– You are asked by your manager when you can finish your tasks. Unfortunately, the tasks are new to you. The requirements are vague. It is even worse that you have not found technical solutions for them.
– You are required to finish a task requiring a collaboration with other team members. Conflicts arise frequently. You do not want to work with them anymore but you still have to complete the task.
– You cannot complete a task on time due to many incidents.
– You are given only a project idea and asked to create a product. The difficulty is that you do not know where to start.
– Most of your projects cannot be complete on time and on budget and you do not know what are the root cases.
– Most of your customers do not want to partner with your team again although their projects were finished on time with high quality by your team.
Alright! What should I do now?
First, please read this book to get familiar with software project management concepts: Jennifer Greene and Andrew Stellman (2005). Applied Software Project Management. O’Reilly.
After that, please read this book to learn how to estimate effort, time and cost for a software project: Steve McConnell (2006). Software Estimation: Demystifying the Black Art. Microsoft Press.
After that, please read this book to learn the principles of software project management: Frederick P. Brooks, Jr. (1995). The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley Professional.
After that, please read the two books below to learn how to deal with the human side of a software project:
- Tom DeMarco and Timothy Lister (2013). Peopleware: Productive Projects and Teams. Addison-Wesley Professional
- Zachary Wong (2007). Human Factors in Project Management: Concepts, Tools, and Techniques for Inspiring Teamwork and Motivation. Jossey-Bass
After that, please read this book to learn how to deal with software project risks: Tom DeMarco and Timothy Lister (2003). Waltzing with Bears: Managing Risks On Software Projects. Dorset House.
After that, please read the books below to learn how to manage software project activities using the Unified Process:
- Philippe Kruchten (2003). The Rational Unified Process: An Introduction. Addison-Wesley Professional
- Per Kroll and Philippe Kruchten (2003). The Rational Unified Process Made Easy: A Practitioner’s Guide to the RUP. Addison-Wesley Professional
- Scott W. Ambler et al. (2005). The Enterprise Unified Process – Extending the Rational Unified Process. Prentice Hall
After that, please read the books below to learn how to manage software project activities using the Scrum process:
- Ken Schwaber (2004). Agile Project Management with Scrum. Microsoft Press
- Jonathan Rasmusson (2010). The Agile Samurai: How Agile Masters Deliver Great Software. Pragmatic Bookshelf
- Kenneth S. Rubin (2012). Essential Scrum: A Practical Guide to the Most Popular Agile Process. Addison-Wesley Professional
- Mike Cohn (2010). Succeeding with Agile: Software Development Using Scrum. Addison Wesley
After that, please read this book to learn how to manage requirements in an Agile project: Dean Leffingwell (2011). Agile Software Requirements. Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley Professional.
After that, please read this book to learn how to estimate cost, effort, and duration, and how to create and manage a plan for an Agile project: Mike Cohn (2005). Agile Estimating and Planning. Pearson Education.
After that, please read this book to learn how to apply Extreme Programming techniques in an Agile project: Kent Beck and Cynthia Andres (2004). Extreme Programming Explained: Embrace Change. 2nd Edition. Pearson Education.
After that, please read the books below to learn how to carry out software project management activities with an Agile mindset:
- James Shore and Shane Warden (2008). The Art of Agile Development. O’Reilly
- Esther Derby and Diana Larsen (2006). Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf
After that, please read the books below to learn how to manage software project activities using the Kanban method:
- Eric Brechner (2015). Agile Project Management with Kanban. Microsoft Press
- David J. Anderson (2010). Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press
After that, please read this book to learn how to perform software configuration management activities: Jessica Keyes (2004). Software Configuration Management. Auerbach Publications.
After that, please read this book to learn how to release software continously: Len Bass, Ingo Weber and Liming Zhu (2015). DevOps: A Software Architect’s Perspective. Pearson Education.
After that, please read the books below to become familiar with the knowledge areas and techniques developed by the Project Management Institute (PMI):
- Project Management Institute (2021). A Guide to the Project Management Body of Knowledge. 7th Edition. Project Management Institute
- Kathy Schwalbe (2017). An Introduction to Project Management. 6th Edition. Schwalbe Publishing
After that, lease read the two books below if you are interested in obtaining a PMP certificate:
- Kim Heldman (2018). PMP Project Management Professional Study Guide. Sybex
- Joseph Phillips (2018). PMP Project Management Professional Study Guide. McGraw-Hill Education
After that, please read this book to review classical methods and techniques of software development: Steve McConnell (1996). Rapid Development: Taming Wild Software Schedules. Microsoft Press. The information in this book may help you address specific problems, such as unrealistic deadlines, frequent delays, and unclear or changing requirements.
After that, please read this book to review approaches to software project management, especially when organizational-level processes and practices establish the platform on which a software project is managed: Murali K. Chemuturi and Thomas M. Cagley Jr. (2010). Mastering Software Project Management: Best Practices, Tools and Techniques. J. Ross Publishing.
Terminology Review:
- Project Initiation
- Scope Management
- Agile Requirements
- Waterfall
- Rational Unified Process (RUP)
- Enterprise Unified Process
- Agile Methods
- Extreme Programming (XP)
- Scrum
- Kanban
- Work-in-Progress (WIP)
- Software Estimation
- Agile Estimating
- Project Planning
- Gantt Chart
- Cost Management
- Agile Planning
- Configuration Management
- CI/CD/DevOps
- Project Monitoring and Control
- Time Management
- Peopleware
- Team Management
- Team Motivation
- Software Quality
- Agile Retrospectives
- Quality Management
- Risk Management
- Software Project Management
- Software Process
- Project Management Professional (PMP)
- CMMI
After finishing software project management, please click on Topic 15 – Advanced Database Management Systems to continue.