Published on Aug 17, 2015
Let’s say that you have an idea that you believe could be the next big thing. The next great unicorn. It’s something so magical that you only tell it to your closest friends in a whisper, and all of your family has signed a lengthy NDA agreement.
There’s only one problem. You have no idea how to build it.
I’ve seen people go down several different paths, and most of them lead to a world of hurt. If you trust the wrong people early, you are going to waste a lot of time and money.
Here are a few terrible ideas:
- Immediately go post an ad on Craigslist asking if there is a developer out there who can build this - for free or for money
- Hire your friend’s cousin who does some web design on the side to build your project
- Try to find someone ‘overseas’ to build it for you
The main reason that these are gut-wrenchingly bad ideas is that you are wading into waters filled with desperate people, and you don’t know what you are looking for. I’m not saying that you can’t find good people through Craigslist, and I’m not saying your friend’s cousin can’t code well. But if you post that ad on Craigslist, you are going to get a boatload of messages that tell you, “We just built something similar to this. It should be no problem.” And those people will not even know what your project is about yet.
You would think people would have the sense to avoid people like this, but I’ve personally spoken to a lot of people that represent the contrary.
Here is the truth - 99% of people who tell you that your project is going to be no problem are lying. They’ve got to put food on the table like everyone else, and they are lying to you.
So how do you find the right people?
The frustrating thing is that this problem creeps all the way up into more established agencies. It’s all too common for people to oversell you on what they are capable of. At a certain point for the tech person, there is a fine line between overselling and putting yourself out there as a developer and taking on a challenge. But if you take that jump, you have to deliver.
Here is a better idea. Instead of immediately jumping into finding someone to build your project, start by making connections with people already employed in the industry. Find someone with a corporate job who has worked on projects with a similar setup to what you are thinking about building.
For example, if you want to build an iPhone app - most big companies have an app these days, and I bet you could get someone to grab coffee with you who worked on one. They don’t have any motivation to lie to you about the difficulties you are going to face, and if you talk to several people like this, you will get a much clearer idea of what you are up against.
An added benefit is that tech people know other tech people. If you talk to five web developers from different companies, one of them is bound to know a good contract developer who can help get you started.
Drop a question in the comments below if you have one. I'd love to hear from you.
Published on Aug 7, 2015
Most non-tech people tackling web applications will vastly underestimate how long it will take to get a workable version completed, and most web developers are less than useless at helping you figure it out. And we are not talking about being off by small numbers. I've seen estimated time lines of 6 months turn into 3 - 4 years. Why?
Predicting when a technical project will be complete is an extremely difficult thing to do.
The major reason for this is that a lot of times (if not all the time), you will be to some extent discovering what the product is or should be as you are making it. Since you are shooting at a moving target, it becomes next to impossible to predict when you will hit it.
Here are 3 things that we do that keep our client’s projects on track, keep the feeling of accomplishment alive, and complete products.
1. Put it on paper & remove the mystery
Before you spend tons of money having a web developer build out something that exists in your imagination, get together with them and sketch out what you are wanting to do on paper. It’s a lot less expensive to sketch something than it is to build an entire website and then decide you built the wrong thing.
You won’t realize deficiencies in your idea until you are able to see some version of it visualized in front of you. Having these sketches removes a lot of the ‘moving target’ problem, since you have a good chunk of what needs to be built drawn out in front of you. It won’t completely eliminate the problem, but it certainly adds a lot of clarity.
2. Split it up into concrete action items
Once you sketch out what you are going to build, you need to map out what pieces make the most sense to build in what order. When you do this, think about if any of the pieces would be useful by themselves. Would a subset of the features you want to build be useful? Pick whatever makes the most sense as a first micro-project, and set a short deadline.
Doing this over and over will result in progress and you getting more comfortable predicting how long it will take your web developer or web team to build pieces of your project. That will give you a general sense about how long the overall project is going to take.
They say that a long journey is a series of small steps. A (successful) large project is a series of smaller projects being completed.
3. Build a roadmap and make weekly updates
Every Monday I send out roadmap updates to our clients to let everyone know what was accomplished last week and what we are targeting this week. This adds to the momentum of completing small steps. It can often take a few weeks to complete a new feature or set of features, and keeping everyone updated is crucial to keeping the feeling of momentum going.
Momentum is a huge factor in completing large projects, and it boosts productivity and the overall quality of work.
In my experience, it's not possible to 100% accurately predict when a project will be completed. It would be crazy to expect or ask for that. However, using this strategy, you should be able to put more accurate timelines together based on how long the smaller pieces take to build.
Published on Jul 13, 2015
Last summer I ran a six week programming bootcamp for new web developers who wanted to get some basic skills quickly. I surveyed more than two-thousand people who joined, and I got hundreds of detailed responses. One of the questions that I asked was, "What struggles have you had while trying to get started with programming in the past?" The most common answer by far was ...
I can't seem to stay motivated
That's a painful feeling, and if you have tried to accomplish anything difficult out on your own, you've probably experienced it. But why do we struggle with this?
For most of us, we spend a big chunk of our life in a situation where someone gives us a list of classes, in each class they give us a syllabus, and then we are given reading and assignments and grades and so on. Then we graduate and go into a corporate environment where some middle manager is giving us tasks and deadlines.
Most of us don't know what to do when no one is telling us what to do.
Whenever you launch a new initiative, you will inevitably run into big, unexpected problems. You need to be able to break these big problems down into smaller parts and find a systematic way to attack them.
Create an action list
Over the past several years, I've developed a habit to combat these moments of feeling lost (which lead to moments of no motivation and focus). Every single night before I go to bed, I sit down and make an 'action list' of 7 or 8 things that I want to get done the next day. A few of them are longer tasks, and a few of them are really simple. I make sure to tie them into my high level goals, which I also keep written down and updated. I use a paper notebook. Software adds more distraction in my opinion.
It sounds simple, but surprisingly few people do it. The great thing is that this gives you a moment to sort things and break them down before you are actually in the middle of trying to work on something. The same way you don't want to be learning calculus during the test, you don't want to be figuring out what you are doing next during your main hours of being productive. That's a recipe for wandering and checking Twitter.
A few quick pointers
Keep it actionable. If you write down "learn programming" or "start business" on a notepad, what the heck are you going to do the next morning? Nothing. The answer is nothing. And that's because what you wrote is meaningless and useless. If you write, "Read chapter 3 in [insert book title of your choice]" or "Call Ted, Seth, and Sarah about new consulting contracts", that is much more actionable.
Keep it simple (stupid). If you can't achieve what you wrote down in one sitting, split it up into smaller tasks. This kind of ties into the previous point, but if you say "Build project X", it's obviously not going to get done. The goal is to create momentum for yourself by achieving smaller goals and getting small wins.
Prepare your workspace. I find that when I'm procrastinating, if I start by setting up whatever I'm about to work on, go grab a coffee, and come back, it's a lot easier to dive in. I don't know why, but it definitely works that way for me. It's especially effective if you need to get up early and work. The more barriers you can remove for yourself the better.