Tuesday, December 21, 2010

Turning pictures and ideas into code

Now, we needed Johnny to stitch the idea in the wireframes together with the graphics to make the app.

In a big organization where there is an IT group and a client team—all working on this as their primary job—the process goes something like this: The developer(s) from your IT department ask a lot of questions via email or meetings until they understand what you need—both in the wireframes process and during the actual development or coding. You, the client, need to be available whenever the developer is working so that waiting for client feedback doesn’t leave the developer twiddling her thumbs at the often more than $100/hr rate. The developer shows you mockups and you give feedback. The developer revises the mockups and you give more feedback. IT develops the first “build” (build=working version of at least part of the application) and you test and QA for proper wording and user-interface (ui) issues. You might bring in users to test or give feedback on the ui. Then you probably repeat this several times. It is an iterative process. All of this back and forth is important so that the developers can get feedback before they go ahead and build your entire app based solely on your original wireframes plus whatever they imagine themselves. The process can be short or it can be long and involved. Either way, the developer really does need to stay current on your evolving ideas and input and you need to stay current on where they are in the process and what they need to keep moving things forward.

With us—two people doing this on the side of our primary jobs and our families, this back-and-forth flow never flowed. Johnny (luckily for less than $100/hr) would find time to work on the app and then email me with a question that I couldn’t make time to answer for several days. Then, when I did get back to him, he would be busy and couldn’t work on the app again for a week or two and this same pattern would repeat. Sometimes weeks turned to months. Here’s a sort of timeline of our working relationship (condensed and approximated):

Week 1:
Johnny: Can we wait a week to start, we are moving into a new house and…

Week 2:
Johnny: Here is a mockup of the photo capture screen.

Week 3:
Me: Sorry it took me all week to get back to you, but here are my comments about the photo capture.

Week 4:
Johnny: My partner is going to be away for a few weeks and I have to
take care of the kids, I’ll try to work on this at night after the kids are asleep.

Week 5:
Me: Hello? Are you there?
Johnny: Work got busy, be back to this soon. 

Week 6:
Me: We leave for a driving vacation to see family tomorrow without a
computer.
Johnny: I’ll have something for you when you get back.

Weeks 7-9:
Johnny: Let’s meet so I can show you the screen capture on my iphone. 
Me: Is Xpm good? I have to bring my 3 yr old.
Johnny: Yes, maybe, no, sorry, got busy at work.

Week 10:
Johnny: I am going to work on this non-stop this next two weeks.
Me: Great, but I will be away for a week without computer so call if you need me (but I forget to turn on my phone for most of the week).
Johnny: Oh no, my son spilled coffee on my home computer. I'll get back to this soon.

Week 11:
Johnny: Here are some more screen shots.
Me: Continue to pay for work done.

Week 12:
Johnny: Getting hung up on ball-throwing. I know a physics guy who can help.

Week 13:
Physics guy: Delivers his code.
Johnny: Home with sick kid.
Me: Home with sick kid.

You get the idea. Johnny and I both worked hard and juggled this into the mix of our lives as we could. After 3 months, we had spent about half the estimated development cost. After 6 months, we had spent all of the estimated cost—right up to the upper limit of the range—and the final draft was not yet finished. Johnny, an upstanding guy, worked for free at this point. 

Some of the animation was particularly challenging since—despite being an animation expert in other media and also having worked on a few iPhone apps—he had never animated within this environment. This was draining his time and was not only delaying the project, but was demoralizing for Johnny. I was now spending my “app” time working on a way to salvage the project. Whatever plans Lyle and I had mapped out were quickly changing due to time and financial limitations.

So, even though I had questions and corrections and changes and comments, we just didn’t get to most of them. In the end, Johnny delivered a version 1 app that was, essentially, what we had discussed. But, there was no music, no sound, no Facebook or Twitter linkage and it was pretty clunky and a little buggy.

Version 1 came one full year after my first meeting with Johnny. That was about ten months more development time than we had anticipated (our original estimate was for 1 month and I had secretly bet on 2-3 months). Lyle and I quickly began planning for a way to turn the “version 1” app from a prototype into something that was more than a prototype, but not yet our “dream” version.

At our last meeting, Johnny said he wouldn’t be offended if we found someone else to develop the app and he even seemed relieved when I told him that we might.

Now, Lyle and I had something that wasn’t a functional app that we could submit, we had spent our development budget, and we had to decide whether we should, in fact, hire a new developer. We never had any luck before with finding other developers so why would we now? And, how much more were we willing to spend to advance the quality and fun of the app versus how little could we get away with adding before we just submit it to find out if Apple will even accept it?

We had to decide whether it was time to keep going or kill the project.

No comments:

Post a Comment