DEV Community

Cover image for Starting a Software Company: Self-Aware Software Artisan
Mario Novak
Mario Novak

Posted on

Starting a Software Company: Self-Aware Software Artisan

Our goal is to determine what you are interested in, find the opportunities, determine a scalable model of working, define growth stages and make your idea a successful one.

Don’t do it because of the money — you’ll die.
Do it because you are dead without it.


📹 Intro video: Charles Bukowski — Go all the way

🏆 Your progress 🌏 🏄‍♂️

After you’re done reading: check the ⬇️ bottom of the page — you’ll find next parts of this series that cover diverse set of related topics!

📣 Coming soon!

I’m continually refactoring this series.

Subscribe to receive a single-page Manifesto: Scalable Software Development distilled to the ultimate truths; from the viewpoint of an Software Artisan.


Author’s experience

Data Sculptor, Architect of Systems and Products.

Founded startups in the fields of Education and Sports and led teams of up to ten people.

Worked, as a Systems Architect, Frontend, and Backend Developer, for a product company, a digital agency, and as a remote freelancer.

For more information, check my Personal Website.


🎷 Background song

Without a purpose, we are dead men walking

Alt Text
Source

Find your purpose, through a succession of moves. Observe what is happening while you are in different situations.

You’ve seen or heard about a woman having a child under the car tire, having a godly strength to lift up the car and pull her child from beneath it. This is an instance where the primal instinct of protecting your offspring kicks in. And it cannot be compared to anything else. But in some parallel environment, you can imagine that same drive for life, that presence — of being in the moment, being applied to your calling in life, or — better said — to observing, speaking the truth about your feelings, and getting closer and closer to what you are.

Then, you see a ski jump done by an individual born to do it. You see a football coach dying and living at the same time while coaching and moving his team forward with his guidance. Then you see a man at the right place, at the right helm, guiding the company that makes our lives and environment better.

These are the things we are living for. To be exactly where we are supposed to be when we are supposed to be there.

If it makes sense for you to build a product that will solve a problem for few people or a lot of them, you will get to it. If you are here, to in the next few years help heal a great number of people — you will get there. If you are here to create the most beautiful flower bouquets, you will get there, to do it and bring smile to peoples faces. But at the end of the day, to do anything good for another man, you need to have the energy, the will and enthusiasm to do so — so work on your strengths and weaknesses, improve yourself to be able to contribute to others in greater fashion.

Whatever you do, keep observing, keep going deeper into what you truly are. How? Write down your emotions, your thoughts, your habits. Write a journal, every day; see where you are, how you are feeling and how do you want to feel, what do you want to see.

You cannot expect the world to be better if you don’t imagine and sketch out exactly how it needs to look. In most instances — you will sketch out how you need to be — to have the world react to you in a manner you value.

Make a sketch, outline who you want to be, how you want to be. Who you truly are. Make it happen in the next few years. Go for it. See how life feels then.

Observing, doing what makes sense

Alt Text
Source

I go through life, observing myself, observing others, observing the interactions and the feelings I get about things — I’m taking action. I could play the guitar, go on a run, read a book, work on a software project, or all of the mentioned. At the end of the day, I’m expressing what is happening in myself.

If I play the guitar, I want to express myself in an analog world, and the guitar makes sense at that moment. If I feel another movement makes more sense, like for example, drumming — I do that. The same thing is with feeling the need to create in the digital world. Medium is different, tools and technology are different, but the underlying concepts of transformation and utility have remained the same.

We are expressing our interests, being that playing the guitar, or building a web site, app, AI, blockchain, whatever you can think of. Things we pick (analog vs. digital, technologies, tools) give a sense of our character, but at the end of the day, we are expressing what is happening inside of us, only on a different level and angle.

Thus, while we are here — alive, our goal is to, through time, be more in synchronicity with ourselves. Meaning, being less stressed through time, less anxious, and more at peace with our path.

Finding what you love — building around that

Alt Text

Starting and going through life, tuning to the spot after each step.

A lot of people go around and yell for ages, decades — “I don’t know what I should do! I’m not good at anything!”.

You are, you are already doing it. It might not seem to you that your interests are connected. You could ask yourself how it will all work out for you…

If you don’t know what you should do, know that things are relative, and take something that makes most sense to you. As the time changes, and your perspective — you will calculate things differently and position yourself differently.

Example:

  • If you are interested in Sports, do something in that realm,
  • If you have interests in Education — learn, teach, build learning software,
  • If you are interested in Psychology — build something around habits, states etc.

We can represent our life as a continuation of steps we take.

But, keep moving. Keep thinking, keep feeling.

Never give up on yourself.

It is infinitely hard to start, but we do it anyways

Alt Text
Source

Starting a new endeavor, here, means:

  • tackling something unknown or previously unsolved by you (having a specific functionality you’ve come up with, that you think changes the field at hand),
  • using tools, languages, frameworks unknown to you.

Avoid doing something just to brag about it

  • Do not work on a problem if you’re not improving the current best solution by 10x.
  • If you wish to create a clone of something just to showcase your skills — invest more time and come up with an original idea or a remix of the existing ones so that the product has a profound impact on you and, hopefully, on other people.

Resistance to new things

The level of resistance to new endeavors is proportional to:

  • the stress level in your life,
  • uncertainty of your endeavor.

If you are starting a new project, even though you know most of the ingredients… the reason for friction is — you not knowing a language, or a tool well enough or you not understanding what exactly makes your project tick. For example, when switching out a framework for a different one, even though it is in the same language, and by the documentation, you see that there will be no problems, you will feel the resistance towards it that is proportional to the level of stress in your life.

It’s easier to be a sheep

It is easier to continue on the well-beaten path than is to switch even a tiny amount of the configuration. That’s why we can predict a relatively good amount of things going forward, and the trends towards the next decades.

You cannot evade your feelings, and the inertion you feel while switching things up. You can accept it and build through it.

Accept uncertainty, fulfill your heroes journey

What you can do is — accept it, learn that it is a mechanism of perseverance that in this situation probably doesn’t make sense, and know that your body is giving wrong signals for it and that you are better off digging deeper and continuing with the new work, than to ponder, procrastinate and pontificate everything about it.

Give yourself time

Take your time to simmer the anger, the fear of the unknown. Start slowly. Investigate, play with it for some time, get the familiarity of the environment you are stepping in, and soon you will be up and running, hopefully in a better state than in your previous environment.

Magic of working on your projects

Alt Text
Source

That rush you feel when you get something right. After a long road of wandering, trying…

As with any good thing, as soon as you complete something, a new unknown appears on the horizon.

You are in that loop of moving the horizon further, while in the meantime you need to manage yourself to handle the stress levels. (Check Self-Aware Software Artisan: Health and You — A Human Being).

You’ll get beaten up along the way. You don’t care. It is better get beat up and improve yourself, doing what you love than from the things you don’t care about.

Pick your battles. Everything takes something away from you, and gives something to you. Know as much as you can before going in.

The uncertainty of the impact of your idea on the World, and the interplay of the World and your idea is where the magic is. The magic of life is not knowing that last 20%.

Picking the team, transferring the vision, doing the best work of your life — together

It is of utmost importance to pick the right people for the job.

As with everything, you can screw it up. If you did the best you could, and the relationship doesn’t work — cut it. It is best for both sides. Don’t waste time for the other person and for yourself.

Pick the people so that your vision is truly an aspiration of theirs, also.

Motivate your people with the truth and the necessity to focus on getting every step as it should be.

Expect and give the best of you to them and the Company, and not an inch shorter than that. Expect and demand the same from them.

Read Self-Aware Software Artisan: Team for more.

Picking the technology for scale: frameworks, languages, tools

While working on your project you have the opportunity to pick the best palette of tools. It is not the case while joining ongoing projects, so don’t take this lightly.

You have the opportunity to bootstrap your application in the right way, securing its scalability into the future.

Read Self-Aware Software Artisan: Product Development for the recommended technology and the tools for scalable software development.

When to release a product

Your work style, your ideas, processing of the information — all comes from within you — your past experiences, feelings intertwined in you.

Perfectionist style could derail from your balanced life, trying to achieve perfection in the product you’re involved with. It could possibly kill you, or it could revive you. It all depends on your genetic and/or environmental makeup.

Test or try to envision interactions people will have with you and your product if you launch it in a specific state. What will happen in the next few weeks, months, years? Will you have anything to eat for a foreseeable time?

Plan everything you can in advance, set goals to know how far or close you are to them.

Ask more questions than you can answer and start answering them with time. See how you feel and decide on the actions.

Read Self-Aware Software Artisan: Product Development.


“It’s better to have a short life that is full of what you like doing than a long life spent in a miserable way.” ― Alan W. Watts

Find this useful?

👏 Clap so more people see the story.
❤️ Support your friends and colleagues at work — share this essay with them!
🚀 Use it as a, Company or Personal, Manifesto! Fork and Adapt on GitHub!

🏆 Your progress 🌏 🏄‍♂️

  1. Intro

  2. You — A Human Being

  3. Your Health

  4. Question Everything

  5. Deep work

  6. Joining a Software Company

  7. Starting a Software Company — ✺ You are here.

  8. Team Artisanship — 👈 Next up!

  9. Product Artisanship

  10. Code Artisanship

  11. Finishing up


Cover image source

Top comments (0)