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...
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.
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.
"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. :)
> As such, I don't mind my frankness being a filter for who I do or do not hear from.
Even if you're are trying to filter out a certain group of people, it doesn't call for being borderline rude and arrogant. From what I've gathered through your other comments, you are neither of these. Therefore there is no reason for you to give people the wrong impression.
I'll give it a quick update.
An experienced programmer working with slow tools will work slowly. That's why languages like Clojure were invented - Rich Hickey is an experienced C++, Java dev.
> Your clients pay you; you're not doing them any favors.
Clients pick you because you bring something to the table they can't get anywhere else. If you're as good as you say you are, you are doing the client a favor.
> 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?
With their money's worth of a prototype that demonstrates whether the idea is or isn't total shit.
You don't see the value proposition. Somebody else will. If Chris is as talented as he says he is, your loss.
Perhaps, but I do think it's commendable that he picks the language he feels he is best with and sticks with it.
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 :)
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)
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.
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).
I have no doubt about your skills, but your skills seems to be very specialised. I don't know what your life goals are or what sort of work you're looking for but from your plea I understand that the type of work you're looking for doesn't present itself easily (otherwise why the shameless plug :).
I know it's uncool but a guy with your knowledge and experience can make a very good living working for digital advertising agencies. These companies are very Flash Platform and iPhone/mobile oriented. So adding these skills to your CV could easily land you a well paying job.
To get an idea of the sort of work you can expect working for a digital-ad agency have a browse through FWA: http://thefwa.com
All the best!
I get my gigs usually through word of mouth and djangogigs (I do django at the moment). If you know python I suggest you take a look at django for web development. I have to say I compete by getting a very low, low rate, which I can afford since I'm living in a third world country (Philippines) at $15/hour. Translate that to local currency, enough spare time, working from home and learning more about python web development I could say it's pretty working good for me thus far.
BTW if you're interested for django work I can recommend you to some body, just haggle your price to him directly. Shoot me an email -> phektus at gmail dot com.
The $5000/two week deal of Mr.Granger sounds hardcore, and he does sound hardcore being able to stuff it out in Clojure.
Also you might try breaking into the mobile game development world (iPhone, Android). Mobile app development is pretty fertile ground still and you can use your current skills to develop you own products and sell them easily. Even if the games you develop do not gain great success on their own they at least make great portfolio pieces and could help you get noticed and find better work in the future. Just a thought.
Friend of mine has acquired about 30+ Android phones using this technique (some duplicates in an attempt to Frankenstein fully functional ones).
Worst case you get a no, best case you get a cheap Android phone for development. Droid X's are great (and compare well to the HTC Evo).
Also, my hope is that the work will actually be quite fun :D
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.
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.
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.
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.
The intent is for this prototype to generate the exact "added ideas" you suggest. Two weeks doesn't seem long enough that the whole world is likely to change out from under you... especially if you have nothing to show people.
Do you mean that you use Visual Studio and that you worked on the Puma and NewBalance sites?
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.
Is anyone else going to do something similar with a different framework or language?
I would schedule projects out if it became necessary.
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.
Of course, this in itself is quite a black art, so I'm not quite willing to step forward for that part myself...
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.
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.
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.
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.
If you cant commit for 80 hours, thus 62.5 per hour, then how may I trust that I get '2 weeks' of work-effort/unit on my prototype?
Point taken, that is a reasonable amount. :)
Still - I'd like to get a feasibility study done as I mentioned.
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