User-Oriented Software Development: A Case Study

This is a (heavily) abridged version of an internal talk I gave at Unity in Copenhagen in December 2018 about User-Oriented Development.  I’m sharing it here because I believe the learnings are useful outside of internal tools and outside of Unity. Hello.  Long time no . . . . write?  ¯\_(ツ)_/¯ I’ve spent the last year working on a new internal project at Unity called Flight Control. For the purpose

The Pros and Cons of Lumping Your Builds

At Unity, we’ve been spending a lot of effort recently looking at our build times.  One of the topics that came up is lumped builds.  I realized during all of this (and while doing my own research of course) that many people are lacking a clear understanding of what lumped builds gain you, and what they cost in return. What are lumped builds? Lumped builds are known by a few

Don’t Ask for Permission

Last year, I gave a keynote at ACT-W titled “Don’t Ask for Permission”.  The video of this talk was made available, but I’ve been meaning to make a blog post with the transcript of the talk for awhile.  Since ACT-W 2016 just released their call for proposals, I thought it would be good to finally get around to doing so.  Keep in mind that this talk was given in May of 2015, so some

GDC 2016

Whew!  It’s a week later, and I’m almost recovered from the non-stop whirlwind that was GDC 2016!  I thought I’d do a little write-up of how my week went while it’s still fresh in my mind. (I also got a lot of good inspiration for blog content from GDC, so stay tuned over the next days and weeks.) Going into the week, I was primarily interested in a few different

The 8 Fallacies of Distributed Computing (Something Every Build Engineer Should Read)

Yesterday I was attempting to relax by browsing random things on the internet (usually a mistake, I know), and I stumbled upon an awesome white paper by Arnon Rotem-Gal-Oz about the 8 Fallacies of Distributed Computing.  These are so obvious yet so profound I couldn’t help but write up a quick blog post about them.  They’re especially relevant for modern day build engineers and tools developers — certainly relevant to the Build Automation

Why We Do Code Reviews — And You Should, Too!

A couple of weeks ago at Unite Boston, I had the pleasure of giving a talk entitled How We Make Unity: A Look into How Development in Unity’s R&D Organization Works.  If you missed it and would like to view the slides, they’re available online over here. Unity’s development mainline is managed with a gatekeeper workflow.  A gatekeeper workflow means that developers do not push their own changes to the development mainline,

Engineering: It’s Actually About Problems, Not Solutions

OK, let me clarify.  Engineering is not 100% about problems.  It’s more like the first 70% or so.  The last 30% is about the solution. In all of the engineering teams I’ve worked in, I’m convinced that one of the biggest productivity killers is lost time due to engineers not fully understanding the problem they are trying to solve.  Conflicting advice, not understanding all of the constraints, unclear expectations leading

Musings on Gender Issues and Tech Conferences

One of my personal “causes” is trying to promote the technology world as a gender-inclusive space.  If you read about such matters on the internet these days, there are some stories that talk about how we’re getting more women in technology.  I don’t know whether that’s true or not, but one of my concerns is that even if we are getting more women working in the tech industry, I’m not convinced we

Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

At Unite Europe this year, we at Unity released our public roadmap.  And while it’s super cool to be able to share all of the amazing stuff we’re doing at Unity, one thing that is close to my heart is the Linux Editor. The story behind Linux port of the Unity Editor is a lot like the story behind Linux runtime support, which was released in Unity 4.0.  It’s basically a “Labor of

Mercurial at Unity

DISCLAIMER: This blog post is now several years old and it should not be used as a source of current advice.  The landscape of version control, and DVCS in particular, has changed a lot in recent years. Not too long ago, @CorporateShark asked for a blog post about Unity’s experience using Mercurial for version control.  This is that blog post. NOTE: Throughout this post, I use several terms that assume knowledge of DVCS in