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?
Software project management requires a lot of reading. In order to get familiar with software project management concepts please read this Jennifer Greene and Andrew Stellman (2005). Applied Software Project Management. O'Reilly book.
After that please read this Steve McConnell (2006). Software Estimation: Demystifying the Black Art. Microsoft Press book to learn how to estimate effort, time and cost for a software project.
After that please read - this Frederick P. Brooks, Jr. (1995). The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley Professional book to learn the timeless principles of software project management, and - this Tom DeMarco and Timothy Lister (2013). Peopleware: Productive Projects and Teams. Addison-Wesley Professional book, and - this Zachary Wong (2007). Human Factors in Project Management: Concepts, Tools, and Techniques for Inspiring Teamwork and Motivation. Jossey-Bass book to learn how to deal with human side of project management.
After that please read this Tom DeMarco and Timothy Lister (2003). Waltzing with Bears: Managing Risks On Software Projects. Dorset House book to learn how to deal with software project risks.
After that please read - this Philippe Kruchten (2003). The Rational Unified Process: An Introduction. Addison-Wesley Professional book, and - this Per Kroll and Philippe Kruchten (2003). The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP. Addison-Wesley Professional book, and - this Scott W. Ambler et al. (2005). The Enterprise Unified Process - Extending the Rational Unified Process. Prentice Hall book to learn how to develop software using a managed process.
After that please read - this Ken Schwaber (2004). Agile Project Management with Scrum. Microsoft Press book, and - this Jonathan Rasmusson (2010). The Agile Samurai: How Agile Masters Deliver Great Software. Pragmatic Bookshelf book, and - this Kenneth S. Rubin (2012). Essential Scrum: A Practical Guide to the Most Popular Agile Process. Addison-Wesley Professional book, and - this Mike Cohn (2010). Succeeding with Agile: Software Development Using Scrum. Addison Wesley book, and - this Dean Leffingwell (2011). Agile Software Requirements. Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley Professional book, and - this Mike Cohn (2005). Agile Estimating And Planning. Pearson Education book, and - this Kent Beck and Cynthia Andres (2004). Extreme Programming Explained: Embrace Change. 2nd Edition. Pearson Education book, and - this James Shore and Shane Warden (2008). The Art of Agile Development. O'Reilly book, and - this Esther Derby and Diana Larsen (2006). Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf book to learn how to develop software using Scrum and agile mindset.
After that please read - this Eric Brechner (2015). Agile Project Management with Kanban. Microsoft Press book, and - this David J. Anderson (2010). Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press book to learn how to develop software using Kanban method.
After that please read - this Jessica Keyes (2004). Software Configuration Management. Auerbach Publications book to learn how to perform software configuration management, and - this Len Bass, Ingo Weber and Liming Zhu (2015). DevOps: A Software Architect's Perspective. Pearson Education book to learn how to release software faster.
After that please read - this Project Management Institute (2017). A Guide to the Project Management Body of Knowledge. Sixth Edition. Project Management Institute book, and - this Kathy Schwalbe (2017). An Introduction to Project Management. 6th Edition. Schwalbe Publishing book to review the techniques developed by the Project Management Institute (PMI). If you are interested in taking a PMP exam then please read - this Kim Heldman (2018). PMP Project Management Professional Study Guide. Sybex book, and - this Joseph Phillips (2018). PMP Project Management Professional Study Guide. McGraw-Hill Education book.
After that please read - this Steve McConnell (1996). Rapid Development: Taming Wild Software Schedules. Microsoft Press book to review classical methods and techniques of software development - this Murali K. Chemuturi and Thomas M. Cagley Jr. (2010). Mastering Software Project Management: Best Practices, Tools and Techniques. J. Ross Publishing book to review approaches to software project management, especially when organizational-level processes and practices establish a platform on which a software project is managed. The information in these 2 books may help you in some specific situations.
After finishing the books please click Topic 14 - Introduction to Database Design to continue.