Picking up momentum
So here I am, picking up the thread from where we left off. We are still working with the outsourced Australian company (who Ricky is now working for). I engage with them to get our very specific MVP out which is going to be v3 of the idea. Ricky and I both have a much better technical understanding of what is going on now. Outsourcing overseas once again becomes an option to get some more velocity within the budget.
- Ricky provides the technical oversight from web development point of view
- I provide oversight from the SharePoint technical point of view
- And I project manage and make sure everyone stays on track
We have a simple spec and we get the MVP out. Surprisingly quickly this time, and it works exactly as we expect. Further, we go on and onboard 1 team member in India, 1 in Egypt and begin to onboard 3 in South America. We keep on building past MVP with the intent to catchup with feature parity for v2 which we intend to replace. The going is slow and steady, but we are ticking along while I spend time getting the developments business up and established.
Stepping back into Property Development Business
I get back into the day to day of setting up and running the property development business. I spend a good amount of time each day trawling through realestate.com.au looking for opportunities we can leverage. It’s a slow process finding the right property opportunities. On the surface, a lot of things look like they have the potential to be a good project. However, the only way to find out the chance of that potential being a reality is by investing time and effort into Due Diligence.
Upon reflection, this is very much what happens as an entrepreneur as well. The world is full of opportunities and rarely are you certain about the one that has the best chance of getting the outcomes you want in the end.
Taking stock of the situation, we have a working solution which covers 80% of all of the needs of the development business. I am essentially the customer so I have a very specific understanding of the needs of the business. Ricky wants to take a 6 month working vacation and is going to work 100% of his time for us! Other than this, it’s pretty uneventful, everything is just ticking along.
I have been in contact with the previous client since we started working on v3. I am doing some disconnected consulting work for them in regards to the analytics knowledge. From the anecdotal evidence I have received, the software seems to be going down the path I’d projected it would. Things are getting less flexible. The team is getting smaller and more frustrated. It doesn’t look very likely that they are going to get the outcome that they wanted. At the same time, they are seeking my help as they have a property development business as well and are interested in what we are doing.
Growing business requirements
Could we win the old client back?
Turns out YES, we could. They come back and see what we are doing. We have pivoted from the target market we were shooting for to focus on property development (while still maintaining the flexibility we want for the long term roadmap). They have troubles with the same. Seeing the opportunity, they offer to partner with us, again. At the same time, committing to injecting further capital for us to expand our development team so we can move faster.
Another key client, more capital, next move now is to find new team members.
Over the last little while, Ricky has been out of the country and I have not been focusing on the software as much I should. The remote team has dwindled so has their quality of work. We are just down to the resource in Egypt and Ricky overseas. The development speed is definitely suffering.
I have been planning for this a little bit. In my previous company, even though I had a combative relationship with the dev team at times, I actually kept pretty good relationships with them after I left. A big chunk of the team were let go only a little while after I left. I stayed in contact with one in particular. We have been in contact as he is working on a project at his new company that I have been involved with. He is really talented technically so I pick his brain about what we do as well. I have been chatting with Tyler for a few months. He has been helping us out with some technical expertise. I reckon now is the time for him to move from helping out on the side to potentially becoming our Technical Lead.
Addition of a Key member in the team
So I go into recruiting mode. I know he isn’t particularly happy in his job. I want to make sure it is a good fit and that he thinks he can achieve what we wants to with the product. He has been helping us out for a few months. He definitely has shown his tech skills. We have had our share of difficult conversations which are usually generated when you get two blunt and opinionated people trying to achieve something together. However, I really appreciate that he isn’t (and still isn’t) just a Yes man who wants to avoid conflict, rather come up with the best outcome.
I was actually reminded by LinkedIn just last week that it has been 4 years since he started. Time flies…
We now have a Technical Lead and 2 clients who are on the same page. We are moving in the right direction. The next 9 months is pretty uneventful from a story point of view (pun intended). We install the new version back into the previous client. We keep moving forward with identifying new requirements for both clients, knocking over the features, delivering them, and keeping them happy.
Oh wait, did I speak too soon?
It happens again, performance issues. Nowhere near as bad as the first time when we were dead in the water, but enough to make me really re-evaluate the rationale behind continuing to support SharePoint. The client who had come back has been happily using the system for the 9 months, and over that time they have created about 15k items within a particular area, which, from a data point of view is not a meaningful amount of records, but from a SharePoint point of view is 3 times the recommendation as to how big a list should get. We have things in place to get around these limitations. We provide a band-aid fix for the client to get over their immediate problems. Although, it starts to show that we are boxing ourselves into a corner.
Tyler had ALWAYS questioned the use of SharePoint and I had always been confident that we were keeping costs low to make sure we were accessible to micro to small businesses. Looking at how things were moving, even Microsoft didn’t seem to back the SharePoint strategy anymore.
Revisiting strategy from Tech Point of View
We had talked about the idea of supporting SQL for our medium to large customers to remove any limitations that SharePoint would shackle us with, so it was time to revisit that conversation again. Tyler has always been a big proponent of us ONLY supporting SQL, which I am still quite resistant to as we have invested so much into the platform already. Telling the three partners that my suggestion is that we are going to have to spend 3 months rewriting the data backend to SQL to make it scalable for the future, isn’t the nicest conversation. It isn’t an easy sell either. But in the end, it seems to be the only logical way forward. We agree and get onto doing it.
From the outset, one of the things that both Tyler and I have found is that, Azure SQL has, at almost every turn, been a product that is a pleasure to use. Instead of walking around the corner and finding another gotcha, you walk around the corner and find another valuable feature that makes something that is really powerful and has the potential to be complex, actually really simple. This experience with Azure SQL very quickly changes my backwards compatibility opinion. It is no longer about ensuring that we don’t leave the micro to small businesses behind. It is about how do we empower them with all of these features that weren’t previously possible.
Paying off the Technical Debt
The 3 months feels like an eternity. When you move from delivering features each day getting a pat on the back to working on fundamental architecture technical debt, the only outcome you get is that the system will now work how it was expected to work at the start. This can make you feel pretty demoralising. Yet, we make it through. The difference between the two from a performance point of view is like comparing a F1 sports car to a push bike. A good example reference explaining the system’s performance is that a reported long query time on the previous version would go up to 12 seconds in the worst case scenario. The same data would come back in 50ms under the same conditions in the SQL version.
“Learning: Scalability is key”
We have crushed the technical debt and we are back on track!
Or are we?
Client evaluating other providers
Within a month of this, I get called into the office of the new partner and am told that we are moving too slowly again and that they are evaluating other options. I highlight that we had told them that to get more velocity we need more resources and to get more resources we need more funding, which they promptly tell us isn’t an option.
Background: They start working on a separate project about 6 months before. It doesn’t have any overlap with ours. Although, it turns out that they have been tasked with coming up with a solution to get the velocity that is being requested and they are looking at no code platforms to get there.
I am brought into a working group to help evaluate these other options. Their sales pitches are very good. I am sent across the Sales deck and a test login for OutSystems. I sit down at my desk and start to play with it to suddenly have a feeling of dread….
“This is what we are trying to build and these guys have done it. They promise the speed of development we are looking for as well as years of robustness. We are dead in the water.”
Realising what makes us different
I talk to my team and tell them that we are done. Someone has already done it. I just haven’t found them but look at what they have and what it can do – we may as well give up. This isn’t the first time I have this feeling. I have the same thoughts when I hear about Common Data Service from Microsoft because it looks like it has blown us out of the water.
When I dig deeper, both of them drop the ball in the details. They can do really simple things easily, but block you from actually doing the complicated things. They have the marketing sizzle but can’t actually achieve what we as a company are shooting for.
I go back and give the feedback about this and am told that they have been assured that all of my concerns are not a problem. For the next few weeks, we do this political dance to give the perception of a fair and balanced evaluation. In that time, it becomes very clear to me what our goal is, what we are trying to build. There is no way we can achieve that and go down the path with these products.
They are trying to build systems as quickly as possible and they want developers (technical people) to do that.
On the contrary, we are trying to empower an organisation to take responsibility of their own systems and co-design and build them themselves with some support from the technical team.
They want a tool for developers to write 1’s and 0’s faster. We want a tool to change the way systems are perceived within organisations; that non-technical people can also be the driving force behind them with the necessary training and support of a technical team.
Deciding what we want
Neither of us are willing to move from the stand we have taken. To be honest, it is a turning point in our business and it can easily be seen as:
Failure to execute on the dream
Inability to make it work with a partner and client
A pivoting point where we choose to go against the consensus
Mitchell being stubborn and not playing well with others
For me, it is a moment of clarity. I see exactly who we are building this for and it isn’t developers. I see that person in the organisation who isn’t on the tech team, but understands the problem better than anyone else and has the desire to actually solve it. Without our tool, they end up making their own Excel spreadsheet or getting a SaaS tool and making their own system which grows and becomes an integral part of the business only to fall apart when that person leaves or when the organisation realises that it is a HUGE risk that needs to be remedied. With our tool, they can build the same solution within the boundaries of the organisation. They can build with the help and support of the tech team rather than in spite of their help.
Rethinking the Partnership
There is only one way for us to go, and we are going to build THAT VISION with or without that partner. I sit down over a steak with the partner who has started the evaluation. I tell him that I know what we are doing looks similar, but the people we want to reach are not going to be reached doing it the way that is being suggested. I go on to further tell him that not reaching the right people is not an acceptable outcome for me and on this note, it is better that we part ways. We do exactly that, we part ways.
Clearly articulating what we want to achieve
This time where we are at, is different:
- we have a problem we want to solve and we know exactly who we are targeting to solve it
- we still have 1 client who is working with us towards achieving that goal
- our solution is quite fleshed out and we have just worked out scalability
It is a really weird meeting and a similar feeling that follows. Disappointing that we aren’t in it together anymore but I feel unshackled from the expectations that has held me back in the past. We have a team that I know can deliver it. We have partners that are 100% aligned and trust each other. We have allowed ourselves to dream in the process that if we were to start from scratch, what would it look like?
It comes down to this.
1. We need to be able to model, capture, and display the complex data that is important to the organisation
2. We need to be able to build, visualise, and execute workflows that involves that data
3. We need to be able to provide insights from that data so we can monitor the health of the organisation
4. The organisation should be 100% in control of it and their data. No hiding behind black boxes and tech jargons.
If we can achieve this, maybe we can make our dent in the world.