I love software development, but I hate doing it for a boss

Unless your boss is really a bad guy, you should reconsider the feeling. If it’s just that you don’t want to work for someone, don’t work at all. Because when you have your business you work for a boss much worse than your existing one: yourself. You will eventually work for many other bosses that really don’t care much about your feelings: your customers.

If you really love software development, if it’s what you are made for in life, creating your own company may be very disappointing. Today you do what you love (developing software) for most of your time. When you are an entrepreneur, you handle many other unpleasant tasks. You have no choice but to increase your work hours to be able to produce valuable lines of code. You will have to do lot of administrative tasks, handle customers (requests, complaints, questions, …), learn legal & accounting stuff, call people, sell your stuff, handle employees (requests, complaints, questions, …), think about tons of things at the same time … all of this increasing your overall anxiety and fatigue.

Here is a quick test to see if you, as a developer, are likely to succeed as an entrepreneur. Answer each question by true or false.

1. I dislike the sales part of the process and prefer to make the product

2. I’m a perfectionist

3. I won’t accept to be paid less than my market value for an extended period of time

4. I really like to take care of the details

5. I really dislike being criticized by other people

6. I don’t have any savings or personal investments

7. I have never been fired

8. I don’t have friends or family that run their own businesses

9. I am afraid of losing all my assets

10. I’m an anxious person

If you answered “True” at least three times you should seriously reconsider creating your company.

If you really want to start your own business, consider creating a consultancy company first, then create your products later. Many successful software companies started like this. It works because the services (much more easy to get money from) pay the bills while you develop your products. If the product fails, it is no big deal.

How to successfully enter a new company or domain

As a consultant, I worked in various domains such as utility, telecom, aeronautics, finances, insurance, etc and I’ve faced the problem of not knowing very much about the domain I was entering.  With time, I discovered a very simple method that works: being actively curious.

  • Request a one to one introductory meeting with your supervisor with the purpose of getting them to explain the business domain (the big picture). It should not last more than 4 hours (or you will get bored and your supervisor exhausted).  Prepare your questions in advance.  Take notes.
  • Ask the supervisor for a field visit. When I worked in the telecom industry, I asked to visit the router and transmission rooms as well as the NOC (Network Operations Center). It helped the team building the software to understand the purpose instead of blindly writing code. We knew why our stuff was useful and more importantly, who will be using it, and how.
  • Have frequent lunches with suits.  More frequently, I would say, than with fellow programmers. They love to talk about their stuff and if you listen carefully, you will learn lots of amazing things.  Be prepared to share some amazing stuff with them too or they will soon find you very boring.
  • When you have the chance, visit the departments. Ex: when I had to work with a marketing manager of a big finance institution, I asked how our applications helped them and what was her routine.  By actively listening to her, I was able to find out new stuff to automate and make her work life easier. I suggest you make a physical visit rather than a phone call.  This means you can see her doing the thing and more importantly, using your application!  What is obvious for you may not be so obvious to the rest of the world.
  • Buy books on the domain and watch youtube videos. Read your domain’s information websites as well. Give priority to higher level literature. Books that are too technical could be boring or impossible to understand in the beginning. What you need is general concepts to fuel conversations and learn more.
  • Talk about it to your friends & family often. Talking about your stuff will help you integrate the huge amount of information you must learn. Prepare an elevator pitch and be prepared to give details. Don’t hesitate to write it down so it is easy to remember.
  • Read all the news your company publishes. Including annual reports. In fact, the first thing to do when you are hired by a new company, is consult their website and publications.
  • When you don’t understand something, don’t hesitate to ask the guy in the company (email preferred) that can answer your question. The worse thing that could happen is being told that (s)he has no time for that.

Remember this: the developer that knows the domain very well is no longer just a simple developer.  You are a little more than that.  And so is your market value.