In nearly 30 years of working in technical software I've probably learnt more about what not to do than what to do. In the very early stages of starting ORDITAL I came across the Lean Startup methodology which seemed to fill the gaps on what to do and nicely avoided the things that I instinctively knew not to do.
For me a couple of the key messages from this methodology was to focus on benefits to customers - if the customer doesn't really care about this feature then don't do it - and to treat everything as a learning opportunity and get through each learning cycle as quickly as possible.
I've already described elsewhere on this website the approach that was taken with the selection of Technology Partners. In particular the Salesforce platform was selected to minimize the amount of development that would be required and to allow rapid prototyping. But even with a platform as powerful as Salesforce we would still need a team to implement ORDITAL's unique capabilities on that platform.
Having decided on the Salesforce platform I set about finding an organization that I felt could work well with ORDITAL. Having worked with lots of cultures and locations around the world one of the things that was important to me was to find an organization that would not be afraid to challenge me and could contribute better ideas than I had. I didn't want to be telling everyone to drive over a cliff and have people blindly following me - speaking up and suggesting that we divert course for a better outcome is what I was after.
By January 2014 I had narrowed down the choice to several organizations that were obviously very competent Salesforce developers. I decided the best way to select someone was to run a pilot project for a month with each organization to see who could work best with ORDITAL. So I set each organization exactly the same challenge and worked with each organization over a month to see which of them understood the requirement the best, but more importantly which one pushed back the most and suggested better options. At the end of the pilot project I selected Krishna Bhatt and his team at Webuters Technologies as our development team and we've been working together for nearly two years as I write this article. The relationship has expanded over that time and continues to grow as ORDITAL grows.
Learning to work effectively
With me based in Melbourne, Australia, and Krishna and his team based in Nodia in Northern India the biggest challenge was always going to be getting my ideas communicated to the team. So I set about an old school approach of writing massive specification documents and in doing so ignoring some very vital lean startup methodologies. I thought I was charging off on the way to my Minimum Viable Product (MVP) when in reality I was creating cycles that were taking way too long to execute and there were no learnings going back into the ideas. After several months of doing this and getting frustrated with the lack of progress it was time to pivot.
The bottleneck in moving forward was entirely me. I was trying to define a massive thing with ideas that were partially formed and not validated. In the end I was confusing the team and frustrating everyone. By April 2014 I had instructed the team to do a lot of development, but was no closer to getting to our MVP - it was time to step back and re-evaluate everything.
I was still happy with our choice of Salesforce as the platform, and by April 2014 had come to commercial agreements on the best model to proceed with that platform. But realizing the vision was still some way off. The moment of clarity came when I realized that I had now been working with Salesforce long enough that I could configure it myself. This allowed me to build all of the objects and data models. But more importantly it allowed me to be very specific and quite granular on how to engage with Krishna and his team.
As a simple example, I might create an Asset object and link Photo objects to that Asset object. If the Asset record is deleted then I want all the Photo records linked to that Asset to also be deleted. So I create a task for Krishna and his team to implement a trigger in Salesforce to automatically ensure that this happens. So in May 2014 we moved to a more granular approach to development which made it very easy for me to communicate exactly what was required. Instead of a massive development specification we moved to lots of development tasks that we manage with JIRA. This more granular approach allows me to to change rapidly but also allows the team to understand more precisely what the requirement is. Tasks can range from 5 minutes to 5 days duration.
MVP in 6 weeks
Once we figured out this approach we were on our way. We had an operating MVP by early June 2014 and I was able to start meeting with clients and introducing our solution by the end of June 2014. By the end of July 2014 we were in contract negotiations with our first major client on one of the world's largest Oil & Gas projects and were in production by September 2014.
Selecting Salesforce and Webuters has been the right choice for ORDITAL and continues to show itself as the right choice. The challenge in all of this was to remain true to the Lean Startup principles and ensure that the learning cycles are measured in weeks not months.