What Joss Whedon Can Teach Us About Software Development
The Agile Zone is brought to you in partnership with JetBrains. Learn how Agile Boards in YouTrack are designed to help teams plan, visualize and manage their work in an efficient manner, with support for both Scrum and Kanban processes.
A little while back I read a great article about a personal hero of mine, Joss Whedon. You may know of his work as the director of "The Avengers," "Firefly," and "Buffy the Vampire Slayer." I'm an unashamed fanboy, and I've actually found that a lot of people I meet are also Whedonites to the point where it's not a surprise to me anymore.
How can you not follow a creative mastermind who produces hit after hit and rises quickly to the top of his industry? That person could teach us plenty of principles that we could apply to our own professions, so that's why I wanted to point you to this great interview with Whedon and zero in on some of the principles that I think would be applicable to software development.
"Next actions" and "Eat dessert first"
Whedon says that when he's working on multiple projects (for example, he shot an indy film "Much Ado About Nothing" while he was filming "The Avengers"!) he likes to break projects down into smaller elements and then work on the elements that you are most motivated or ready to work on each day. "Eat dessert first," were Whedon's exact words. This is not a bad idea for coding too. If you're very motivated to work on a particular element or you just figured out an elegant way to build it, you should work on that element next and you're likely to be more productive.
"Fill the Tanks" and "Step outside your viewing zone"
When Whedon needs to spur his creativity for new ideas, he reads and watches entertainment outside of the categories he's consumed before. Reading new genres of books for example, sparks unique new ideas, like Whedon's "Firefly," which was an unprecedented blend of the Space Opera and Western television genres. In programming, it's imperative that you try new tools and styles of development outside of your comfort zone. Think Lisp is too academic? So what!? Try it! You're bound to gain some useful insights. Another great idea would be to try functional programming if you've already mastered OO and vice versa.
There's a lot more good advice latent in the article, especially about bringing people in your profession together to bring out the best in people, so you should definitely check out the full piece.