http://firstround.com/article/lessons-from-pixar-why-software-developers-should-be-story-tellers

When most people think of Pixar they think of movies like Finding Nemo and Toy Story. But the studio has also been producing world-class film-making software for almost three decades to help bring those stories to life on the big screen. I was fortunate to work as an engineering lead on the software team at Pixar. During my time there, we utilized techniques that are commonly used in film-making to help build the studio's new software pipeline, now called Presto. This is what I learned.


“Talk to users in their own language. Use concepts and processes that your users are familiar with in order to communicate software designs as naturally as possible.”

Film Concepts in Software

It's often said at Pixar that “story is king” and that this is the primary reason for the company's success. Appropriately then, all films at Pixar begin with the Story Department, where the initial script is developed and expressed on storyboards to refine the look and feel of the film. (Storyboards are physical boards of wood with a grid of 4" x 6" hand-drawn index cards pinned to them.) This story is pitched to the executive team before being green lit and entering production.

In many ways, designing a great software product is like creating a great story. It’s not surprising that modern agile processes refer to “user stories” as a way to capture requirements from the perspective of the user. So very early on we took this concept to the next level and created a story department in our software group. This department was responsible for designing the user workflows of our new software and communicating these to our production users on standard storyboards. These boards were presented to artists (our customers) in the format of a story pitch, allowing them to interact with us in a familiar style and meeting structure. We also had a “story room” that contained all of these storyboards up on the walls, encompassing the design for the entire system in one space.

 
 

Of course, this approach will not be appropriate for all other software projects, but the key lesson is to talk to your users, and use the techniques and language they understand best. Similarly, while it's obvious that you must listen to your users when writing software for them, we took this one step further by actually embedding some of our users in our software group.

Artists rotate off and on films at
different times, so we would try to find ones who were between films and
who were interested in affecting the direction of the studio's
software. These artists would help us refine the workflows and user
interfaces for the new software based upon their experiences with the
existing software. For example, our initial focus was to support the
articulation pipeline, so we had a senior articulator join our group
early on. He would use our software on a daily basis to try and
articulate models of Buzz and Woody, he would be in design meetings to
provide input on features and point out things we were missing.  He
would also help us brainstorm new ways for articulators to work more
efficiently.

Having this level of input from an expert user gave
us the confidence that we were building something that would solve the
problems that our customers were actually having on a daily basis. The
other benefit is that these embedded artists could then become
evangelists for the product amongst their peers.

Communicating Progress

 

“Demonstrate your software internally. Some of the best notes can come from people you least expect.”

Once a
film is in production, individual departments assemble the digital
assets of the film, including modeling, articulation, layout, set
dressing, animation, simulation, lighting, shading, special effects and
final rendering. A system of daily and weekly reviews (known as
“dailies” and “weeklies”) is used to refine all production work. These
reviews take place in a screening room with your peers, often with the
director present. Throughout this process, the story is continually
refined and the latest film “reels” are presented to the entire company
one or two times a year, at which point all employees are encouraged to
submit notes for improvement. That is one of the amazing things about
Pixar: Even the cafeteria staff or janitors can offer feedback on the
story and characters of a film.

We therefore decided to create
reels for our software designs. These were digital movies composed of
simple hand-drawn imagery that were narrated and animated to show how
users would interact with the new system. Each workflow would star a
specific artist in the studio and show how his or her daily routine
would be changed by the new way of working. These reels were refined and
presented every six months to the entire studio in our main theater.
This was a way to increase exposure for our plans and also to solicit
feedback from anyone who might not otherwise be tracking what we were
doing.

Internally, we also adopted the concept of engineering
weeklies. This was a meeting where the entire software group gathered in
a screen room once a week and individuals could present their latest
work in progress. The demos could be rough and informal because they
were for the rest of the software team, not our users. This meeting let
everyone on the team show off what they were working on and helped to
raise a greater sense of involvement. It also provided a fun way to keep
everyone up to date on the latest state of the project.

 

Director/Producer Model

 

“Balance technical and creative visions. The best products come from
listening to both sides of your brain. Find a good balance between
technical complexity and artful design.”

Developing
a film-based software process illuminated a fundamental difference in
the way films are made and the way software is developed. In the film
business, you have a director who is concerned with the creative
direction of the movie and a producer who is concerned with budget,
schedules, and staffing. These two people are peers with a natural
tension between their roles.

This classic tension played out when I was working on The Incredibles
where, during a discussion about spending more resources to achieve a
better visual effect, the producer, John Walker, told the director, Brad
Bird, that he was just trying to make sure they could cross the finish
line.  To which Brad Bird responded that he was trying to make sure they
crossed the line in first place.

 

By
contrast, in the world of software there is normally a single person who
is responsible for assembling the final product, often called the
product manager or product owner. There are also engineers and designers
who are responsible for the art and interaction design for the product,
but they very seldom have an equally powerful voice to the product
manager.

While I was at Pixar, we experimented with a
director/producer model to manage our new software effort. We did this
in an attempt to better balance the conflicting constraints of building
something great and building something functional and on time. Our
producer came from the world of software and was responsible for things
like defining the deployment platform, programming language, development
processes and project schedules. Whereas our director came from the
world of film-making and was concerned with things like specific
animation features, user workflows, the look and feel of the product,
etc.

Both perspectives are important and often overlap. For example, we
had a lot of discussion early on about deploying on Macs versus Linux.
This decision affected technical aspects like the programming language
and UI toolkit we could use, but it also affected creative aspects like
the user interface and interaction design that we could present to our
customers.

Having two equally-weighted voices controlling the
direction of a product can certainly make for a difficult process at
times, but finding the right balance between art and technology is
critical to building amazing products. This of course was also Steve
Jobs' philosophy at Apple, that the best ideas are formed at the
intersection of computer science and art/design. The importance of this
natural tension between art and technology is also what John Lasseter
was referring to when he famously stated that art challenges technology,
and technology inspires art.

[zz]Lessons from Pixar: Why Software Developers Should Be Storytellers的更多相关文章

  1. Career Planning:Developers Best Practices Tutorial

    This small tutorial is based on my past 16+ years of experience in software development industry. I ...

  2. 《Design by Contract for Embedded Software》 翻译

    原文: Design by Contract for Embedded Software (state-machine.com) Design by Contract is the single mo ...

  3. FBX Software Development Kit

    FBX Software Development Kit The FBX Software Development Kit (FBX SDK) allows software developers t ...

  4. A Realistic Evaluation of Memory Hardware Errors and Software System Susceptibility

    http://www.cs.rochester.edu/~kshen/papers/usenix2010-li.pdf Abstract Memory hardware reliability is ...

  5. software glue Middleware

    https://en.wikipedia.org/wiki/Middleware https://zh.wikipedia.org/wiki/中间件 Middleware is computer so ...

  6. Agile software architecture design document style..( sketches and no UMLs)

    http://www.infoq.com/articles/agile-software-architecture-sketches-NoUML If you're working in an agi ...

  7. Which SQL statement is the trump card to the senior software developer

    Which SQL statement is the trump card to the senior software developer                    MA Genfeng ...

  8. 学习笔记之Machine Learning Crash Course | Google Developers

    Machine Learning Crash Course  |  Google Developers https://developers.google.com/machine-learning/c ...

  9. Software development skills for data scientists

    Software development skills for data scientists Data scientists often come from diverse backgrounds ...

随机推荐

  1. 【汇编】mov [1000],bx:immediate operand not allowed

    ],bx;在目的操作数中编译器会忽略[],所以[1000]就成了立即数,出现“immediate operand not allowed”改: ;mov bx,[1000];而在源操作数中,就不会出现 ...

  2. 0525Scrum项目7.0

    一.Spring1回顾: 在这第一个冲刺中,我们主要是完成了主界面的建立,过程虽然有些曲折,大家有时候找的素材.图片都有一些冲突,但是最后我们还是求同存异,努力地做好界面! 在这一个冲刺中,我们虽然算 ...

  3. java_easyui体系之目录 [转]

    摘要:简单介绍form的提交方式.与validatebox的结合使用. 一:form简介 Easyui中的form有两种提交方式.结合自己新添加的一种ajax提交方式.本文简单说明form的三种提交方 ...

  4. iOS开发网络篇—网络编程基础

    iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过 ...

  5. SVN - 忽略已经提交的文件

    1.在本地删除要忽略的文件 2.与资源库同步,提交删除的文件 3.忽略文件

  6. IDE启动报错

    启动IDE的时候报出org.eclipse.swt.SWTException: Invalid thread access解决方法:退出再次启动IDE的时候加上-clean选项,如图中所示,前面是我的 ...

  7. 当powershell遇上mysql引发的血案

    ------------------[故事来由]------------------ 起因:群友问:把cmd.exe /c a:\mysql5.6\bin\mysql.exe -uroot < ...

  8. 利用GCC编译器生成动态链接库和静态链接库

    转载请标明:http://www.cnblogs.com/winifred-tang94/ 1.编译过程 gcc –fPIC –c xxx.c 其中-fPIC是通知gcc编译器产生位置独立的目标代码. ...

  9. STL 库中的陷阱----一个难以察觉的 bug

    请找出下面程序的 bug? int maxProfit2(vector<int> &prices) { int local[3] = {0}; int global[3] = {0 ...

  10. USACO 08-Nov( 最小生成树)

    美国人出题拐弯抹角,倒是挺尊重动物的 10206301 2 52 3 52 4 123 4 172 5 153 5 64 5 12 Hint从牧场4起床, 然后按照 4, 5, 4, 2, 3, 2, ...