Idea: Computer Game - Death March Project Management

From NoskeWiki
Jump to: navigation, search
This is an original idea (to the best of my knowledge)!
This page represents an idea by Andrew Noske.


Date of idea: ...........9/5/2010
Date added here: ....10/5/2010
Status: ..................Hoping someone will want to make this happen and contact me... and so is book's author!


Ideas I've publicly posted here I'd love to implement myself, but I know I (realistically) don't have enough time and/or resources. While most people keep their ideas secret, I'd prefer someone else implement and benefit from this idea rather than it fade in my head and never happen!

If you like this idea or know of a similar one please e-mail me at andrew.noskeATSIGNgmail.com.  :-)

For more info and a list of my public ideas visit: Ideas.

Executive Summary

The idea is to create a free, turn-based online computer game which simulates real "death march" software engineering projects by placing the player in the role of project manager, allowing the use of various tools to manage people, processes, time, project risks, budget and a near-impossible deadline! Similar to 3rd world farmer, the game won't just be educational, but will also be designed to be draw an emotive response because, unlike most games, success will very difficult due to the frequent occurrence of setbacks after each turn. For example: "customer demands extra features", "unexpected bug", "data loss" (less likely if you invest in SCM), "Greg's child falls sick" (lose your best coder 2 days), "team-member quits" (likely if his motivation bar gets too low).


The frequency of these events, and their impact on your team, will depend highly on the decision you make (eg: "send all team to a one-day RAD training course", "buy SCM tools", "employ spiral development"). Each turn represents a project meeting which occurred either weekly or daily, allowing you to assess the level of each employee's motivation, fatigue and potential new problems. The aim of the game is to finish a project on time and make money, but since this task will be deliberately difficult a more realistic long term aim is to "survive" without getting fired or losing (too many) team members, thus having the chance to build on/learn from mistakes and hopefully do better the next project.


Death march - default screen (mock screenshot)
Here the player can review morale by clicking each team-member and take any number of actions before clicking the arrow for 'next turn'. Most of the items you see here, such as the "risks" white-board and "calendar" you can click on to pop up a screen with more information and options. Although there are only five employees shown here, the table would be extended for larger projects as you add more employees (assuming you can afford it!).


Inspiration

I had this idea after reading the fantastic and sobering book "Death March" by Edward Yourdon. A friend of mine recommended this book as it "could save my arse one day". In a nutshell: a "death march" can be thought of as a software engineering project who's project parameters are so optimistic (eg: highly compressed timeline) it's highly unlikely to meet the deadline, but highly likely to have human casualties (ie: people emotionally devastated and quitting).

3rd world farmer - a "socially conscious" game, which should provide many ideas for my proposed software project game

Prior to reading the book I'd been researching "games with a purpose" and stumbled upon an excellent "socially conscious" computer game called 3rd world farmer which I found as addictive as it was emotive - trying desperately to keep alive an impoverished family in Africa and learning about the realities of farming in a third world country the hard way (albeit in a simplified simulation). Although software engineering isn't a life or death situation, I made the connection of a "sobering reality" where you can "expect causalities". Using 3rd world farmer (and similar games) for ideas and inspiration, I believe someone could could make a very powerful (and popular!) game called "Death March" to teach people about the realities of software engineering - without the real life emotional casualties!


Motivation

Software engineering is a field where there are numerous technologies, and numerous processes/methodologies a project can employee. One of the main motivations of this game is to teach the user a little about each of these processes and where they might best apply. Processes and training staff cost time, and too many in a death march cause more harm than good; but the cost of no processes could be much dearer. As each new tool/option becomes available, the player can read a summary about it (including diagrams/graphs) and decide whether it's suitable for any given project. When big mistakes or rare successes are made, additional suggestions, additional tools and pieces of information (many taken from software engineering book "Death Mark") are presented to the user. Moreover, since the game is geared to failure, the player will learn about the reality/difficulties of death march projects and the importance of closely monitor the motivation/fatigue of team members and other project risks - lest their team member's relationships fall apart and they all quit.


Since even in complete failure (getting fired) you'll pick up new tools and lessons, I believe people will play this game many times - determined to eventually succeed. Although difficult, it will definitely be possible to succeed if the correct decisions are made (plus a little luck) and all the failure will make success (and a high score) that much more triumphant!


Gameplay

The way I imagine the gameplay:


In the splash screen, you'd have the option to: login or play a quick game (the latter representing a single project). If you create a player account and login, the advantage is you can have a "corporate memory" whereby even if you get fired, you might have additional "tools" or knowledge (eg: which employees in your organization are good) next time you start over.


At the start of the project, you pick a team from a number of employees with different skills, pay scale and potentially dodgy references, although some members may be forced on you. Since your project is a "death march" you may also be able to bargain for better space, extra computer resources (eg: better computers), extra team members or other allowances, although doing so could cause you to lose face gain criticism from stakeholders later (especially if you fail badly). Next you get to assign them roles (eg: programmers, system architects, GUI/graphics designers, database managers (if needed), documenters, secretary, "resource investigator" and "coffee bitch" - for anyone who turns out to be useless but for political reasons you can't fire!) and set them guidelines for how many hours to work (keeping in mind that toward the deadline you'll probably have them working weekends).

Death march - team member view (mock screenshot)
Here the player can see an individual team member's status, credentials and made decisions specific to that member.

During the requirements/analysis stage of the project, it's unclear how much detail the player would be exposed to. Obviously the idea is not to create-your-own Use Case or ER diagrams (you're not actually designing the system!), but you may have to prioritize features ("triage"), set milestones, select which technology/tools to use (eg: C++, Java, web front-end) and will definitely have to chose which processes (eg: RAD, spiral development lifecycle, Use Case, ER diagrams, top ten risk management, OO, reuse code, CMS) the team should use, depending on what you think is suitable given team's knowledge of these tools and the project itself. Different projects will have different requirements (eg: budgeting tool X for company Y, road design program Z for local government, "dynamic website for storefront" or even online multiplayer game), and some will be longer than others, meaning you're just as likely to be randomly assigned a three month death march as a two year one. To make it more real, the program could include real-life documented projects and every once in a while might be lucky enough to get a project which isn't a death march; giving you a chance to build up your team's skills!


Each turn represents a project meeting which occurred either weekly or daily, or a milestone demonstration of the software to the customer. All this would be built around your calendar, and motivation could easily be effected by real calendar events - especially if you are asking employees to work weekend or public holiday!


On each turn you'll be able to click on any team member to see their (estimated) motivation, fatigue and contributions. Here you'll have to option to fire them, work them more/less hours, teach them a new process (costing at least 1 day of work), change their role or reward them for good work (with time off a raise or the promise of a holiday or stock)... and nearing the deadline you may ever be able to request more employees. Every action you take is likely to have a reaction in the motivation of other team members, and a highly de-motivated team member can quit. To make it more realistic, you too (the project manager) will have finite time to research new technologies,


You'll also be able to review the project's risks, deliverables and overall progress - keeping in mind that the processes you have in play will cost your team in time to learn the process (if not already) and to maintain documentation etc. You'll also have to keep an eye on external factor, such as any enemies you might have in addition to keeping the project's owner and/or customer happy. I imagine you could divide all this into the following screens:

  • people (where you can see your office space and mange team members)
  • resources (where you can manage hardware and software resources)
  • risks (where you can review the top ten risks and opt to invest time reducing each)
  • politics (where you can see the customer, owner and other stakeholders, monitor their request and try keeping them happy)
  • calendar (where you can set milestones and measure progress on deliverables)
  • budget (where you see your project's balance and request more money)


After making any changes, you then click the play icon to end the turn. After each turn, one or more setbacks may occur. A few of many possible examples (from least to most severe):

  • the "process police" (in your organization) berate you for not employing recommended CASE (less likely if you have a project champion)
  • two team members fight over their responsibilities or dodgy code.
  • a computer dies after an electric storm (less likely if you had UPS)
  • a team member anonymous complains about long hours you demand to CEO
  • Greg's child falls sick (you'd lose your best coder for 2 days)
  • an unexpected bug set your coders back a day
  • a hurricane warning cost two days work (yes, some events are unpreventable/unpredictable and less likely {say <1/1000 chance} than others!)
  • data loss due to power failure or human error (less likely if you invest in SCM)
  • a close friend is promoted and offers to champion project (yes, very occasionally something may go right!)
  • the customer/client demands extra features
  • a senior manager (above you) cuts your budget
  • Sophie's marriage is on the rocks (due to you working her too hard)
  • Sohpie quits (likely if his motivation and/or energy bar gets too low).


Some will be more severe than other, and some may require you to make an on-the spot decisions - for example you *might* be able to stop a disgruntled team member quitting if you offer him a raise or stock options. Just as disgruntled team members produce less output and may quit, if your own motivation or energy becomes too low you will become less effective/charismatic and your player may randomly decide to quit or erupt into rage during a board meeting.


Certain milestones, such as a "live project demonstrations", may bring up their own window, and reveal additional problems. When you reach the deadline and (most likely) you haven't finished, extra pressures from above will intensify. If however you "finish" the project without getting fired, your customers will evaluate your performance and software. The points system could be quite complex, but would probably come down to a not-too-complex formulae based on the time you delivered software (relative to the deadline), software quality, and also the satisfaction/motivation of your team members and stakeholders.


From here you might (if you did a good job) be able to send team members on holidays, and two months later you'll get to chose to sign up for a new death march project! On each subsequent project you'll be able to reuse some of the same team members who (hopefully) like you and now have better skills and familiarity with your processes.


To make the game more interesting, when you made major mistakes, your "mentor" will pop up with advice and this may include extra "tools" which you can add to your bag of tricks. This may include extra processes, or tricks like "added: option to bake cakes for employee's birthdays to improve motivation". The idea is that this mentor is teaching you, the player, and even if your character dies (or rather is fired), these "unlocked tools" remain when you try again!


Implementation

This game has not been created! It's just an idea and I've realized it's one which, although I have to skills to create - I don't have the time! Thus I've posted it here as free game. If you like this idea and want to create such a game please e-mail me. I'd love to participate - even if it's a "token role" - contribute additional idea, and watch its progress! Note that I've done these screenshots in Flash - the real game I imagine as less cartoony and more serious, but I'd happily give you the these as a place to start! Another interesting idea is to make the game 3D in more of a "Sim's style", with 3D characters and maybe even let the user design and/or interact with the office-space. One can almost imagine a little man (the project manager) walking around a virtual office / skunk works space and chatting to (or avoiding) employees - but to take it to the level where you're manually moving characters around would slow things down and probably detract from the important parts of the game!


I believe a great format for this game is as a Flash game. Flash/ActionScript is easy enough to program in (and Flash is very good for drawing and using graphics), but what makes this game hard would be getting the balance right! Not only do you want to make the game suitably challenging and dynamic (such that there IS no silver bullet / path to success on EVERY project), but you'd want to consult with a lot of experience project managers to make sure the game is realistic! For example if a player succeeds after picking a team of 4 secretaries, 4 documenters and 1 coder and somehow wins, this is not realistic! Interviewing and interacting with real project managers to help build a realistic game would, in itself, be a very useful learning experience!


Name

I believe a good idea is to name this game "Death March", as this word is now commonly known to software developers, and because the idea (originally) stemmed from the book. Other possible titles off the top of my head:

  • Death March - "a software engineering war game based on the book "Death March" by Edward Yourdon.
  • Software Engineering - The Game.
  • Software Project Simulator.
  • Project Management Mayhem.


Support from the Author

To promote such a game you ideally want the author of the book on board to help! I contacted Edward Yourdon (the book's author) and he was very interested in this idea and hopefully also being involved in development (depending on how busy he is). Edward also suggested that, rather than a Flash game it could work very nicely as an iPad/iPhone game and believes it could and should be "made in such a way that it's not only fun, but also fairly accurate, and educational"! Edward also mentioned a Canadian consulting firm attempted/made a little PC-based "project management game" back in the 90s, but the game disappeared after company went bust (presumably NOT because of the game).... I'd love to get a copy if any know anything extra.


Deployment

Depending of your marketing power and ability to make the game slick you *might* have to forget the concept of making money here - instead you'd be in it for the glory! Whilst such a game might (over time) be recognised as an excellent tool for 'experiencing' life as a project manager, it's best shot at popularity is if the game is free.

After making the game, you'd post it on a site like: "arcadetown.com", and several others. You'd also want to put it on many forums/lists (eg: games for change) and (of course) seek Edward's help in promotion too. From there, you might just have created the first game which computer students and even senior managers are actually encouraged to play (by their superiors) to help elucidate some of the sobering realities of Death March projects! And hey; if the game is good, perhaps you could make a free online version AND a fuller-featured iPad/iPhone game to make a little money - but once again I emphasize you should be in this more for the glory and opportunities that might follow!  :-)


Similar Projects

  • Game Development Story - an iPhone game which is very popular. I think it started free, but it's now $4 and it looks like they've sold many million copies! I've just played the game and sadly it doesn't have much in the way of educational value - it doesn't teach you much about game or software development - but can still provide inspiration. (added: March 2012)


Links

  • Create a face - to design the mock screenshots above I used Flash, however since faces take so long I found and used this game. After making each face I took a screenshot, imported it into Flash then went Modify > Bitmap > Trace to convert it to vector then edited and added a body to each. A good way to save time, although in the real think I imaging making the characters look less cartoony - maybe even using bitmaps like was done in 3rd world farmer.