Despite being a Web developer for a few years, there are always features, like front-end animations (think those cool looking ones from codepen), and back-end scalability, and fail safe capabilities that I don't have the confidence of tackling. Especially when it's something I haven't done before. Giving a timeline for that is next to impossible other than making a good guess. How do you guys deal with this?
Gergely Polonkai
You have to believe in things that are not true. How else would they become?
I really like Dave's response below, but I would add that in an indirect way, you should get very good and estimating your own time to learn.
By that, I mean if you are going to have to learn a new technology to complete a project (and you know this from the start) add in the time it will take you to learn that technology in your final estimation.
I agree with Dave, with some extensions.
When I have to estimate on something I never did before, I do a bit of research. Even if I’m sitting face-to-face with the client, I ask for some time to look around the Interwebz.
If I can’t find anything similar, I will give a really long timeframe (and probably a huge load of money). If the client asks “Why?”, I break down the problem to small tasks, so they can understand my reasoning better.
However, if I add “because no-one did this before me ever”, the client usually says “we should do it immediately”.