Introduction to software project management

Contents:

Part 1: Overview of software project planning
Part 2: Managing and Maintaining Physical & logical drives
Part 3: Managing users, computers and groups
Part 4: Managing and monitoring access to resources
Part 5: Managing and maintaining a server environment
Part 6: Managing and implementing disaster recovery
Part 7: Active directory primer

Preface

In rather short, but eventful career as a computer programmer I have seen many different project fail. In fact, there were very few projects I worked on that can be called a success. I decided sometime ago to study proper techniques of project management in order to avoid repeating mistakes executed with Swiss watch precision by management staff at most small to medium corporations. Here I present to the reader my personal notes that I have taken during my study. My aim was to leave for myself hints for each important aspect of project management. A refresher notes. By no means notes presented here should be used as complete reference. I am sure there are plenty of mistakes that will take me some time to fix - send me a note with your comments/ suggestions.

Legal stuff: I provide this guide as is, without any guarantees, explicit or implied, as to its contents. You may use the information contained herein in your computer career, however I take no responsibility for any damages you may incur as a result of following this guide. You may use this document freely and share it with anybody as long as you provide the whole document in one piece and do not charge any money for it. If you find any mistakes, please feel free to inform me about them Tom Kitta. Legal stuff aside, let us start.

Guide version 0.11 last updated on 28/01/2007.

Part 1: Overview of software project planning

Software development has inherit problem with determining the time it takes to complete it. Software programming is quite different than say, nail production. When one produces nails it is known how many nails machine produces per hour. If you need to produce x number of nails figuring the time it takes is easy. If you need 12h of time, you know that one of your workers can handle the overtime and omitting for the sake of argument certain safety concerns, your worker will be as productive at hour 1 as hour 12. Unfortunately, software development is much harder than nail manufacturing. There are many more unknowns - risks that have to be accounted for. In order to attain rapid software development, four different aspects have to be considered. These are:

The rest of this guide will discuss each of above four elements of project management. All of above are equally important, if any of above four is omitted then the whole structure might fail. The reason for "might" is the risk based aspect - as mentioned before things may go right or wrong. It's all about leaning in favor of successful resolution instead of using methods that increase the chance of failure. One of the methods that increase risk, but are widely used due to their simplicity, is programmer total commitment. This disorganized way of project management has its successes, however these successes are a result of inefficient, hard work - not of smart work that can be achieved by following above four principles.

Part 2: Development speed

Part 3: Most common mistakes

Part 4: Software development fundamentals

Part 5: Risk management in software development

Part 6: Choosing right development style

Part 7: Choosing right lifecycle model

Part 8: Project estimation

Part 9: Scheduling

Part 10: Developing for a customer

Part 11: Developer's motivation

Part 12: Teamwork

Part 13: Feature-set control

Part 13: Productivity tools

Part 13: Project recovery