During last two years I have been very busy with Rendered Text - software consultancy that I ran with Marko (@markoa) and Semaphore - hosted CI for Ruby that we have launched few months ago. Rendered Text was team of two for 3 years and in last two it grew to a great team of five and Semaphore grew into profitable project in less than five months.
I learned a lot and all of it was during solving very practical problems we had at the moment. It’s probably the best way to learn since validation is real-time. It also forces you to be extremely practical. Our usual workflow is like: “What’s good enough solution that can take us far enough… do just that, nothing more”. Later when we know more about the problem and also about the context we will improve solution. Ok, it’s nothing more than good old iterative approach. It’s good approach, but we haven’t picked it, we were forced into it by time and money constraints. Finally we embraced this approach.
And all written above is very well known to most software developers and to the most people of start-up generation. (Actually I have more evidence that previous sentence is not true than to say its true, but let it stay that way to remind me that it’s not true.)
The approach is great, practical, brings results etc. But the question is how do you learn new things that you actually need but you don’t know you need them because you don’t know they even exist. To discover those things, tools or ideas you have to be very impractical. You just have to step back into your old room at your parents house where you just knew that you have unlimited resources of time and money and that only sky is the limit. You have to study, not just read, fat books and forget about tweets and blogs.
It took me years to regain the power to step back into the world of doing something that will not bring any immediate visible results. And now while I am writing this I see a source of that mindset.
With Marko I have been bootstrapping for almost five years now. First Rendered Text and now for little over a year Semaphore. And those five years are pretty much professional life. Constraints of bootstrapping defined how do I think about problems and their solutions but also luckily or sadly how do I think about other things in life.
Conclusion is that you just need to step back and learn things that will take a lot of time and you don’t really need at the moment. And it’s not the problem if they don’t ever come to any practical use. It’s enough if they “just broaden your views”.
This post actually evolved from introduction to the blog post I initially intended to write about Go programming language and ideas around it. It will come eventually.