We’ve been all through them. Not always in this particular order. We sometimes skip a step or two. Working with a new product is hard. You enter a new world where you are a noob and need a lot of help to make your first steps.
This can be a new language, a new framework or a new product. We hear about it from someone that “can’t understand how I’ve never heard about it!”, so I go and try.
Years of experience made me come up with this six steps list. I hope it’ll help you the next time you encounter yourself in front of a new challenge.
First Step: Intrigued
We mainly start working with a new product after we hear about it from someone. We are intrigued. We want to learn a bit about it, look at all the goodies it brings. We start playing with it, experiment with it. Mostly I start by doing a simple tutorial and everything works as expected. We are content and decide to continue working with it.
Second Step: Confused
After we finished successfully the tutorial and everything worked as it should have, we began customizing the product and working with it in a “real” workflow. Suddenly, all the simple flow we followed in the tutorial isn’t as simple now. Things don’t just work as they did in the tutorial and you begin feeling confused and a bit betrayed. You might want to go back to the tutorial and look if you missed something.
Third Step: Negotiation (with Google)
It isn’t working as it should but you have just begun to work with it. You begin your journey with Google. I believe that the most search pattern for developers is: “How to X in Y” (the second one, by the way, is a copy-paste of the error line). You search for this technology and how to do that simple task you wanted to do with it from the beginning. You might come across some warning lights in the form of too many questions about this product. Suddenly you see a lot of questions that you didn’t show (or you decided to oversee) in your first search for the product.
Fourth Step: (Almost) Desperation
There are many times this is the last step. It’s not an “Almost Desperation” but a “Full Desperation”. Sometimes it’s just luck, you came across someone else with your same problem and some stackoverflow-saint has answered him. Sometimes that answer is “You can’t do that in this product” and that’s OK! I don’t call that a Give Up, you learned this new product and its limitations. The real “Almost Desperation” is when you don’t find the answer but, in the back of your head, you are sure it can be done and you are just missing something. You might stop working on it for a few hours, days or even months, but if you really “Almost Give Up” on it, you’ll come back, and when you will, the answer might be waiting for you. If it does, you are ready for the next step.
Fifth Step: Embracement
You understand what you did wrong, you made it work! That first POC you wanted to show is now ready. The answer for your problem might have been easy or hard, but in this whole process you learned a lot about this new product. You now show it to your colleagues and are excited about it. You begin thinking what other implementations can be done with it.
Sixth Step: Can’t Live Without It
A few weeks/months have passed since you started your journey and this new product is working as expected. You might have upgraded it a few times, maybe added addons or more configuration. Maybe continue searching what more can be done with it. In the bottom line – this product is now an integral part of your work. You remember you once had a hard time with it, but that’s in the past, the present you know better than the past you. You promote the product to anyone who is ready to listen, or when you see it can help in another project. You are now that product’s Guru in your company.
And you’ll be back to step one really soon, with a whole new adventure.