A few years ago I thought of a way to help people that followed the old ‘teach someone to fish and you’ll feed them for a lifetime’ concept. I wanted to create a system to help people trade knowledge with one another by letting them:
- Enter in what they know and what they want to learn
- Search for friends who have the skills they want
- Ask those friends to trade with them
A pretty simple concept right? (The initial idea didn’t start out quite so simple, but that is a story for another post). And yet it was an extremely long and crazy ride just getting it created and launched. Here’s how that journey breaks down.
Phase 1: Figure out how to build this thing – especially since I had no clue about building anything beyond extremely basic static websites.
Luckily I had a friend who I would occasionally see reading programming books and talking about the side work he did building websites in PHP. Talking to him about my idea was a big step since I only shared concepts for inventions and websites with family at the time. Oddly enough, most people out there don’t think your idea is the next billion dollar concept and they aren’t all waiting to steal it (but enough about my previous paranoid thoughts). He had a packed schedule running his own side business, going to school full time, working as a lifeguard and studying up on new technologies to help him with the side business, so it was undoubtedly tough for him to set aside time to teach me to build a website/application. I offered to do car work for him in exchange for him teaching me how to set up and build a site.
Fast forward a few months and I had a rough working prototype of the site built in PHP, and a much better idea of why custom software and websites are so expensive. The prototype was where the idea stayed for a few months until I jumped into phase 2.
Phase 2: Find and hire some freelancers
I decided programming was something I could get into, but I knew I wasn’t going to be able to finish the application in a reasonable timeframe if it was just me working on it. Logically, I asked the friend I traded with to see if he would finish the project for me (paid of course) and he let me know that he didn’t do work for friends. Honest, but tough to deal with, partly because I knew he did good work and partly because I had no idea where to find someone else who would be as good. I started asking around and a coworker referred me to a couple of guys who did development work on the side.
I called them up, met with them, their rate was in a range I could afford, but they told me they would have to build the thing from scratch, still in PHP, but using a framework to speed things up (Cake PHP). It was a bit flustering since I knew all of the code I’d written worked, but even with the full rewrite, their rate was affordable, so I signed their contract, paid their deposit, and they started working on it (or so I thought). Three months and no correspondence later I decided to email them to see how things were going, and after a few emails, they finally decided to let me know they had not even started on my site. They went on to say they could refund my deposit or, if I was willing to give them another shot, they would start working on the app.
Being a patient person, I decided to give them another shot (big mistake). A few months later, the site was being worked on, but at a ridiculously slow rate. They were doing development on the side (they were not relying on the income from clients to survive) so my project took a back seat to their day jobs. After a few months of feeling like my idea was getting stepped on, I finally had their ‘finished product’. At this point I’d lost almost an entire year and spent a few grand to only get a few more pieces of functionality added to the site.
- Lessons Learned:
- Don’t hire someone who only does something ‘on the side’ unless the person recommending them has used their services and gives an amazing review
- Include a timeframe in the contract
- Ask about their communication policy and hold them to it
Phase 3: Find a full time developer
At this point, I was done working with part-time developers, but I was back in the find a developer phase to put the finishing touches on the app. I was doing some of the styling to get the thing looking presentable, and I started asking around again to see if I could find someone who could add onto the app using Cake, the PHP framework that it was now shoddily built (read held together by tape and staples) in. This time, the recommendation led me to a guy who built websites for a living, but also did work on the side.
I met with him and asked if he would be fine with adding on to the current app (rather than requiring another rewrite) and he said that would be fine. I was eager to get started, and based on his rate, I anticipated he would get the job done in no-time.
After a few months with little to no information from him, I asked how the upgrades were going, and according to him things were running fine and he was ready for payment. So I paid, foolishly, without any proof of work being completed and even asked for some other upgrades. (A Quick Aside – You would think someone would learn after the first time they were burned, but never having experienced working with my friend from phase 1 as a client I figured developers were just not the type of people who stayed in touch with customers on a regular basis and that you paid as they built and you got the software or website when they were done. The friend from phase 1 and the developers I reference later were great at keeping clients in the loop.)
A few more months passed and eventually the software was done (or so I was told) so I paid the final check and asked when I’d get the software. I was told it would be the next week, and when that came and went, I was told the next week, and then he went out of town… and then I got upset. So after dealing with the run-around multiple times and being told more than a few half-truths, I ended up with a piece of software that had been added to, but none of it worked according to my detailed requests/mock-ups, in fact none of it worked at all. Long story of additional run-around shortened, the second check was returned to me and I had to find another developer.
- Lessons Learned:
- Expect frequent updates from someone you are paying to do a service
- Have a contract, even when working with people you consider friends
- Don’t keep paying if you are not seeing any results
Phase 4: Find a Full Time Shop
So part-timers were out and so were full-timers doing work on the side. Where to next? Full-timers, during business hours of course. Based on my experiences in phases 2 and 3, (almost a 3 year span and thousands of dollars) I was having more than second thoughts about my side project. I decided to give it 1 more run; onward to a professional shop that had a guy who was really good at Cake PHP and client communication. The app was adjusted to a functioning state, the code was judged to be horrible at best, and I was posed a very serious (and honest) question – attempt to make additions to a site that would perform horribly when enough users arrived (not a fault of the programming language or the framework, just the implementation) or scrap it and start fresh.
Talk about a hit, abandon the code I’d paid hard earned money for and that I’d lost years getting developed, or keep a codebase that would perform horribly.
- Lessons Learned:
- Keep pushing forward if you believe enough in your ideas
- Good developers will be honest with you, even though it may not be directly in line with them making more money from you
Phase 5: Ruby on Rails…
Somewhere in between phases 2 and 3, I had a friend building web applications in a language called Ruby on a framework called Rails who showed me a bit of the basics of how it worked. It was cool, but I didn’t think I had time to learn since I was in the middle of working full time and trying to get my site up and running on the side. Fast forward back to the question posed at the end of phase 4.
So I scrapped the codebase and decided to learn how to program again. I bought a laptop, bought a book, and with some guidance from my friend who was doing Ruby on Rails (and is a champ when it comes to site design and user interface design) started learning to code in another language. The progression was not anywhere near as fast as I wanted it to be so along came another difficult question: Keep my stable job working with fun people doing search engine optimization and online marketing or try for an internship at a development shop…
- Lessons Learned:
- Sometimes you make faster progress scrapping a project in its current state than you ever would trying to patch it
- Life is full of difficult decisions, make ‘em
Phase 6: Ye Olde Rails Shoppe
After emailing a guy at a local rails shop, I went in for an interview and was told a week or so later that I could start working there if I was still up for the job. Long story short, I quit my secure job, started learning to program and over the course of a few months, built an application to make it easy to trade skills.
So the part that I thought would be most difficult is over right…
- Lessons Learned:
- Keep your goal in sight and make it happen
- Sometimes you have to get out of your comfort zone to achieve your goals
Present Day – as of this post anyway
And with a little skipping ahead, that brings us to the current part of the narrative. The part where I tell you the site is ridiculously successful and I just had to finish it and set it live for it to load up with members and become a thriving community… or, not. People don’t start flocking to your site just because you put it on the internet, make membership free and are doing something you think will be extremely helpful to everyone out there. It’s a struggle just to get people to try it out. One that I will chronicle more of here as my journey progresses.
Until then, if you didn’t catch the link above, check out the app and let me know what you think: MyFriendKnows.com
July 25th, 2009 at 9:49 PM
[...] about. The most you should expect to lose is whatever time and money you put into your project. Every time time or money is lost on a project, it should be a learning experience. The mistakes you make as [...]
July 28th, 2009 at 7:06 AM
Hey, you are incredibily smart for your age. You have learned alot of lifes hard lessons and are quite articulate about it. May be you should consider teaching a seminar about this for big bucks or being a motivational speaker in addition to your full time job and side job.
Good luck, I enjoyed the article
July 28th, 2009 at 3:16 PM
Hi Carol,
Thank you for stopping in and for the kind words. I may give public speaking a try in the not-so-distant future.
August 7th, 2009 at 3:23 PM
[...] following is based on my work style and the standards I hold myself to after experiencing the pains clients can go through, and becoming a full-time freelance ruby on rails developer. My typical situation with clients [...]
August 21st, 2009 at 2:49 PM
Hello – any words of advice to someone who needs a web application built, but does not know coding or designing???? How do I know what I'm getting into financially? What should I prepare for the developers/designers? How can I prepare screenshots without learning web design? Just because our current spreadsheets look one way, that doesn't mean the info should look the same in this new medium. It's easy to find a shop that can build a website, but how do I find a shop that can build a web application that's an intranet?
October 19th, 2009 at 2:33 AM
Your story really reminds me of what I am kind of going through. But I am maybe in the second phase of your story.
I have an idea which I think could be successful but cannot find anybody who could program it for me. Could you give me any hints or links or anything I could use? Based on your story I should probably go straight for a full time shop, preferably in Los Angeles, CA area.
Anyway, I think your idea is good, however, hard to market. But I think it has a lot of potential.
Thanks.
October 19th, 2009 at 5:40 AM
Hi Martin,
Thanks for dropping by and commenting. There should be a ton of talented developers in CA. If you don't know of anyone who has worked with a freelancer or shop they recommend, I would not walk into just any shop and have them start building. Take your time to find a freelancer or shop you think will be a good fit. Apps and the people you have build them deserve the same amount of research as other large purchases. As part of your research, when you find someone, have an open conversation with them about their work style. Also, make sure they have a couple of projects under their belt that they can refer you to, so you can see if they are capable of building your app. For example, if you are looking for functionality, and all they have is design work to refer you to, I would look elsewhere.
Section 3 and some of section 2 of the post I wrote for Marion's comment cover some of this if you have not read it already: # 8 TrustThisGuy (7 comments.) Says:
October 19th, 2009 at 5:40 AM
Hi Martin,
Thanks for dropping by and commenting. There should be a ton of talented developers in CA. If you don't know of anyone who has worked with a freelancer or shop they recommend, I would not walk into just any shop and have them start building. Take your time to find a freelancer or shop you think will be a good fit. Apps and the people you have build them deserve the same amount of research as other large purchases. As part of your research, when you find someone, have an open conversation with them about their work style. Also, make sure they have a couple of projects under their belt that they can refer you to, so you can see if they are capable of building your app. For example, if you are looking for functionality, and all they have is design work to refer you to, I would look elsewhere.
Section 3 and some of section 2 of the post I wrote for Marion's comment cover some of this if you have not read it already: # 9 TrustThisGuy (7 comments.) Says:
October 19th, 2009 at 5:40 AM
Hi Martin,
Thanks for dropping by and commenting. There should be a ton of talented developers in CA. If you don't know of anyone who has worked with a freelancer or shop they recommend, I would not walk into just any shop and have them start building. Take your time to find a freelancer or shop you think will be a good fit. Apps and the people you have build them deserve the same amount of research as other large purchases. As part of your research, when you find someone, have an open conversation with them about their work style. Also, make sure they have a couple of projects under their belt that they can refer you to, so you can see if they are capable of building your app. For example, if you are looking for functionality, and all they have is design work to refer you to, I would look elsewhere.
Section 3 and some of section 2 of the post I wrote for Marion's comment cover some of this if you have not read it already: # 10 TrustThisGuy (2 comments.) Says:
October 19th, 2009 at 4:51 AM
Hi Marion,
The response to your questions was a bit large for the comment area, so I made another post: http://tinyurl.com/web-app-prequel Hopefully that covers the majority of what you wanted to know. For the parts that I didn't cover directly in the new post:
Screenshots are not required when working with a good designer. If that is your preferred method for describing the way you want the site to look, however, you can piece them together using image editing software (no web design knowledge necessary).
Your comment about data being arranged differently on spreadsheets and on web applications makes sense. There are sites that do some pretty amazing data visualizations, but the way you display the data really depends on what you are trying to get out of it. Dynamically updating graphs for example, although possible in Excel, are much cleaner to set up in a web application.
If you are seriously looking for a secure intranet web application, check out theworldneedsheroes.com. If I am not the optimal fit, I have some shops/freelancers I have worked with that I would be happy to recommend.
October 19th, 2009 at 5:42 AM
Hi Martin,
Thanks for dropping by and commenting. There should be a ton of talented developers in CA. If you don't know of anyone who has worked with a freelancer or shop they recommend, I would not walk into just any shop and have them start building. Take your time to find a freelancer or shop you think will be a good fit. Apps and the people you have build them deserve the same amount of research as other large purchases. As part of your research, when you find someone, have an open conversation with them about their work style. Also, make sure they have a couple of projects under their belt that they can refer you to, so you can see if they are capable of building your app. For example, if you are looking for functionality, and all they have is design work to refer you to, I would look elsewhere.
Section 3 and some of section 2 of the post I wrote for Marion's comment cover some of this if you have not read it already: http://www.trustthisguy.com/so-you-want-to-build-… Hopefully that helps.
October 21st, 2009 at 9:05 PM
Thanks for your response.
So I looked up some developers and I found affordableprogrammers.com who advertise to work for you only for $10 an hour. Have you, or anyone else ever heard of them? Are they any good? They seem to be very cheap, so I am wondering if what they offer is of inferior quality.
Thanks
November 3rd, 2009 at 10:44 PM
I've never heard of that site, but I have heard of people outsourcing development work to other countries, which could be how they are giving such low rates. It's not a service I would use, but if you are planning on going that route, definitely do your research before giving it a run to make sure you know the trade-offs involved.
(Apologies if this is sent to you again, it did not get tied to your comment the last time I tried replying, and I wanted to be sure it reached you).