- Blog
#Data&AI #Development #Digital service design #Learning #Zure
EU AI Act timer is ticking, are you prepared?
- 17/09/2024
Reading time 9 minutes
This is part 2 of 3 of ‘the first decade of Zure’. Welcome back!
Please see part 1 here, if you’ve missed it.
This part is a lot about the learning (or mistakes) we’ve done, in the hopes that someone out there is able to learn from both our successes and failures.
Last part ended with us getting lucky on the recruitment front.
This part begins with us getting lucky on the client front.
Two weeks after Jarno started, in December 2012, we got our first fully Azure PaaS project. Client found us from Hyvinkää with Google. Our adwords budget at the time was 2 euros a day. For reference, it is 35 euros now (I know, I know, pretty low still).
(For Azure geeks: we coded the client’s application on Azure Cloud Services, nowadays replaced by Azure App Services released in 2013.)
Jarno joined us before we had a project for him, and we were prepared to wait. We believed we’d get a suitable project within an acceptable timeframe, looking at how good a developer Jarno is.
And this is still the way we hire: first people, then projects. In our view, this is key in maintaining the culture and delivery quality. From a business point of view, it would make sense to 1) make a sale, and 2) hire people. In this way there would be no risk of losing money, and since humans are risk-averse in nature, it is very easy to fall into this trap. This is especially true in companies where sales people get a commission out of a done deal – their goal is to make a sale, regardless of the company’s ability on doing the delivery.
That was not the kind of company we wanted to have. Our primary goal is not profit optimization, it is delivery quality optimization. With that in mind, it seems rational to us to 1) hire great experts, and 2) find projects. It could be argued that if a company is quality-driven, they must hire first and sell second.
On the other hand, to err is human. Even when we do our darndest to be as good as possible, we still make mistakes. Making successful recruitments does not remove human errors. Nobody should be afraid of mistakes.
Mistakes are natural and expected. The goal is to share and learn from them. My dream is that this becomes part of our DNA, if it is not yet.
We’ve held a Zureday monthly since 2013 (14th of March, 2013 above), so about 70 times now, where we get the whole company together for a company-wide ‘retrospective’ to find concrete ideas on how to improve our daily quality of life. Zureday is mandatory for everybody, and one of the things we’ll never stop doing.
2013 was also the first year our discipline was tested.
One day Markus showed up all happy, saying he got a project for 2 .NET developers for 6 months. That was huge for a company of 10. This was the first time we had to make a tough call on focus. We had free developers, so we had a choice: wait for an Azure project, or start doing a .NET project immediately. Naturally and as a sales person, he was a bit bummed out we chose to not take the opportunity he found. It did not match our focus. Today, these decisions are easier.
This was our third core rule:
In 2013, we hired 6 people during the first 6 months, to a total of 10 people. The growth of 150% in 6 months was too fast, especially since we ran into other trouble at the same time. We were too eager, and it came to bite us in the ass.
I don’t like the talk of entrepreneurs having it tough, or that setting up a business is something that only a few can do. I believe anyone can set up a successful company, but some of us have more luck regarding timing, friends, market, location, whatnot. Sure, there are probably people who start a company for the wrong reasons, and that doesn’t help, but that has nothing to do with the person’s capabilities.
I also dislike entrepreneurs blaming a situation on the employees. An entrepreneur has the control to change anything, and therefore in any given situation, my sympathies mostly lie with employees.
Zure fielding a summer day in 2013 at Lauttasaari, “Poliisien kesäkoti”.
However, there is one thing an employee doesn’t get to experience, and that is the feeling of responsibility an entrepreneur might have towards the employees. The responsibility of providing a stable income, to not make the families of employees carry business risk.
We soon felt the weight of this responsibility heavily. It was the first of September 2013, and we had 39 euros in the bank after paying the salaries in August.
That was not enough for salaries of 10 people at the end of September. First, we decided to not pay taxes. Or any other invoices either, like rent. That didn’t help enough, so we needed to send an invoice somewhere, and beg a customer to pay that invoice in full before the due date, so we’d be able to pay salaries.
Why were we in this bind?
Before the otherwise beautiful summer of 2013 we were approached by a friend of a friend. A trustworthy, direct kind of a guy. He told us his boss has a great business idea.
His boss, let’s call him Stan, was a terrific talker, and had an idea that to this day feels great. I’m thinking of the idea right now, 2020, and it is still something that should exist, but doesn’t. The best ideas are often such. The reasons for its non-existences are technical as well as market-related.
Stan had some other companies as partners already; international camera manufacturers, a global cloud provider, a global server manufacturer, a German factory automation provider, a bunch of lawyers, etc. He wanted us to put together all of the devices, data streams and results from these other partners, by building a suitable, scalable platform in Azure.
These other partners were already providing Stan with devices and hardware, expertise, programmable boards with custom logic, expertise, everything – for free! And we’re talking of global companies, similar to HP, Sony and Canon.
There was only one problem. And you probably already guessed it. Stan had no money. But! He promised to have it by the butt-load soon, and to pay us in 3 to 4 months, double.
So, we had a vote inside the company, the 10 of us, and decided to take a risk and to work through the summer. Half of us in this project, and the other half keeping us floating with our existing projects. I’m groaning even as I write this.
First month was awesome! The idea was/is good, the technical challenge exciting! We were building actual, honest-to-god robot arms in our conference room! After the automation experts had built the arms, other experts came in to program their logic according to our specifications.
Second month we progressed well with the solution, including but not limited to creating an “infinitely” scalable stream-ingestion on Cloud Services. In the meantime, the project started smelling funky. During the second month the other partners started calling me about promises made by Stan. I had no special position, nor had I answers.
On the third month it quite suddenly became clear that Stan said whatever he could to anyone to get what he wanted. The business opportunities did not pan out, despite the promises. All of the partners had different understanding of the project status. The stories got progressively more outlandish, including visits to random countries and funding from everybody, like Google and international VCs. The lawyers started circling.
After 3 months we stopped working, the platform mostly functional. We had to stop, since we only had 39 euros.
We moved to Forum at Mannerheimintie at the end of 2013. This was our first real office, and even if it was quite a dump compared to our current digs, it already felt like home. Our move didn’t come at a great time, raising the rent for 2014, but we didn’t have choice due to losing our previous office because of our status of subtenants. We never entertained moving elsewhere than to the center, and I think we got a return on that investment.
Since we were subtenants in the previous office, we never owned anything. We ordered everything from Ikea. Here is Sami, happy as a clam with all them boxes. That’s him laughing exuberantly.
As is often the case, (like Spiderman says) with great disaster comes great opportunity. Ikea provided us with cubicles, practically free of charge. This here is a famous picture of a developer in “the Zone”.
It took us a year to climb back up from the disaster of 2013 summer. We didn’t really grow in 2014 either (26% in revenue, no growth in headcount and no profit really), but we also never once missed the payday, not then, not since, and we also did not have to resort for a bank loan. We did everything else, including a long payment plan with the tax authorities and negotiations with other debtors.
We did learn a bunch though, mostly on the importance of controlled growth and being demanding enough for the good of the whole team.
In 2013 we reached our focus goal: we only did Azure related projects. 2019 marked the 7th year of building 100% Azure PaaS.
Someone at work in 2014. We never found out who.
At that time we still sold projects with a fixed price. Fixed price means that the project scope does not change, nor does its cost or schedule. In reality, in most cases all of those change.
When we had that 39 euros on our bank account, the company that saved us was a real stretcher of a fixed scope. This refers to a situation where a client tries his best in getting as much as possible in a fixed price project, i.e. “more features without additional costs.”
Our logic for selling projects at fixed price at the time was “we’re good at making estimates, and therefore we can sell fixed price projects”.
Markus taking a conference call before he got his own room. Well. Untrue, I guess that was his own room too.
We’re still grateful to that customer for bailing us out in the crisis of 2013, but in 2015 we stopped our relationship. We did this cleanly, between projects, but still – after almost 2 years and 4 projects, we came to an understanding that our communication styles and ways of working differed too much for our cooperation to ever become natural. Too often we had to resort to arguing about the scope and the cost.
We realized that it doesn’t actually matter how good you think you are at estimating project size for a fixed pricing – just because you are good at driving a car, your car can still be rammed by others. And to continue with the car analogue, sometimes you’re too tired to drive well. We were foolish in thinking we could control everything.
In 2014, our yearly trip abroad for strategizing and ideation was to take a Silja boat to Stockholm. This here picture was probably just before a golden nugget of an idea came out of someone’s mouth, transforming our whole way of working.
So we learned to not offer fixed projects for simple reason that it does not drive towards a healthy, trusting co-operation. Instead, in a worst case scenario fixed cost projects enable an adversarial model, wherein seller tries to maximize profit by minimizing work, and buyer tries to maximize gain by demanding as much as possible within the fixed price. Neither party builds goodwill in the other, and therefore the relationship will be a disappointment, and short.
Zure aims to foster endless relationships, and therefore we cannot offer fixed pricing.
Since we were in the habit of making all kinds of mistakes, what could one more hurt?
We were certain we could create an awesome SaaS product, so that’s what we did. We did kind of start it correctly, by finding 10 interested customers before coding, in the manner of the lean startup. Then we started coding, in 2014.
Zure at an escape room in 2015. We’ve been free since, but we had to leave our recyclable t-shirts there.
During the next year we coded with 1,5 developers, getting feedback from pilot customers, after which we got some paying customers.
At the same time, our consulting business was growing, and every developer we hired, went to build Azure solutions for our clients.
So it came to us as a huge surprise when we noticed that our own product needed sales people in addition to needing more developers. Who could’ve guessed?
It would not have been a problem (maybe), if our Azure consulting practice hadn’t grown by leaps and bounds at the same time. At the end of 2016 we were 19 people, with 2,5 people doing the product and the rest providing Azure software services. We needed more people at both ends.
In effect, our business models were cannibalizing each other.
After 2 years in product business, we finally realized that the software consulting was more for us at that time, so we axed our product at the end of 2016. Maybe if we focused more on the product earlier, it would have flown faster, and the decision might’ve been different, but since Azure’s growth vector was accelerating in 2016, our path was clear as well. I was sure of the call then, I’m even more sure now, but I guess that’s how hindsight works.
As an afterword, we’ve not sworn off building our own services, but currently it is clear there’s no space for that – for building a SaaS, the same kind of single-minded focus is required as with building a consultancy practice, and enabling such focus requires a full team, not just a couple of people.
Juval sacrificing Rami to the local spirits of Foosball, with the old form of our purpose on the wall. This here picture is an eternal reminder for Rami of a 10-0 loss.
It is tricky to think about company offering. It is kind of easy short-term, but wrong calls kill companies long-term.
You can
A) start offering everything somebody would pay for (bad idea)
B) only keep offering the things you’ve previously offered (bad idea)
C) constantly improve your offering by dropping old stuff and taking on new challenges (good idea)
To me it seems pretty clear why A is bad; it dilutes both your know-how and brand, making everything difficult from marketing to recruitment to sales. Herding cats cannot be easy.
In my mind, B is not as bad as A, but long-term it is not a viable strategy. Most companies run into issues with this, since evolving new offering is notoriously difficult and expensive, so it is easier to just keep on churning the same as yesterday. Nokia fell for this, as did Microsoft. Both still exist, Nokia as a shadow of what it was, and Microsoft as a better, evolved version.
Option C is hard since it is certain there will be mistakes. Nobody can predict the market. Remember the amount of GDPR service companies? Unfortunately (or fortunately, depending on where you are standing), C is the only viable strategy to go forward.
* Unless you are gearing to do an exit with your startup, in which case you totally should not think of option C, since you want to optimize your bottom line to maximize the value of your company, and evolving offering offers mostly costs short-term (1-2 years). Bit of a ramble there.
2016 Zafari was in Tallinn, racing cars and enjoying the hospitability of our Southern neighbours. Unfortunately, one of the cars did not make it.
In December 2016, we expanded our offering to encompass higher level consulting services, so called “Advisory”. Karl Ots from Microsoft’s Azure team joined us to create and build it. Zure Advisory advices on Azure-related matters that aren’t directly software development, like Azure governance, security, DevOps, API Management, and so forth.
After a year in November 2017, we tripled the size of the Advisory team with Okko Oulasvirta and Jaakko Nikko, and last year around summer we doubled it with Ari Ijäs, Aleksi Autere and Olli Kari.
Zure Advisory 2019 – Jaakko Nikko, Karl Ots, Okko Oulasvirta, Aleksi Autere, Ari Ijäs, Olli Kari
I guess the learning related to improving the company offering is this: you can fall in love with your team, but do not fall in love with your offering. Ramping up new offering is slow and frustrating, and therefore something that should be actively looked at before any issues with the market fit of the old offering. It is therefore like everything else, timing is key, and the only long-term answer is constant improvement.
Congratulations! You are at the end of this part. The 3rd part will be released within 2 weeks, but before that we’ll release some big news (to us) next week already – check us out again on Thursday 🙂 And for now, if you have nothing else to do, you can always go watch a movie, just like these guys below.
Pasi and Juval, watching you before watching a movie.
Thank you for reading! You can read the next part here.
Our newsletters contain stuff our crew is interested in: the articles we read, Azure news, Zure job opportunities, and so forth.
Please let us know what kind of content you are most interested about. Thank you!