How it all began
So when we got our HoloLens as one of the first companies in Germany back in June 2016, our first steps were very cautious. We were actually just tinkering around with it: Trying out Hololens app development here, writing some „Hello holographic world“ there. The attention from outside was still enormous from the start though: The biggest computer magazine in Germany „c’t“ borrowed the lens from us to write an article about it. We showed the lens on the NEXT conference in fall 2016 in Hamburg and even had a short appearance in German television.
But something was missing. We needed a project. A real project with real budget. In those days you couldn`t buy the HoloLens without application at Microsoft, so it was more difficult to find an interested company. In my opinion another point was a basic skepticism about new technology in general.
This is where we got the opportunity to apply to become a business partner of Microsoft for Holographic applications with HoloLens. To show whether we could really cope with it, we would have to find a customer very quickly and build an app within three months. This app would have to convince a jury at Microsoft that we were actually able to build a high class HoloLens app. There was the potential to fail. We found a customer that was very happy to develop an app with us. We also found some colleagues willing to write the app, albeit distributed over 5 locations within three countries. As an agile coach I normally would have said: No go. You can’t seriously develop an app with the team spread across Europe and everybody having other projects besides. I am still critical about the decision, but I underestimated the power of HoloLens and the enthusiasm it awakes. So looking back: We could have achieved a lot better if we had all been at one single location, at least part time. But anyway it’s amazing what still was achieved within the short amount of time. But there was still the possibility that „something still would go“. This is what this company is famous for: Doing the unlikely, still turning things to good against all the odds. So I decided to jump on the train and try to do the impossible. It was a good portion of madness which was intriguing for me on the other hand. And it all went well in the end.
Doing it the agile way
What were the key factors to success? I would say as always that there is not just one key factor to success or failure – it’s always a combination of factors that let a project fail or – as in this case – lead to a great application in the end.
First of all: We decided to do it the agile way – here and there accompanied by some resistance. We didn’t do it the „clean“ Scrum way. We skipped those parts that we thought could be omitted for this short time project:
- Estimation: Since we had a fixed end date and were supposed to either die or survive there we didn’t have the need to think about whether to implement this or that feature and wasting time by proper estimates. The workflow we wanted to support with the app was crystal clear, so it was only a decision of which part to do for extra polish and which other to omit. This was decided on a weekly basis in one-week-sprints.
- Retrospective: It hurt that we skipped that. But with a team not only spread around the globe but also working on different times for the project it just didn’t make any sense. You couldn’t have tracked progress from things coming out of the retrospective because people working for the project very likely changed (with a few exceptions).
- Dailies: Again, no constant staff was around so it didn’t make much sense to do a daily meeting when staff changes all the time. The only persons more less constantly working on the project were sitting side by side anyway.
But we did the weekly reviews, which helped a lot. Yes, it exerted some pressure on the team: We had a weekly status call with our Microsoft contact who was sitting in the jury, plus we had appointments together with our customer. Those weren’t meant as control meetings to see what we had achieved so far but instead enabled the team to get direct feedback on what was good and what was misunderstood. At any rate those regular meetings forced us to get things done; you always feel awkward when the progress you made within one week turns out to be near zero.
User centered approach
Speaking of customer feedback: We really demanded early feedback. Early meant that not even a single line of code was written and we already claimed feedback. This was done in a user centric approach implementing the „Wizard Of Oz“ method: After the overall workflow seemed to be clear to all parties we simulated the app with cardboards, pencils and sticky notes. You can read a lot on paper prototyping but it’s always amazing to really experience it: The test persons accepted this media instead of the „real“ app after a short time. This way we got early feedback on ideas working out fine as well as things we had forgotten or simply misunderstood. The customer could tell us directly where we headed into a wrong direction which was invaluable. This way we could change and adapt without having to rewrite major parts of code.
Later on we also used it to get feedback upon the quality of our implementation. But before we started all this we made a deep analysis on the real customer’s needs that the app probably would try to address. Together with these needs we picked out an example of the daily work of the customer we wanted to facilitate. We pinned down the resulting workflow with a story map and double checked it with the customer over and over again.
This helped us later while programming to keep focus and not getting lost in a sea of unnecessary add-ons. It was a means to stay focused on the scope, not forget any vital parts of the workflow and do the things that would get us a step further. We used it to re-prioritize tasks and reconsider business value of each task from week to week.
Doing it in phases
For the short amount of time Microsoft suggested different phases throughout the project along with some recommendations about the length of each phase which turned out to be very valuable.
The different phases were these:
Concept/planning -> prototypes & preproduction -> production -> polish -> QA & delivery
Except for production where we assumed 4 sprints à 1 week we planned about 2 weeks for each phase. This turned out to be quite valuable as we knew very well when we would finally have to get on to the next phase and see if we accumulated some risks if we weren’t able to finish all necessary things in another phase. We tracked all phases as versions in Jira which we used as backlog and sprint board for a distributed team. Of course we didn’t manage to get all things done from each phase, but then again we were able to scope down things or re-prioritize accordingly.
The first phase was more less: Learning to develop for HoloLens, set up Unity, emulator and everything else needed for development as well as project tracking (e.g. setting up Jira/Confluence, getting a bitbucket-repository for the code). The next phase „prototyping“ was filled with tasks examining how to do this and that with Unity and the HoloToolkit and find out how reusable assets could be created. It ended with our first primitive widget showing some advice to the user as well as all things we needed to know to
- Support audio (spoken advice as well as speech recognition)
- Gaze direction to give the user a hint where to look next
- Binding advice panels to objects or let them float around while following the head smoothly
Then we got into production: Building more widgets and setting them all together. When we had our first reusable widgets we really experienced development on steroids: We suddenly were able to get things done quite quickly. Within two weeks we had the whole workflow of the repair covered (and double checked with the customer). We then had two more weeks to address the more complicated widgets holding animations and stuff we honestly never had done before. It was good to have this time reserved. Looking back on the story map we did before, we could see that we had all things necessary done by that time. We could be sure that we had not forgotten vital parts and could focus on the polishing of those parts that still looked awkward.
Building the whole thing in phases helped a lot from my point of view. This way we were able to reserve some time. We agreed upon some sort of feature freeze at the beginning of December. We wanted to be sure that everybody will be free for the Christmas holidays. Of course we had a busy time before Christmas doing the last polishing (at least I thought so), but then we could go on holidays without a bad feeling.
The last madness
Of course things turned out differently than we had planned. While the majority of the team went on holidays there were still some busy heads: One cutting a video for the show – and this man did an absolutely amazing job! The other didn’t have the time to dig deep into HoloLens development before and did so around Christmas. When it came to the last week before the presentation this madman started developing. We found someone to pimp the 3D model we had used before. This meant to change the app on quite a few places. Of course the new 3D model looked so much cooler than the old one. So skipping all wisdom and experience and part of the team including myself agreed to have some more madmen work during the weekend. We always had the old version as a fallback in case something should go wrong though. Those crazy guys finally managed to turn the app upside down. It was a blast. When we finally presented the new app to the Microsoft jury in London they were deeply impressed.
The spirit behind HoloLens
But it wasn’t only for technical capabilities of the app. It was the whole ecstasy of the team when we finally got together which influenced the team. This was one of my major takeaways: For this case we got the badge from the jury. You guys really rocked and we could feel your passion. We enjoyed that very much. It’s the greatest thing I ever heard. But this is what really kicked in for a major success: Passion. Everybody going crazy for this technology and willing to help out. This passion, this happiness, joy, FUN – really crossed borders and made the impossible possible. In this case the process you use to develop the app stands back behind the power of the team of course. Anyway, I believe that without regular delivery, frequent feedback and working software even this amount of passion wouldn’t have been enough to finally succeed.
How did the story turn out? With a very happy end. Well – we finally made it. We got the feedback from the Microsoft jury that we’re the first company in Germany/Austria/Switzerland who made it into the partner program. This makes us glad and proud. And you should live this moment, as this kind of success isn’t the thing you experience every week. It will have to supercharge our battery to cope with the things yet to come. We’re looking into the future with curiosity, happiness and – passion!
As I’m writing these last sentences I am looking back with a bit of sadness, but overlaid by happiness. Although I quit the company I’m sure we’ll keep in touch – the team and me – and see what’s up together in future. The team consists of Ines Lindner, Michael Sattler, Patrick Winter, Fredrik Gundelsweiler, Elias Geisseler, Steffen Walter and myself.
My takeaway is:
- HoloLens rocks the world. The time for mixed reality is NOW
- When it comes down to a very narrow time scope agile is the only possible way (although no guarantee for success).
- Without passion, all you do is just a boring pile of projects. Find each opportunity to develop with passion and stick together with people as passionate as you – this enables you to move the world.