

I will build your prototype - ibdknox
http://iwbyp.chris-granger.com

======
TheSkeptic
Constructive criticism from someone who has experience as both a buyer and
seller of software development services:

1\. Many clients prefer fixed price engagements, but _savvy_ clients know that
"prototype in 2 weeks for $5,000" isn't as good a proposition as it seems.
What happens when I send you dozens of wireframes for a complex web app that
would realistically take an experienced programmer a month to prototype well?
Answer: I'm going to get what I paid for in real terms, but not what your
offer really "promised" in spirit. Experienced clients tend to avoid one-size-
fits-all offerings for this very reason, so you're left with the inexperienced
clients who may wind up disappointed. These clients are easy prey, but can
also cause real headaches as well.

2\. Your Q&A section isn't very client-oriented. Yes, you're targeting the
HN/"startup entrepreneur" set, which is comprised of people who might not
think anything of answers like "That's not a question and this is also a
prototype", but great service providers exhibit respect and humility. If
you're interested in building prototypes and probably aren't going to want to
go beyond that, "My primary focus is on building fantastic prototypes. Please
inquire about non-prototype projects" would reflect a lot better on your
attitude than "That depends on how interested I am in the project." Your
clients pay _you_ ; you're _not_ doing them any favors.

3\. The idea "it shouldn't matter what language this is written in" sounds
good on paper, but it is actually quite flimsy. Prototype code may be scrapped
relatively quickly, but the idea that a client will build a prototype in two
weeks and not want/need to iterate on it before building a production app is
absolutely naive. You're basically saying that every assumption and use case
that went into producing designs/wireframes will be dead on, and validation
won't require any tweaks. If the client isn't willing to invest in Clojure and
you're (likely) gone after $5,000 and 2 weeks, where does that leave the
client? The better approach: if you're sticking exclusively with Clojure, sell
the benefits of Clojure and leave it at that; don't try to fool the client
into believing that "it shouldn't matter" because your code is supposed to be
written once and then disposed of.

Bottom line: I don't know Chris and he may have great skill and experience,
but this offering seems like little more than an angle for the developer to
drum up $10,000+ monthly while making sure that he really doesn't have to
align his interests with those of his clients. Wham bam thank you ma'am...

~~~
ibdknox
You make some fair, though invalid, assumptions.

1) It's true, I cannot magically produce an entire photo-editing app in two
weeks, but this makes the assumption that I won't be very frank with what I
will deliver. It also makes the assumption that I can't work with people
multiple times. The point here is to define a unit of work. My unit of work in
this endeavor is two weeks at a fixed cost. That doesn't seem unreasonable to
me. I'm not here to prey on clients and if what I offer isn't a good fit for
them, they'll know in our first conversation.

2) This makes two assumptions: that I am doing this to build a client-based
business and that I'm in this primarily for the money. I'm not really trying
to build a client-based business that works for everyone. I've been a part of
such businesses and I really disliked my time there. As such, I don't mind my
frankness being a filter for who I do or do not hear from. Which brings me to
the second assumption; I'm doing this for the fun of working with other people
to bring ideas to life, not to make money. So while my clients pay me, they're
getting a good deal and it really is up to me whether or not I wish to
continue working on their project. That's not me expressing attitude, that's
me being honest right up front. :) Moreover, I believe service is exemplified
in action and while you seem to think otherwise, if I take someone on, I'm
there to help them the best I can.

3) This hits the same point I made before, if the idea changes, there's no
reason I can't work something out with my clients. There's also no reason that
we can't set up another two week iteration.

While I understand your points, they seem tinted by negative experiences and
though it may sound trite, part of why I'm doing this is because of my own
poor experiences in client work.

~~~
TheSkeptic
1\. "My unit of work in this endeavor is two weeks at a fixed cost." Most
clients aren't interested in a "unit of work", particularly for these kinds of
projects; they're interested in _work product_. In other words, to the client,
your value is not in your time but rather what you say you can actually
_produce_ in a particular amount of time. You are _not_ saying "Hire me for my
expertise. I will help you turn your idea into a reality for $10,000/month".
You are saying "I will build a prototype for you in 2 weeks for $5,000."
There's a huge difference.

2\. "Which brings me to the second assumption; I'm doing this for the fun of
working with other people to bring ideas to life, not to make money." I hate
to break it to you, but when you charging money for your services, you _are_
working for money and building a client-based business. You may not _need_ the
money, but your clients don't really care; they expect that when they cut you
a $5,000 check, you're going to be 100% committed to delivering what you
promised them.

3\. "There's no reason I can't work something out with my clients. There's
also no reason that we can't set up another two week iteration." How exactly
do your clients "work something out" with you? Is it based on _you_ loving
their idea? What happens when the complexity of what the client is seeking
increases? Are you going to make yourself available, or are you going to cut
out and take on a $5,000 engagement that you can knock out without breaking a
sweat? Again, your _official_ pitch is wham bam thank you ma'ma.

I'm sure you're a nice guy Chris, and based on your background, I wouldn't be
at all surprised that you're capable of building great things.

But...anybody who has been in this business for any length of time knows all
too well about talented individuals who try to play the role of service
provider but delude themselves into thinking that they don't have to operate
like one. It's sort of like taking a job as a police officer, but trying to
limit what type of calls you'll respond to in such a way that you're no longer
doing the work of a real police officer.

Bottom line: when all is said and done full time contractors who align their
interests with their clients are almost always more productive than "I'm doing
this for fun" freelancers who think their impressive resumes entitle them to
$xx,xxx/month in short-term client engagements.

~~~
Mariel
"Most clients aren't interested in a "unit of work" I disagree. A prototype,
especially for these kinds of projects, is absolutely crucial. To have a
concrete version of their idea before shelling out $10,000/month seems to be
something quite a lot of people would be interested in.

"You may not need the money, but your clients don't really care; they expect
that when they cut you a $5,000 check, you're going to be 100% committed to
delivering what you promised them." This makes the assumption that Chris will
not be 100% committed to delivering what he promised.

"Again, your official pitch is wham bam thank you ma'ma." His official pitch
is that he will build a prototype for someone in 2 weeks time for $5,000.
Nothing about that indicates to me that just because he has set a time limit
on it, he will not have his clients best interests at heart or that he
wouldn't be willing to work with his clients to figure out a next course of
action should the work increase beyond 2 weeks time.

"when all is said and done full time contractors who align their interests
with their clients are almost always more productive than "I'm doing this for
fun" freelancers who think their impressive resumes entitle them to
$xx,xxx/month in short-term client engagements." Entitled is certainly a
strong word to use. If he is as capable as he says he is, I'm not sure why he
shouldn't get paid for a service he is providing for people who need it. I'm
also not sure there's as big a difference between contractors and a "I'm doing
this for fun" freelancers as you make it out to be. Contractors are allowed to
pick what they work on, same as freelancers. :)

------
mdolon
Would you be willing to share any numbers from this experiment sometime in the
future? I'm curious as to how the response rate will be now that it's on the
front page of HN and how the projects ended up working out (was it too much
work? did clients ask you to make final product? etc).

~~~
ibdknox
I would be happy to!

~~~
mtw
do you have a blog? you should post projects and also comments there

------
jackowayed
I worked with Chris on the prototype of Typewire (just 48 hours that time!).
Our mutual friend had told me he was great, but I was still blown away. $5k
for two weeks of his time is a steal.

~~~
StavrosK
By 48 hours you mean six workdays?

~~~
ibdknox
Nope! He means 48 contiguous hours :D It was originally built for the node
knockout competition.

~~~
StavrosK
Oh, I see... Did you guys work for 48 hours straight? I find I get a bit
paranoid at the 36 hour mark, but it gets better after that.

~~~
jackowayed
No, we slept somewhere on the order of 4-5 hours both nights and had short
breaks while awake for food/sanity.

~~~
StavrosK
Ah, I love development sprints. I remember writing and launching the first
(crude) version of historious over the weekend, it was amazing fun...

------
kenjackson
I'd be curious to hear your take on web apps with Clojure vs Ruby vs ASP.NET
MVC, since it sounds like you may actually have good experience with all
three.

~~~
ibdknox
Haha, I guess I am unusually qualified to talk about those different domains.
It's actually kind of funny - when I was interviewing with MSFT I begged and
pleaded to get on the ASP.NET MVC team. I was previously a lead web developer
and wrote a few different PHP frameworks back when rails was just starting to
gain some popularity (and before anything good existed for PHP). So I thought
I was _made_ for that job, but apparently they thought the VS editor was a
better fit ;)

So here's a list of my thoughts on the different communities:

Clojure: up and coming; very piecemeal (working on this here:
<https://github.com/ibdknox/noir>); community very helpful and very responsive
on issues; Clojure itself is beautiful; it's hard to beat DSLs built into the
language, you can actually do everything (HTML, JS, CSS) in one language.

Ruby (Rails): now "grown up"; lots of different modules for virtually
everything you can think of; convention over configuration taken a bit too
far; takes a while to just get started; but somehow maintains a low barrier to
entry.

ASP.NET MVC: hosting remains an issue, though appharbor is working on it;
they've come a long way; roughly equivalent to rails now, except when it somes
to gems; lack of large gem-like community hurts; solid tools;

I think ASP.NET MVC suffers not because of the framework itself, but because
of the mentality of the MSFT community; they wait for MSFT to deliver the
things they want. Compare that to most other language communities (Ruby,
Python, Node.js, Clojure, etc) and you see the polar opposite: everyone is
writing tons of modules/gems/packages to solve all sorts of problems. Going
too extreme on that front can be a problem too. The Node.js community, for
example, suffers a bit from the decision paralysis created by everyone
building modules for the same things.

Ultimately I settled on Clojure because I think it is one of the most
intelligently designed languages I've ever used. While The web-side of things
is still very much in the formative stage, it's actually further along than
most people think. My startup (<http://www.typewire.io>, built by me and
NathanHammond) is now entirely clojure, but we originally started with
node.js. Over time, I became frustrated with the fact that JS code doesn't
scale up to large apps well (it becomes messy no matter how hard you try,
especially with something as callback heavy as node) and it didn't perform
nearly as well as we'd hoped. The result of our transition, however, was a
much smaller, more efficient codebase built on top of DSL's that make
generating content so much easier. Writing your html directly in manipulable
clojure data structures opens up a world of possibilities that I simply didn't
have using standard templating solutions that most other frameworks rely on.
My hope is that I can show some of this to others and am working to solidify
what Clojure webdev can look like with my micro-framework Noir:
<https://github.com/ibdknox/noir>

In the end, there's a lot more for me to say here... it may be better for a
blogpost or a real-life conversation. I'd be up for the latter if you'd like
:)

~~~
pbreit
What's your Python experience? I've recently been introduced to Web2py which
is extremely well-suited for rapid development and prototypes.

~~~
piranha
Web2py is unfortunate joke on Python development. It's not a Python anymore
and it should be avoided at all costs IMO. You can start reading here:
[http://www.reddit.com/r/Python/comments/ex54j/seeking_clarif...](http://www.reddit.com/r/Python/comments/ex54j/seeking_clarification_on_pylonsturbogearspyramid/c1bo1v5)

------
kemiller
$5000 for two weeks of work on contract is pretty damned cheap.

~~~
palish
I recently spent three nights porting a C++ game from Linux to Windows, and
made $181.90 after RentACoder and Paypal fees, and it was the only freelance
work I've managed to find.

I'm just trying to keep my cell phone on, but unfortunately it's very hard to
find anyone who needs the services of a professional C/C++/C#/Python/Ruby
programmer with 4 years of gamedev experience.

I hate to do the "shameless plug", but I'm sort of desperate for work. If
anyone needs anything done (at all!), or knows anyone who does, contact me at
shawnpresser at gmail.

More info: <http://tinyurl.com/shawn-p-skills>

My resume: <http://tinyurl.com/shawn-p-resume> (.doc)

~~~
drewcrawford
Speaking from experience, the trick is to own the sales channel. If you've
managed to end up in a room with lots of other developers, particularly lots
of other unqualified developers (RentACoder), you've already lost before
you've even bid on a single project.

What you've got to do is

A) Think very hard about where your clients are at this very moment,
physically, in the world, and then

B) Go to that place.

Those two steps are more sales than 99% of the developers in the world will
ever do in their entire lives. Nothing wrong with that, as a lot of them have
work. But if you don't, that's how to get it.

~~~
palish
Hey, thanks for the advice. I appreciate it.

I read through several of your blog posts --- very informative!

How'd you get your start? (If I understand correctly, you're a freelance
iPhone developer living in Austin. Awesome! That's the next city on my to-live
list, if I can just scrape together a way to get out of St Louis.)

How much work did it take before you could turn a profit as a freelancer?
(Whatever 'profit' happens to be to you.)

I'm so bored, a couple nights ago I wrote my own Minecraft server in C from
the ground-up. I'm chomping at the bits to work on anyone else's project, but
it's hard to find clients (without doing what you suggested).

------
anthonys
One thing I'd like to see is an example set of wire-frame's/specifications
etc. so I know how much detail I need to give you?

This is pretty appealing to me for two reasons:

1\. Everyone I have spoken to (albeit 'professional' firms) have gone for the
big dollar, final product. As meetings with these kinds of places have
progressed, I realise I probably won't get what I am looking for the first
time, hence a prototype appeals to me.

2\. Every now and then I have gotten a little caught up in what it should be
built in but as time has gone on, i've realised that as a business-side guy,
it's really not my call. If you (as a technical-side person) want to use X AND
are genuinely interested in working on this concept, then we're good to go.
That is what my concern is now- finding someone who will commit for a decent
period of time to the concept we're trying to create.

Maybe in time you'd be able to post some more info on what it is you need to
get going. I am sure you can give guidance etc. via email however it might
save you some time.

------
Tyrant505
I feel this directly correlates to the many discussions of the idea being
worthless and leads to neglect of the real aspect of ideas being continuous.
Given the timeframe, how can the the added ideas, which are equally important
to the original concept minus the original implementation, add the necessary
value/execution?

Additionally, this is a specific tech choice where I would love the chime of
others contributing into this sort of thing, perhaps as a service, where one
can choose equally proficient specialists of any stack(coming from a
design.ui.idea guy learning ror). I know this is just the efforts of one based
on taste/preference which you would choose, so I love the idea.

~~~
lucisferre
His point about the meaning of prototype is very relevant and on the mark. If
the technology stack you choose to prototype matters in any way then it is
highly likely that its not a prototype being built.

I think it is important to have this mindset when prototyping. Too often I see
prototype code make it into production when it should have been thrown away.

~~~
ibdknox
Yes, my goal with using Clojure is 3 fold:

1) Selfish - I really like Clojure

2) I hope more people will see Clojure as a viable language to develop
websites in

3) It's obscure enough that most people won't try and turn this into
production code. I've seen so many big projects that started that way... I
cried when I had to work on any one of them.

~~~
Tyrant505
I really like your p#3. My additional note applies just to me learning ruby
and rails and would hope to take your code further as I progress. I guess what
my concern: 5K is fair of course for your level of expertise, but I would love
to have it for me to build on and learn on. A bit nieve to hope it would make
it into production of course, but additional building and small changes in
ui(I know better), model/db changes, logic, from the stack I've been learning
will aid in me making a better "prototype", and learning! Perhaps after the
initial 2 week job, additional tweeks on hourly or second iteration could be
in order?

------
ryanfitz
I had thought about doing a similar experiment, but being a bit more specific
of only using rails, mongoDB, and backbone.js. I ended up getting too busy
with my regular client work, but Id love to hear about your experience with
this in a month or two.

------
bravura
"[I] have worked on some software you've probably heard of: Puma.com,
NewBalance.com, Microsoft's Visual Studio, and so on."

Do you mean that you use Visual Studio and that you worked on the Puma and
NewBalance sites?

~~~
X-Istence
I read it as him having worked on Visual Studio ...

~~~
ibdknox
Yeah, I was the Program Manager in charge of the C# and VB IDE before I left.
Basically if it's visible and you're using .NET, that was my territory in some
for or fashion. : )

~~~
palish
Then thank you so much for your work on Visual Studio's Designer. That tool is
hands-down the best UI layout tool for desktop apps. The Designer is a joy to
work with, and is head-and-shoulders above what wxWidgets or Qt has to offer.

~~~
ddelphin
I hope we aren't talking about VS 2010. That ide, and in particular the
designer is HORRIBLE to work with.

------
jdvolz
I'm eager to hear about the results of your experiment.

Is anyone else going to do something similar with a different framework or
language?

------
omouse
Wow this sounds like a great idea. I'm curious about Clojure, what exactly
makes it most efficient? Is it due to the Lispy-ness of it? ;)

~~~
Zak
I'm not the OP, but I also use Clojure and feel qualified to comment.

The Lispyness is a big part of it, but Common Lisp and Scheme have that too,
and I still think CL does it better in a couple places. I don't usually go
crazy with macros in my own code (a few here and there, where they're really
needed), but having them in library code is amazingly helpful; the DSLs for
various things are amazingly rich. Have a look at ClojureQL and tell me
there's a nicer way (conceptually - it isn't as feature-complete as it could
be) to integrate your app with a database.

Beyond that, it's that Clojure feels like a very well designed tool for people
to use. Dozens of times, programming in various languages I've thought "this
task would be so much easier if only the language had X", and Clojure more
often than not has the X I'm thinking of.

The community is a big help too. It's full of smart, friendly people. It's
small enough that you can get an answer from someone important (Rich Hickey
once optimized some code for me), but big enough that you _can_ get an answer
reasonably fast. It's thriving and innovative as well, with people trying new
and interesting things all the time.

------
izak30
What happens when you get more demand than you have time for?

~~~
fezzl
Charge more until just enough demand exists.

------
naeem
It's an interesting concept, especially considering his pedigree. I wonder if
it's a developer niche that could take off.

------
joelthelion
A great place to send idea guys who are "just looking for a coder".

------
nickik
Since Questions getting answerd. Whats your Clojure Stack?

------
aneth
Seems like a reasonable deal for a very savvy person, but most people who
would use the service probably need more help with understanding product and
creating wireframes than with development. I can see lots of wannabe
entrepreneurs coming in with poorly thought through wireframes of a few pages,
lacking understanding of the interactions implicit in the wireframes - pop-
ups, hidden pages, data model, authentication, user acquisition, etc. .

In my 5+ years of developing for these types of people, they need far more
than someone who will "build your prototype." Generally they need guidance in
knowing what sorts of decisions need to made, and then in making those
decisions.

I'm all for string to provide a turnkey prototype development service, however
I would fear most ideas and wireframes will be doomed from the start without
push back for a well thought through MVP, which is likely not part of this
service. That could lead to disappointment, over-reaching, and the
unreasonable expectation of multiple iterations.

~~~
jurjenh
Seems like an opportunity for someone else to step in and sell "I will help
you make your prototype for ($5000+$Fee)" where the $Fee covers the initial
fleshing out of the design.

Of course, this in itself is quite a black art, so I'm not quite willing to
step forward for that part myself...

~~~
drewcrawford
The problem is, speaking from my experience as a freelancer, that if these
sorts of people (individuals) haven't made a full spec by the time they've
found you, it means they don't understand the need for one.

~~~
jurjenh
But that's what I mean with the fleshing out of the concept...

It would mean closely working with the client to define their idea and develop
detailed specs, then passing these on once the client is pretty happy with the
specs/wireframes or whatever has been used. I can see rapid sketchboards /
wireframe mock-ups working quite well for developing the specs wit the client,
and then to get a more functional prototype you'd pass this on to Chris. Your
$Fee should cover this time + some profit, as this is a service you'd provide
for both Chris and the client.

~~~
drewcrawford
Of course I agree with you that what you're saying is what you _should_ do.
But will you be able to convince the potential client to pay for that? Not on
your life. Either they already know they need a spec, in which case they're
not searching for a prototyper, or they "know" they don't need one.

I mean, I suppose you could raise your fee to $7k or whatever to cover the
cost to spec it out, and say "prototypes for $7k". But speccing out an
arbitrary project is just so vague and has so many dependencies on the client.
Will they answer your design questions in an hour? In a day? In a month? How
are you going to juggle all the client's delays and that? And by the time
you've thought through all that, you're no longer a turnkey prototype delivery
service, but more of a traditional design/development firm. Nothing wrong with
that of course, just not what the OP had in mind.

------
clistctrl
I have very no experience with clojure, but this posts reads like an
infomercial about it. Do you know if it is possible to develop for android
using it (since it compiles on the JVM)? I ask from the perspective of someone
programming in C# for the last 5 years.

~~~
kolektiv
You can, although it's not particularly optimal right now (library sizes, load
times, etc. are not ideal). I believe it is a priority for some in the Clojure
community to improve this though. But if you're not too worried about the
commercial aspects straight away, it's certainly possible.

------
phlux
Ok, not sure if you'll see this - but here is my feedback as one who
desperately needs your services:

I fully agree with all the comments TheSkeptic has made here.

First, your commitment to a prototype in 2 weeks for 5K == $125 per hour, and
I think that this is a high rate.

You want to make $250K per year doing this on a contract basis where each
contract is 2 weeks.

I take your wording to be more of you trying to sound confident and 'rock-star
developer-ish' - but I cant judge your skills in producing my prototype based
on this language.

How is this better than me getting another developer off-shore for less?

So, here is what i would rather employ you to do: Help criticize my wireframes
and spec document such that I can go to a lower cost developer with a much
more clear product spec and requirements and ensure that Ill get what I seek.

I'd be willing to pay you, say $200 to give me an hours review of my
wireframes and spec and tell me what you think a realistic timeframe and work-
effort is for that prototype.

If you say "Yeah this is really clear, and I can do this for $5,000" -- then I
can choose to go with you, or not.

Again - $125/hour for quick pump out prototype is still an uncomfortable
amount coming out of pocket.

~~~
geebee
I'm not seeing how you got to $125/hr... does he write somewhere that he'll
only work 4 hours a day on the project?

I'm getting two weeks, 5 days a week, at an 8 hour workday = 80 hours.
$5000/80hr = $62.50/hr, which from what I've heard is on the low side for
contract programming (I haven't actually done any contract work, but this
doesn't come out to much more than sr devs get with full benefits in a
salaried job out here in the bay area).

I'm not saying it's a bad deal for him. This sounds like it could be fun if he
can make it work - he's very upfront about it - two weeks, fixed rate, clojure
only. I'd probably take a lower rate if I could consistently get fun, no-
hassle work in my favorite language.

~~~
mattmiller
He has a full time job at Microsoft. You would be lucky to get 4 hours a day
out of him.

~~~
ibdknox
I don't, actually. I left 6 months ago. :)

------
iphoneedbot
I think part of the knee-jerk reaction here is that 2 weeks is a short amount
of time relying on external forces specifically from the client - that they
can work as efficiently as you.

I do recommend that you outline hours... for example: $5000 is equal to 100
hours or less claimed with in one calendar month.

Clearly defines your scope of billing and prevents both parties from *dragging
this thing on&on

------
Hisoka
Most people have the mentality the ENTIRE product should be built with $5000,
let alone a prototype. Of course, this probably doesn't matter to you since
you'll get 2-3 ppl who understand the economics and time involved, and you
won't get overworked.

------
delinquentme
No LOLCODE?

no deal!

~~~
ibdknox
srsly.

