|The App Director Arne Evertsson behind the Java compiler (?)|
A film producer is the project manager of a movie production. He makes sure there is a script and financing. He finds the right people for the different creative and practical tasks involved in a movie making project. Also, he supports the director who is responsible for the artistic aspects of the film.
Artistic aspects? Sounds like painting or sculpture. The director carves away on a statue that is supposed to bring about emotions, thoughts and hopefully convey an important message. Script, actors and all sorts of skilled people make up the tools and materials used by the director.
My impression is that the director points and leads, and then stands back to let each person perform her particular skills. The producer is always there, providing a shoulder to cry on (?).
So what does this have to do with application development? Let's look at the contemporary de-facto standard for software development, the project method Scrum.
The developers, the scrum master and the product owner are the protagonists in a Scrum project. We will take a closer look at the product owner. The main task of the product owner is to feed the team with a prioritized list of stuff to do. The developers starts at the top and work their way down the list. The product owner moves, adds, or deletes tasks from the list. Each task is described in terms of business value rather than technical or solution aspects.
The above is a very sound way to go about software development, and it is the foundation on which all Agile methods stand. There are however a bunch of questions that are not answered by Scrum, important questions where development teams often fly blind.
Before the team can get started on a task it needs be sufficiently well-defined: The story must be backlog-ready, i.e. the task must be ready for the todo list. What does that mean? It’s not obvious. This question is also related to another question: When is the interaction design performed? Is the design of the user interface a prerequisite to get started or is it performed at the same time as, or even after, the programming? Also not very clear.
Job ads for software projects will often list roles like business analyst, requirements engineer, and functional architect. You’re supposed to lead workshops, write requirements specs and act like a bridge between business and technology. What? I lost myself there. Where did the product owner go? Is there a project manager around? Is requirements engineering the same as application design? The plot thickens...
George and Steven have the answer to the riddle
|George and Steven. Who's who?|
Let us marry the product owner of Scrum with the director from Hollywood. Let us call the baby The App Director. The first thing he does is to put an equal sign between business benefits and end-user benefits. If nobody goes to see the movie the film studio makes no money. If the end-user doesn’t benefit from using the application, the company will make no money. It’s really that simple: Business benefits = End-user benefits. This fact is often lost somewhere between the powerpoint presentations and project documents.
The director has the vision. The director has the ability to make that vision tangible in the project goal. The vision comes from a deep knowledge of the needs, but even more from the creative skill of being able to visualize the solution. The app director identifies the users' needs. The app director designs the application, thereby becoming the main stakeholder. He is the CID, the Chief Interaction Designer. The app director realizes the end-user benefits.
Hey, wait a minute. Rewind please. You will need a business expert to know the business needs. There’s your app director, right? Yes. But only if said business expert is also an expert at application design. If not, the business export may be provide support for the director, great support. Learning the business rules is a necessary and very interesting activity for the director.
Let’s go back the Bearded Brothers, how would they do this?
George and Steven have long before the start of the shooting worked on a script together with the script writer. There exists a very clear picture of what shall be achieved. No matter whether Steven wrote the script himself or not it will become his script in the creative process. Before shooting begins each scene is pinned to the wall in the of storyboards. Even as the shooting is in progress there are changes being made to the script.
Now re-read the previous paragraph substituting implementation for shooting, application design for script, interaction designer for script writer, story for scene, wireframes for storyboards.
Let’s leave George and Steven alone for a while.
I believe this is the way to do it
Before the team of developers gets going there is a design. It’s not complete, does not contain all the details, but it does provide a good picture of what we right now think is the end goal. There are of course details for the stories at the top of the list. The director works with an interaction team that contains interaction and graphic designers, and they will always stay ahead of the developer team. Before a a story/task is ready for the todo list, the director will get input from one or more developers regarding tech issues and time estimations. In this way the todo list will be fed with doable tasks. As soon as the stories get done by the D-team they fly back to the I-team for usability evaluation; the conclusions of which get fed back into the loop.
Luckily we can avoid the Hollywood movie production monster machine. We are developers and we move with agility. The agile way is the basis for how we work.
I haven’t said a lot about the Application Producer but I think this role is more similar to the role of the Project Manager. Perhaps I would take a few Scrum master tasks and give them to the producer. The producer, together with the director, will be responsible for the delivery of a usable system with real benefits for the end-user.
I have four points to make:
- Focus on end-user benefits and you will create business benefits.
- Interaction design is the most powerful tool of the app director.
- The app director is an expert at designing applications. Domain knowledge and business knowledge are input into the design process.
- Use two teams, the interaction team and the developer team. The I-team always works ahead of, but also after, the U-team.
The application director is the product owner (Scrum) but with a clearer area of responsibility. He has a deep understanding of usability and user value. He transforms user needs into app design and leads the team all the way to the goal.