If you want your next software development project to fail, and not just a small way but in big, spectacular, way, here are some sure fire steps for you to follow:
1. Set Unrealistic Goals
Your management says the project has to be done in 2 months. You know it can’t be done in any less than 6 and it’s probably more like 9 months. But, hey, they want it in 2 and you’re in no position to challenge them so why not just go ahead and agree to it. Your team won’t mind. After all, if they agree to work 80 hours a week they should be able to pull it off. Besides, you’ve just gotten the purchase of a brand new code generation tool approved. This will save loads of time in the project.
你的经理说这个项目必须在 2 个月内完成。你知道完成这个项目至少需要 6 个月甚至 9 个月的时间。但是他们希望在 2 个月内完成，而你的地位又不足以与其抗衡，所以为什么不同意并且继续呢。你的团队不会介意这个的。在剩下的时间里，他们会同意每周工作 80 小时以便能够赶上进度。除此之外，你还被获准购买新一代的代码生成工具。这将帮你在项目中节省“一大车”的时间。
2. Staff Up Quickly
You need people on your team ASAP. Hire the first warm bodies your pal at Programmers-R-Us sends over for an interview. Your project has a tight schedule so you need somebody, anybody, on-board and ready to code. Don’t bother with having your team participate in the interview process or be too picky. If you do, you might lose the good candidates to other companies.
3. The More Documentation The Better
Require your team to document everything. You need a scribe to take down the minutes of each and every meeting and publish them afterwards. Every form must be filled out according to a mandated template taken from an antiquated mainframe methodology you learned in school or a NASA software development handbook you bought on eBay. Insist developers write out weekly, or even daily, status reports. You can never have too much data about a project. Ignore the whiners on your team who complain about being overloaded with useless work. They just don’t understand the benefits of good documentation.
让你的团队为所有的内容编写文档。你需要一个书记员来记录每次会议的每一分钟，日后整理成册。必须严格按照你在大学里学习的原始格式或者你从 eBay 上购买的 NASA 软件开发手册中的内容填写每一个表格，包括每日状态报告。对于项目来说你永远不会觉得数据会太多。忽略哪些在团队中抱怨做了太多无用工作的罗嗦的家伙。他们不明白文档的重要性。
4. You Can Always Make Up a Schedule Slip Later in the Project
If your project is falling behind it is always safe to assume that you can make up the difference later. People were just goofing off or getting into the project at first. Everybody knows that as the project progresses everyone gets more comfortable and productive. Just like in a distance race, everyone stores up enough energy for a big sprint at the end. Count on having a strong finish for your project.
5. Relax Your Standards To Shorten the Schedule
OK, so it looks like the document everything plan is not going to work out so well. The obvious answer is to do the opposite, scrap all documentation including any end user instructions or help files. That extra work can be done after the project is completed. Also, cut out fluff like integration and user testing, well managed source control and test systems and your other standard coding processes and procedures that just get in the way. Quality isn’t important, only completing the project on time is important.
If left to their own devices team members will goof off. It is your job to stay on them 24/7. If traffic is bad one morning, make a point of calling late team members on their cell phone every 2 minutes to gauge the progress of their commute. Who knows, they actually may be lounging at Starbucks rather than sitting in their car behind a jackknifed semi. Call them in the evening at home as well, particularly if they have the audacity to leave early, to discuss fine points of the project for 30 minutes or so. Use time management software to track each developer’s time in and out of the office and exactly what they’re working on throughout the day. Also, you should swing by every team member’s cubical 2 or more times a day to ask them about their progress. Feel free to offer your sage suggestions about whatever they’re working on. This lets them know how much you care.
如果让团队成员独立工作，他们就会变成蠢货。你的任务就是一星期7天，一天24小时的跟他们呆在一起。如果某天早晨的交通状况很糟糕，要点就是每两分钟给迟到的团队成员打一次电话以了结他们的什么时候能到。谁知道呢，他们可能会在星巴克里面休闲，而不是呆在车里停在在长长的车龙中间。晚上他们在家的时候也要给他们打电话，特别是他们厚颜无耻的提前离开的时候，一定要在电话里花三十分钟的时间讨论一下项目要点或者其他什么。使用时间管理软件来跟踪每一个开发人员到达或离开办公室的时间，特别是要了解他们一整天都在干什么。同时，你应该每天 2 的 3 次方或者更多次游走于每一个项目成员之间，以便告诉他们项目的进度。在他们应当做什么这个问题上尽可能的发表你英明的决策。这能让项目组了解到你有多重视。
7. Call a Daily Project Status Meetings
You should have at least one daily meeting to take the pulse of the project. This is best scheduled either first thing in the morning or very late in the afternoon. This helps insure everyone is arriving on time and not leaving early. Better yet, schedule a meeting for both times for a win-win situation. Every point of the schedule and the day’s work should be discussed in detail during these meetings. You have the room and the team’s attention for a full hour so why not use it to the fullest?
8. Threaten Team Members to Motivate Them
If your team is falling behind the problem is that you aren’t motivating them enough. You’re allowing them to goof off and fall behind! Put your project back on track by putting their feet to the fire. Let them know that if they don’t dedicate themselves wholly to the project they’ll be finding a new job. Question their competence as programmers and mention how anyone who doesn’t perform up to standards will be fired so as to spur them on to greater acheivement. You will be amazed at how motivated your team is after you take this approach.
9. Bring In More Programmers
That Brooks guy’s ideas might have applied way back in 70’s at IBM but they don’t apply in modern, Web 2.0, times. Screw the ‘Mythical Man Month’. Bringing in more programmers means more people coding and thus more getting done faster, simple as that. You could even have them work shifts using the same computers to save office space and equipment costs. You can easily find or invent a buzz word to describe what you’re doing to sell it to the team and your management. What a brilliant coup that would be!
10. Set Your Plan in Stone
Never, ever, back down on your vision of the project schedule or plan. You said 2 months with the new tool and you meant it. You know you have awesome estimation and project management skills. Don’t entertain any complaints about your choices in meetings. Anyone questioning your decision is being insubordinate and disrespectful and probably just looking for a way to slack off. How dare they question your competence and authority?
Special Bonus Idea
If you need good political cover for implementing these steps toward failure you need to tie them to a popular development and project management buzzword like Scrum, Agile, or Extreme Programming. All of these methods offer excellent cover to you both during and after the project. This shows your managers that you’re on top of the latest software development project management trends while your team are a bunch of disloyal whiners who can’t stand to have their cheese moved. Furthermore, when the project fails you will be recognized as a company expert of the method since you know what doesn’t work. Does it matter that you just ‘cargo culted’ these methods? No, not at all. You’re well on your way to being the next ‘pointy haired boss’ or Bill Lumbergh.