5 Common Antipatterns in Software Project Management
Some companies or project teams falls into error of spending time for the project planning /analysis/meetings much more than needed. Planning detail is not needed to be "complete" in each phase. This may be a serious bottleneck for projects. Like planning, analysis is also not needed to be complete at the beginning, except waterfall projects. As we know, waterfall is not such an efficient software process/methodology, until there is not a contract obligation about that. Planning and analysis should be "as required" and have flexibility points. Also, meeting duration and intervals are very important about this concept. Only required meetings with required staff and with shortest possible duration should be performed. Otherwise a huge time loss and unnecessary brain fatigue on staff will be inevitable.
Most employees like working in a relaxed environment and company. But on the other hand, if their work is not monitored and controlled, they are also not satisfied. Monitoring and controlling is required for non-managers because they need to be directed (they are not employer and they don't have to make every important decision), leaded (code reviews, trainings etc. are important for self development, also scheduling is important for efficiency) and appreciated (high performance and skills needs good feedbacks, at least a few good words). And they also want to know that they are doing an important job and they are part of that organization. So, an ethical staff will also require to be managed and controlled "as required".
Wrong choices of staff motivation techniques:
Job satisfaction (passion for the job concept, learning and self-development), human interactions (between employers and employee) and income (convenient with job type and sector averages) are very important for staff motivation. Job details, development plans, income and midterm income possibilities must be explained before starting job and if everything is OK, they must not be changed after starting job. Beyond the technical and economical issues, communication is the most important concept in teamworks. IT staff is not a kind of people that can be motivated using hard wording, hierarchical and forbidding working style. They should feel confidence and comfort. After that, performance will be OK. If these things cause inactivity on staff, those staff is not right choice and an action must be taken as soon as possible.
Wrong selection of metrics and evaluation methods:
Metrics are important tools for monitoring software development process and they can provide some different viewpoints. For example, widely used "line of code" (especially logical line of code LLOC) metric may be used for "monitoring the growth of project by code size". If you attempt to evaluate developer efficieny using LOC, this will be a huge mistake because short and efficient code, design patterns etc. will be punished. Also copy paste programming, unreadable code etc. will be rewarded. E.g. cyclometic complexity, scheduling compliance, bug count are better methods. But best of all is determining right metrics according to the project type and team member properties.
Documentation strategy mistakes
Documentation is very important for software projects. Planning, analysis, design, development and testing phases need "required" level of documentation. Even for some fastest agile processes like SCRUM, documentation is needed. Main purpose of documentation is making life easier for developers and users. For example use case definitions are important on development phase, complex problem solutions are important on maintainance phase or on employee shifts, diagrams are important for understanding concepts fast and clearly. However documentation should not consume a very important percentage of whole project schedule. Generally it may be %5-10.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)