Nicolas Alpi, Web developer

A blog about productivity, startups and me.

How Do You Like to Work ?

(image credit)

Last week end I’ve wasted my time during 2 days because I’ve changed my work habits.

2 Weeks ago, I’ve started working in my spare time on a new web application project. But because my time was limited, I haven’t respected the way I usually work and I’ve started directly on my ‘./rails MyKillerApp’ … And last week end I’ve payed the price for that :(.

Because I haven’t respected my working habits, it was a complete anarchy on my source code, I’ve got a lot of migrations, and 3 pages that are started but not finished because I wanted to think more about it … :P

The real fact is, I don’t have my written notes, and I haven’t thought before starting to write my code. I had a global idea of what I wanted, but it was too global.

A Long time ago I tried a lot of stuff like Kivio or some note and schema applications … and each time, I went back to my blank paper and my pen.

  1. The Idea

    When I have an idea fixed in my head, I take a paper, and I write down, in few lines what I want the application to do.

  2. The Storyboard

    This is, for me, the most exciting part of the preparation.
    For my future application, I try to write some scenario of it. What the user will do, what will I need to do, what my database will look like …
    For me, this is always the same scheme :

    • 1 Page = 1 action
    • On the top, in the middle, the action name
    • Under, a few lines of the action description
    • Then, I try to draw the application windows
    • Then under, on the left in two rows : Function needed, table scheme needed.

    At the end I have some notes with the most important part of the future application. I take a paper sheet, and everything goes inside, with the name of the application in capital letters.
    At this stage, if needed, I open a basecamp account, just to share a todo list with people who need to be involved.

  3. Source Code

    When I have everything on the paper, the first thing I do, is to open an SVN account on my server and create the application structure (rails MyKillerApp)
    Then I start to code, trying to respect my scenario order.
    Each time I’ve finished a part of the storyboard, I just tick the action title.
    If I need more functions, or more data tables, I try to write them down before.

Even in my day job, I use the same structure. And I try to keep on my desk just the paper I need (…). When I don’t have to share these information with team-mates, it just stays here as a prototype, and if I need to share them, I just write a more formal document.

Sometimes, when the page interaction is too complex, I try to write down (…) every step, with all the real function names and arguments, and some rows for the interaction of the 2 of them.

For my current project, I didn’t do that. Result, I started to work on 2 or 3 pages at the same time, and I’m now blocked for the evolution.
So, I’ll take some time, and do my paper work, and correct everything needed, but I’m sure that will take more time than if I had taken the time before starting coding.

And you, how do you work or what are your working habits?

Nb : Only few peoples will understand the top photo, but if you follow this blog, you will ;)