Software Development within a Studio
We’ve tried about every formula for working with developers in film production. The following post is what we’ve come up with after 15 years of experience, trying just about everything we could. In this post I’m going to cover a few of the things that we tried in this quest for the perfect team structure for software development within a studio and hopefully you all can learn from our mistakes and experiences as we perfected the craft of software development for entertainment companies.
Attempt 1: Leave it to the CG Supervisors
This is what worked for a long time early on. This is basically the formula our founder Tom Mikota used when he was supervising films like Avatar at Weta Digital. This works because the person responsible for delivery and for making the artists as efficient as possible typically has a good idea of what should be created. This leaves a bit to be desired however because:
- This burns out the CG Supervisor – they are now writing code when they’re not making the movie, and this is typically well into the night
- The code created by CG Supervisors is typically a “Prototype” that works well enough to get a small job done, but isn’t robust enough to become part of a larger overall pipeline. That kind of “clean” code typically requires software developers.
This is the best option for small studios as there really isn’t another option. But if you’re in a large studio with multiple software developers and the CG Supervisors are still operating this way it’s likely because you don’t have a structure that facilitates serving the supervisors. This is something to be keenly aware of.
Attempt 2, 3, 4: Hire lots of pipeline TDs
The next thing that happens is studios start to just hire a lot of pipeline TDs. This sort of works, but doesn’t really. In reality there’s a few parts that go into building, delivering and maintaining a pipeline.
- Planning
- Development
- Testing
- Documentation
- Integration
- Ongoing Customer Service
As you can see online one line time on this list has the word “Develop” in it. That means that the other 5 stages are not being accounted for. What happens when 1 person is required to do 6 jobs? Not a whole lot. And because studios don’t typically recognize hat there are these phases it’s very easy to have misunderstandings about why things aren’t happening. Essentially what happens is the developers get interrupted to do one of these 6 things multiple times during the day, but the only thing accounted for in planning for the department is hiring more developers.
What Works
After trying all these things for about 13 years we finally figured out that Scrum Teams should be structured with an offensive and defensive team so that all 6 stages of pipeline development & delivery can be handled. This is the way we run our internal teams and this is how we show customers how to set their teams up for maximum success.
We are showing about a 10x productivity rate in terms of results for the dollar when we organize teams this way.