Solo Developer: pros and cons
I am leaving my current position and decided to see what I’ve accomplished and learned for past two years. For all that time I’ve been a solo developer (well to be honest, I had an intern to help me out, but for quite short time anyway). Like everything in life, being a lonesome coder in this ruthless software world had both — pros and cons.
I think this was great and vital experience in my career. It allowed me to accomplish and learn a lot as I was responsible for absolutely everything. I wouldn’t change it for anything. Here is why:
- There is no one to turn to when you are alone. Where does that leave you? You have to find solutions completely on your own. That goes from choosing best algorithm, container, tools and languages to something like finding out what was with that DLL problem on client machine. Thus being solo developer will, without any doubt, make you superb at problem solving.
- If you are willing to learn to be a better coder, you will. Use Stackoverflow, programmers.stackexchange, blogs and just try to use best solutions you find. Of course, no one is stopping you to do so with the team, but being alone you are your own boss and you’re totally free to experiment. I had no mentor, so what else could I do than to be my own mentor? It forced me to read books and that, combined with numerous resources on internet, is by far the best mentor you could ever have. Have an idea? Just browse for it!
- When working with someone else, your responsibilities are shared. You could be responsible for routing algorithms, while others work with map engine, database, etc. I had to know absolutely everything and without taking too much. Reading code becomes as easy as reading a book.
- I have learned what I needed with GIS from ground up. That might not sound very challenging, but before, I didn’t even had an slightest idea about any of that stuff. Hell, I didn’t even know it was called GIS! If I had been working with someone more experienced in this field, no doubt I wouldn’t have learned so much.
- I have written first unit tests, re-coded vital parts of code to drop copy-pasted code using design patterns, started using RAII, significantly increased performance for routing algorithms and included boost libraries. It’s not like I wouldn’t be able to do all that when I’m not alone, but again, I was my own boss and that gave me a lot of freedom to see what works and what doesn’t.
So what are the cons of being a solo developer? Well, firstly I think it depends on your views and experience you already have. If I wouldn’t have worked with great developers in the past to teach me and most importantly inspire me, I would have failed miserably.
But here is a single most important drawback: motivation — you have no one to share ideas. When you are stuck with some problem you only have monologue in your head instead of sharing it with others. I mean you can share it with others in the company, but will they be that interested in your whining? They have their own problems. At first it is nothing… But working alone for a year or longer can make you really miserable.
But non the less, as I’ve said, it was a really great experience and I don’t think I would have gained it if I wasn’t working alone. And now it is time to join a team and see what I have really learned during those years!