|
Reposted from AltDevBlogADay
I’m always quite concerned about speaking my mind on industry topics. I am, after all, just a student – albeit a mature student with some (old & outdated) industry experience. I know that a lot of my speculative arguments, theories and opinion pieces could be shot down with “you don’t know what its like”.
There’s one topic, however, that I have very strong feelings on, and that I feel, as a student, I can offer some perspective on: CRUNCH.
Being a student, crunch is something I come up against all the time. When exam/deadline time rolls around, our library goes into 24-hour opening times, the union starts dolling out caffeine tablets like candy, and the counselling department pretty much just opens its doors to accept the cracked and broken souls that don’t make it through. Throughout all of this, though, the message is clear: it shouldn’t be this way. Do you work early and pay attention to your time and you’ll be fine. To “crunch” in University, however common it might be, is seen as something you do because you’re too young/naive/unprofessional to handle your deadlines responsibly.
What worries me the most about crunch in the games industry is the view of it as acceptable practice. I worry this can lead to an exponential explosion of crunch-time, leading to a dreaded state of near-perma-crunch. By accepting that crunch happens because of deadlines, producers then begin to schedule crunch time into the plan. Which means that when unseen problems come along, the stress rises, because you know crunch is coming anyway, so you have to crunch more for the new problems. Thus crunch happens earlier, or more intensely. This becomes a habit, gets accepted, and finds its way into the schedule for the next project, and so on …
In the course of the last year, I’ve developed 3 (admittedly tiny, barely-finished & prototypical) games at Uni, and – believe me – I can appreciate how difficult it can be to properly predict and scope a development project. Games development is, by its very nature, unpredictable – you can’t really “sketch” the play of a game the way you could a painting, or outline it the way you could a lengthy essay or dissertation (ways in which you might attempt this are a topic worthy of its own post).
At the end of the day, however, we are being taught to work as professionals. This is something that I both love and loathe about our course (blatant shilling alert!): unlike some more liberal, artistic courses, Abertay University’s Professional Masters in Games Development is all about the business of making games as professionals. We might not be encouraged to be as innovative and creative as possible, but we have producers, we have schedules, and – yes – we have deadlines, and by and large we hit them, because the job of producers is to make sure that the project hits those deadlines. They cut content when they have to, they reign in designers when they have to, and they generally work towards that singular goal – crunch is essentially their failure. If they ask programmers to stay late, they do it as a favour to cover their butts.
Where developers are willing, or in some cases even wanting to put in extra hours, I feel like this is something that needs to be more carefully considered than the “hey, if they’re willing to do it” attitude. A good producer should see the developer as a whole, and the company culture is a big part of that. If some of the team are willing and dedicated to working extra hours, then it creates a culture of overtime that can suck in those who don’t want – or worse, can’t – put in that extra time. Not to mention that there are those developers who are so dedicated to a project that they’ll literally work themselves into ill health for their passion. A good producer should get the best from their team – and often times that might mean telling someone they need to stop working and go unwind. Simply buying dinner or drinks for hard-working teams can, in some cases, be seen as treating the symptom (stress and fatigue) rather than the cause (overwork) of a problem.
On top of this, producers (and any team member associated with people and resource management – lead artists, programmers and designers) must consider the value of each step in the development process. A poor pipeline leads to downtime, confusion and work that does nothing but gets lost in the ether. This not only produces delays in development, but also increases frustration and lowers morale.
Thus, I feel that the root cause of habitual crunch is a lack of professionalism – not professionalism of low level developers (although I do feel that not speaking out against habitual crunch as a practice is a little amateurish) but the professionalism of higher-ups, managers and producers.
Perhaps I’m way off base here, and the problem lies somewhere with publishers not offering realistic deadlines to developers. Perhaps production in the industry works fairly well – but the fact remains that the image projected by the industry still tends to be that working harder = getting more done. I would argue that the more professional approach would be not to work harder, but to work smarter and more efficiently by understanding not only the process of development but the needs of both the individual developers and the development group as a whole, and maintaining a healthy working environment and culture for all.
|
From a developer's point of view, developers can also be guilty of over promising. We naturally have the desire to make the best game possible with all the features we want to add. Management often works with developers in coming up with a schedule. If developers underestimates the features and the time it takes to implement them the problem starts to create pressures from above and below. Management is found somewhere in the middle and when the pressure is on, in order to satisfy both the publisher and deliver what their developers promised, crunch is often put into place.
I don't know, I'm sure there are other factors that contributes to the need for crunch, but this is what I've observed from my own experience.
People want to play a finished, polished product. Cramming new features in doesn't always make a product better. It's the same in any media - authors cutting chapters from books, directors cutting scenes from a movie. William Goldman coined the term "killing your darlings" for what he saw as a necessary action of taking out of a movie any scene you become personally attached to, and ensuring the movie flows without it, because you can't let your personal feelings interfere with the end project.
At the end of the day, the public might SAY they want features X,Y & Z in a game, but they'll be much happier if you give them X with plenty of polish and work done. I have a feeling a lot of games can easily become vanity projects for the developers, rather than aiming for a solid finished product.
You're also right about publishers - they need to be realistic, just as developers need to be realistic when making deals. This is where it gets messy, because there will always be publishers who don't care how a game is made, and developers who will break their own backs to undercut other developers ... I imagine, as I get out into the industry, I'll try and make a stand, but I can see how it could get difficult!
I think you're right--crunch is the unintended combination of clumsy project management and overly optimistic publishing models. It's one thing to give a student a well understood, self-contained problem and expect completion by a statistically sound (if not somewhat generous) deadline; it's another thing to give a team of people who have to coordinate a poorly-defined task and expect anyone to know when anything will be done. Guesses are made, milestones are set, and then suddenly there's not enough time.
Voila, crunch! From my brief time developing commercial software, I've found that the best developers who actually decide on crunch time and deadlines always do the following:
1. They always have a plan b. If the team is out of time, the first thing to do is look at the list of features and figure out what can wait.
2. They never set hard deadlines until they actually believe they understand the problem. When push comes to shove, and there are features that can't be cut which won't make the deadline, they don't cross their fingers and hope things aren't as bad as they seem. Their boss finds out as soon as they're sure, and deadlines never materialize into actual dates until they seem realistic.
3. They *never* promise miracles, or even pretend that miracles exist. Good dev leads never agree to "try" to get a feature on time. They either deliver or know that they can't guarantee delivery and say so.
This tends to result in slipped ship dates, missing features, and a lot of stress and scrutiny before the product is anywhere near shipping. And, in my opinion, that's how it should be. No surprises. If there's going to be crunch, it's going to be carefully managed, and very narrowly scoped.
Crunch will always exist, of course. But between good management and better scheduling, it's supposed to be part of a 40-hour work week and not the 100-hour horror stories we hear about.
I've also had a a lot of talk on alt-dev-blog about how throwing more man-hours at a project doesn't solve problems efficiently, and that a good producer sees the needs of the project before the desires of the developer. This speaks to you second point - managers need to understand both the project AND the developers, often better than the individual developers do themselves.
Whether to get ahead or to work on a polish item or whatever, this work ethic is one of the pit falls of good behavior I think. If you feel like you need to 'get ahead', all that really means is that the team has overscoped. If you add in a 'simple' polish item, great... but realize that while it may not have cost hours -now-, it has effectively added hours to the project because now that it's a feature, it must be tested and devoted polish time towards.
Likewise, it's developers discounting the time it takes to do trival things. Yes, scripting X may be very easy... but that hour or two spent comes from somewhere. And a dozen 'easy' things suddenly becomes an entire work day.
There's any number of reasons that crunch happens... but I don't think it's just poor scheduling or just poor producers. I think it's a combination of poor producers and leads not seeing the many poor decisions that look like good or harmless behaviors.
In my experience... Crunch doesn't come from only a single source. Crunch is caused by minor mistakes made from EVERY direction. Producers and managers can cause crunch with poor scheduling... designers can cause it with over-scoping or gold plating... and low level developers can cause it by cutting corners while trying to meet deadlines or failing to plan out their implementations for all the situations.
Crunch is not something that we should just accept. But it also isn't something that can be fixed by blaming one party.
Yeah... our publishers pushed us to a deadline we could never meet... but my managers promised them that we could... and our designer never got around to finishing the design because he was busy polishing... and our schedules were literally ignored because they weren't accurate... and guess what... even I can take blame because I became shortsighted when fighting to meet the constant deadlines. Every little mistake each person made added up to insane amounts of crunch time.
Crunch is everyone's problem... and crunch is everyone's fault. The only way that we can solve it is to all work together to keep things realistic and feasible.
I think part of being a good producer/manager is knowing your individual developers better than they know themselves, in regards to their work, and seeing the project as a whole: knowing that an extra 4 hours done to save this feature will create this extra work for someone else, and so on ...
I'm aware that sounds condescending, but its the way people management works, in a sense.
But you make a good point that the low level developers should understand this as well, and aim to understand their workflow better.