Every now and then, I feel like I am in the crossroads. There has been, is and always will be a larger objective and that has been to solely focus my energies on doing product development for my own, albeit small, company. But, dreams take a while and as I’ve come to realize, a long while sometimes. And while it is rather easy for me to throw the blame on the numerous challenges that life doesn’t cease to throw at you, I am fully aware deep down that if I really wanted to give it all, I would have. Having said that, I feel like this moment is the lull before the storm in my career. I hope it is.
A few years ago, I decided I wanted to convert some of my ideas into actual working solutions. Given that I had been building software for several years, and across different technology stacks, I backed my skills and completely believed that it would see my ideas through fruition within a couple of months. Boy was I wrong. The next few years have told me that development and architectural abilities, while obviously important, play only a small part in the overall equation. A significant part but a small one, nevertheless.
Challenges
We all run into unique challenges all the time but, a lot of times, I think we might run into the same type of challenges but handle it rather differently and that, in essence, defines us as people to some extent and plays a crucial role in helping us achieve our goals and realizing our dreams. Needless to mention, some challenges are more challenging than other challenges and the situations in which those challenges arise adds to the magnitude of those challenges as well. I wanted to share some of my experience as I continue to travel this path of launching a software product first and then, another and then, another. If you are looking to read about someone who has been there and done that already, it is about time to find another post to read (luckily, there is no dearth of accomplished people in this world and there never will be) but if you are like me trying to figure out how to make this all work and don’t relish in living in comfort zones, you may want to read on.
Do it Full Time, not Part Time
This has been the biggest of all challenges. While I’ve designed, architected, developed and deployed applications from scratch for a number of my clients and on occasions, all of this within a matter of a couple of months, the question I get repeatedly asked by folks who know me and care a bit for what I do is, “Why is it taking so long?”.
That’s a fair question. I am not trying to solve world hunger, after all. So, what’s causing this hold up? There is no better place to start that discussing the number of hours spent doing what you really want to be doing in any given week. Ideally, I would like to spend a 60+ hours per week on an average building whatever the heck it is that I’ve been trying to build. While it could be writing code at certain times, it may be rethinking the approach or architecture at other times. But what does help is if you didn’t have to switch gears to doing 2 or 3 different things and when that happens to be the case (and more often than not, it does), and you end up spending a meager 15 hours on some weeks doing what you absolutely want and need to be doing, it hurts your momentum.
Of course, we all need to pay our bills. At least, some of us have to and there begins the first trade off.
Don’t be obstinate
Obstinacy is no good in general and definitely has no place in a start up. Do I wish I had realized this years ago? Absolutely. Am I glad I at least realized this now? Absolutely.
Everything evolves in this world. We all know change is inevitable and is the only thing that is constant. Of course, we all know that. But, do we necessarily remember that it is the case at all times? Perhaps not. You start out building something and you do it because you truly believe in it but does it mean it is immune to the realities of the world that you may or may not have perceived when you started out? Not at all.
I’ve realized that while the problem domains I had started off to focus on haven’t necessarily changed all that much despite the advent of numerous offerings in those spaces, the scope of the problems continuously change and therefore, how they need to be solved has to be cognizant of that. I was resistant to making some changes to begin with and they have cost me. It is time to fix that attitude.
Don’t doubt yourself
I tell myself this every day with the belief that I would actually wake up one day not doubting myself. Has it happened yet? Not quite but I want to believe I am slowly but steadily getting there. I read somewhere that doubts tend to kill more dreams than reality actually does. Or, something to that effect. I couldn’t agree with it more. While there are no guarantees in life, the only guarantee is your commitment to what you are doing.
Every one does their job, be it intentionally or otherwise, in making you doubt your abilities. They do it rather well, at times. That – added to your own doubts stemming from the past, present and unknown future – makes the whole situation quite challenging. The onus is on you to not make it deter you. It is okay to have doubts, I think, so long as they don’t play a major role in moving forward.
Give it everything
This has been tricky for me. While the heart says – quit everything you are doing and just do what your heart desires, it is easier said than done. Who’s going to pay for gas? How about food? The house? Phone? And the list goes on.
I’ve always wondered how other people did it. And just as that thought crops up, another one does too. It is that all of our lives are unique and therefore, what works for one may not work for another. There isn’t a silver bullet.
I would be ecstatic when I make the call to give it everything and I do honestly feel I am at the crossroads now.
Priorities
This goes back to one of my earlier points about doing it full time versus part time. One of my main challenges has been the fact that I work for my clients for bread and butter and do my product work as an afterthought, all the time. While this is understandable because the client pays me and I’ve promised to produce my best and nothing short of it at all times, it does come in the way of getting the product out the door.
I tried the part time route where I worked only a few hours a week for my clients (even if it meant significantly lower returns given the Time and Materials model) but as it turned out, I actually ended up working full time and only charging part time. That’s because, a feature that needs to be done by a certain date needs to be done and if you are like me who doesn’t ever want to miss any deadline ever, you will know what I mean. It doesn’t matter what you get paid or what the contractual model is, you are simply unable to do anything lesser than what your ability is.
Developer vs Project Manager
In a small company, you tend to play multiple roles. When you are working on launching your first software product, you tend to play multiple roles and some more. While it is good that you have to and are able to play these roles, they do come in the way of getting something out the door. Let me tell you why I say this and how it has come in my way go launching something sooner.
When I do consulting work as either an Architect or Developer (I work with a project manager who manages the time lines. While I haven’t always had to work with a project manager as it is sometimes the Director of Engineer/Technology or a Development Manager who I end up reporting to (and that has mostly been the case), the person I report to defines the deadline and it is a hard one meaning the work needs to be done by that point for certain. That helps and it helps a lot in being able to meet the deadline.
Compare this to the product development scenario where I play the role of both the Developer (+ Architect) and the Project Manager. While one side of me that wears the Project Management hat says I need to get something done by a certain date, the other (and the more side that wears the Engineering hat coerces me into doing it the right way at all times. What this means is that the technology stack and the architecture change more often than they really need to from a deliverable standpoint.
Spreading myself too thin
It is exciting to define the features, assess the market constantly, architect the applications, design the features, implement it, test and finally, deploy it. It is unquestionable that each and every one of these steps is not just important but quite intriguing as well, some more so than others. But, what’s also true is that you sometimes aren’t able to do enough of any of these things at any given moment given the number of these things that you have to do. That tends to play havoc at times.
While it would be nice to have some help, it would be nicer to be able to afford some help. I do try to get help time and again but till there is a constant source of revenue from any of these products, this is another bullet that needs to be bitten.
Wish me luck!
Anyways, I think I’ve rambled enough for not just this weekend but for the next couple of ones too! Wish me luck in my endeavors and consider becoming my first customer when I do launch the product, at some point.
— krish @ http://www.snowpal.software