You have an amazing idea for your website. You have the blueprint and a great proposal in your mind. The next thing would be finding a developer to translate all those features into actual working codes. It is a simple and clear task, so that should be easy, right?
Your developer would probably try explaining why that wouldn’t work and/or quote you a number that you find ridiculous. Now don’t get defensive. If he/she is good, you’ll be convinced; otherwise, let me translate the Geeks into English.
If it is easy, someone would have done it.
We all like amazing ideas. Every day we are trying to build something that fit client needs as well as something that is intuitive to manage (at least that is the way a real good developer should think), so we can show the world our great talent. However, this is no easy task since we are not living in the world of Matrix, where faith dictates reality. Instead, we work under constrains: budget, deadline, technology, and most importantly in web development, browsers and devices.
Browsers and devices are notoriously difficult to deal with in web development. There are so many different browsers with so many different versions (look for the closest computer still with IE8, they’re just around the corner!). The capabilities of these browsers vary, and when coupled with devices, you can imagine we are working with not just one environment but a dozen. To ensure your feature is going to be enjoyed by most users, good developers will think ahead and find a way to realise that to users under different environments, and this is where it gets difficult, and why many great features are not released to the world, yet.
“Features work together”
Let’s assume it is do-able and we have the time to build that specific feature, why does the developer still say no or why does it cost so much? That depends on how many ideas you have in mind. If you have played Jenga before, you already know the gist.
With Jenga, there are a lot of blocks that stack together as a tower. The tower is like a website, while each block is like a feature. Whenever you make changes to one block, it essentially shakes the ground of the tower; whenever you make changes to one component, it essentially tinkles the structure of the website. Playing the game is similar to building a website, you cannot isolate and deal with only one block, you need to take the big picture into account and make sure everything remains stable. When applying the same concept to web development, you would probably understand how difficult it is to add or edit features on your website for us developers, and this is why it takes so much time and effort to build “one” feature, because behind the “no”, we are not just dealing with one isolated problem.
So, what should you expect after hearing the ‘No’? Alternatives.
Good developers are not just keyboard tabbers, we are solution designers, a.k.a. problem solver. Once we hear your brief and your problem, we aim at delivering a solution. Although the method you suggested might not work, there are always alternatives, and we are the one that should be able to provide that while keeping all the constraints we know in mind. As the expression says: ‘All roads lead to Rome’, so hear your developer out, he/she is probably saying “No… But, we can do that differently…”
Web development is not that easy
Don’t get me wrong, we are excited to learn about your ideas and suggestions, and we enjoy thinking of ways to make them happen for you. However, designing a solution that won’t backfire takes time, and we need the bread and butter to continue doing that. So next time when your developer say no to your amazing idea, it is not that he/she doesn’t want to help, or he/she wants to scam you, it is just there are more Agent Smith we have to fight than you think.