1. Draw some ideas out on paper, and work out the minimal viable feature set.
I try and convince all clients to do this, that way we can get something out
the door ASAP, and then take a breather before adding the remaining features.
It also gives them more time to think their ideas through; the amount of
features a client has decided against a few weeks later is pretty
unbelievable. Before I started following the MVP way with clients, I very,
very rarely got any requests for features to be *removed*. As a developer,
it's just as much my job to keep the client's applications lean and
bloat-free, as it is to actually write the code, I think.
2. Use Balsamiq mockups to neatly replicate what I've drawn and make
adjustments (this step could be skippable, but it only takes 10 minutes
generally, so it's nice to have. I would get Draft for iPad or something,
but I find it a little *too rough*, especially when working with clients.)
3. Create the design in Photoshop, rarely pixel perfect, I just use it as a
supped-up Balsamiq, to get a feel for the design.
4. Create a Rails or Sinatra base, depending on the complexity of the project.
For a Rails project, I git clone http://github.com/ashleyw/Slate
5. Write some Cucumber features, referring to any notes or drawings I made in
step #1
6. Design the model structure, write some unit tests for them, and then
implement each model until the tests pass
7. Once I have a model basis, I move on to the controllers and views (HAML),
going by the Cucumber features I wrote until they pass. Semantic markup is
important here, but styling is not.
8. Replicate the Photoshop design in CSS (or SASS)
9. Launch
10. Reiterate adding features which didn't fit into the initial version
I don't know how you define "HN" quality, but at the time of writing, the submission has 35 points. The post provides a great overview of how the author consistently succeeds at freelancing jobs that I found insightful.
I wrote the post because a friend of mine who is just starting to freelance wanted to know how I work. It's meant to be targeted at beginners and I agree, most people who have freelanced before should know most (if not all) of it. I do think they are still decent reminders, or at least I hope they are.
Anyways, I didn't expect it to hit the front page really but I guess some people are finding it somewhat useful/interesting.