Hacker News new | ask | show | jobs
by davidscolgan 2549 days ago
For me, being a solopreneur is the ultimate challenge. Can you arrange your life in such a way to be able to juggle all of the balls you specified? I've been struggling with the same questions lately as someone doing part time freelance to fund ambitions of building a product.

I recently read the book The E-Myth, which identified for me a serious problem I overlooked for a long time: A programmer is a technician who is an expert in a craft, along with writers, designers, etc. One day the technician is overcome by an "entrepreneurial seizure" and declares "I do all the work around here anyway, I could totally run a business better than my boss." And so the technician goes into business and runs themselves into the ground because they didn't realize there are actually three roles necessary for a business to work:

1. The Entrepreneur, who sets the vision 2. The Manager, who organizes 3. The Technician, who does the implementation

The E-Myth argues that the technician is actually the least important of the three, and even should eventually be replaced with employees if you actually want to run a business. As someone who wants to be a solopreneur and stay that way, my hope is that it's possible to still be the technician, as long as you can actually balance the other two roles.

As someone with ADHD-like tendencies, I've recently realized that my life has been in relative chaos for years working for myself. There were no standard operating procedures since I wanted "freedom" to work how I wanted, but that's meant effectiveness is directly tied to my mood at the time. I neglected the Manager's role.

I've also come to see that having a clear "why" for doing what I'm doing is vitally important at least for me. This is the role of the Entrepreneur. Otherwise I'll just sit thrashing about with various web frameworks and coding standards, forgetting that building a product people want is why I'm here.

Working to balance my technician time with manager time and entrepreneur time has been really helpful for motivation. Procrastination for me seems to come from being unclear about what I need to do next, and "build product" is not a good todo list item.

As far as forgetting, Sebastian Marshall wrote a piece called "Background Ops": https://medium.com/the-strategic-review/background-ops-1-str.... He makes the observation that otherwise intelligent people will just stop doing things that are good for them for no real reason. The E-Myth agrees with him here that as much as possible should be put on autopilot so you can use your limited willpower for creative purposes instead of deciding what to eat for breakfast today.

I've been mulling on the idea that freedom is not the ability to do whatever you want to all the time, but rather the ability to decide what rules you will impose on yourself. I can use my creative energy to say "I have determined that I do my best work in the morning, so I will wake up at 6am" and then I'll make my lizard brain wake up at 6am whether it wants to or not in the moment. The lizard brain often will just go with whatever is in front of it if it can just get started!

Hopefully this is useful, I'd love to know more about the specifics of what you've tried and what's worked and hasn't. Great question! I'd also be happy to chat more over email.

1 comments

David, thank you so much for writing such an extensive answer.

It's very interesting to explicitly define those three main roles and applying them to your own work. I am with you on procrastination (and a lack of motivation in general) originating from a lack of clarity (or fear).

I think I have implicitly applied the same differentiation by splitting up my time and work into different projects / categories and explicitly defining the roles I am fulfilling as described in OP. I often have stretches of the "now I'm getting my work/life back on track!" feeling where I try to setup the organisational systems.

  e.g.
  - Commenting and documenting code as I write it, so that I can get back to it later without any problems.
  - Creating sales and administration procedures.
  - Writing down the most important words from my vision on a sticky note and stick it on my laptop screen.
  - Create daily reflections on my work.
  - Write important notes to my journal 
  - etc. etc.
This takes time. All basic things that should be as clearly defined, turned into processes, and automated as much as possible. This then goes well for a couple of days/weeks/months.

Then, one of two things happens:

1. Overall, the manager role seems to be the one that is the first to fail when -one way or another- the unavoidable shit hits the fan. This does not even necessarily have to be a bad thing (e.g. sometimes it happens over spending a weekend 'winding down' with friends or family), but most of the time it is (e.g. a freelance project deadline taking up 100% of time and resources, an unfortunate health event in the family, a financial setback from an expensive but necessary item breaking or a client not paying).

For some reason, returning or recovering from such an (un)expected event that causes me to lose focus, makes me lose the sight on processes that were clear before. Trying to put it in your term; the manager is confused and loses clarity, as a result the technician does not know what to do and the entrepreneur starts doubting his existence.

And then it's back to square one.

2. As you continue to work on different projects/fields, technology moves forwards. And inadvertently, what happens when you spend 5-10% of your time in a field where 1m+ people spend most of their time, is that technology moves faster than me. I decide what processes should be, defined them, and applied them once or twice in a project. What happens next is either, I come across this great new technology that causes me to want to forget what I know and apply the greatest newest thing, or I start wondering "did I make the best choice?", that causes me to re-evaluate my current process.

  (Or I have been procrastinating the decision of a certain system so long that I eventually just pick one under time pressure. 
  And as I go along the implementation I start to regret it, but it's too late and I tell myself:
  "okay we're going to finish this project in this matter, but next time I REALLY have to make an informed decision!"
  and, of course, the next project it goes exactly the same way...)
And then it's back to square one...

I have now decided that this is not sustainable (duh) and I want to know how others tackle this problem (as I cannot imagine I would be the only one), and get new insights and/or build the skills and/or tools I need to solve this problem in a sustainable manner.

I hope this provides a little context on what lead me to ask the question!

As far as staying up to date on technology, I am heavily in favor of using boring technology (see http://boringtechnology.club) for my own projects. The biggest consideration for me is, will this tech still be around in 5 years, and will it have required me to do a full scale rewrite or massive breaking changes upgrade?

I've gotten a lot of mileage out of Django for that reason, as even with the Python 2-3 thing, Django has been very stable compared to a lot of web stacks I've seen. It's 15 years old, and I fully expect it to still be around in another 15 years.

React was being adopted by companies when it was still at version 0.12, and while it did end up staying around, it was not guaranteed. I would have been hesitant to use it at least until v1.0, and probably would rather have waited until v2.0.

Now React is the frontrunner and unlikely to go anywhere. They've also maintained backwards compatibility mostly from what I've seen, as Facebook has 180,000 or whatever odd components they don't want to rewrite.

I wouldn't use Elixir/Phoenix currently, unless it was extremely helpful to the project, just because it's a less mature technology. It sounds like a wonderful ecosystem, but if I'm making a business decision, risk is what I'm wanting to minimize.

This is the biggest reason I was sad that VueJS seems to be flirting with a large breaking change. I had thought Evan originally said they _wouldn't_ be pulling an Angular 1 to 2 rewrite the whole framework, and though this doesn't seem as bad, it still is a different way of doing things.

You know what hasn't changed in 10 years? JQUERY! Ha!

So as far as how I'd keep up to date, my answer is that I'd try to choose a preferred tech stack that is stable and try to get really good at it. Django has been the only full stack framework I've needed to learn in my 8 years of contracting, and that's worked well for me.

Only just finished reading trough the full talk.

This slide[0] really resonated with me.

  The new thing won’t be better, you just aren’t aware of all of the ways it will be terrible yet.
[0] http://boringtechnology.club/#85
That's a very good approach to choosing which technologies to use. For personal just-for-fun projects it's often nice to either work with new technologies or (re)invent the wheel, but this is a very nice approach how to pick tech for contract work.

Nice.