Friday, September 17, 2010

Workflow

We are starting two open source projects now. One of our main goals is check how our workflow works in practice. We have some experience in game dev industry and we want to move some conclusions to web dev. The most important thing are: user experience is king and preproduction is queen. We think code is the last thing you should do. Make sure client know what he wants, you know what he wants,  it works and user will enjoy it.

  1. Idea - the start point. You have an another great idea for successful startup. You can't waste any minute. You have to start coding (or find someone else to do that) as soon as possible to conquer the internet and make you rich. Wrong way! Now you should make sure your idea is really work worthing. After that you should start preproduction. It helps you crystallize what your really want and safe a lot of your money and developers work.
  2. Project overview - the most important part of preproduction process. Short document that informs all concerned people what the project is about. It should be rather short and describe only basic features. Many greate ideas will born in your head what else your app should do but you should drop it and concentrate on the core. It shouldn't be updated during next steps for two reasones: all MUST HAVE features all already described here and noone will read it during production. 
  3. Paper mockups - get piece of paper and draw mockups how which pages should looks like, what they should contain. Don't think about details - next step is for that. Why we start with user interface? Well, the answer is quite trivial - apps are for users so the main goal for us is make user happy when he is using our application. If you start with features implementation you can someday wake up with thousands line of code that do amazing things but there will be no way to create user friendly interface for that. Think about it!
  4. Mockups - use some design tool and create digital mockups for all views in your application. Remember about two variants of each action at least: when there is content to display and when where is not / when action is finished with success and when is not.
  5. HTML - now you should create simple static application to test how your interface works and looks like. Use html, css and javascript and feel free to by inspired by the best guys in industry (visit http://dribbble.com/ or similar websites). Focus on the most important parts of UI. When your help people to find restaurant focus on search process and restaurant overview. Things like which font we should us in footer can wait.
  6. Implementation (tests first) - now you can write some code. Take ticket, create own branch in repo for it and start thinking about you really know what they want you to do. If not  - ask. If you have your own idea how it can be done better - discuss. And now you can write some cucumber scenarios and start coding. When it's done and all cucumber scenarios and rspecs are green then show someone your code to revision. After that you can merge your branch with master and deploy. Enjoy!

Feel free to leave your feedback. We are exciting your experience.

No comments:

Post a Comment