The Next 100 Days – from MVP to Platform
About 100 days have now passed since we took over yallo swype from Axelra. The product and it’s launch to market is well described in the blog article by Axelra CEO Peach Zwyssig.
So much has happened since then that I feel I could write a book. But while waiting for that let’s go through some highlights.
Some developer basics to warm-up
The technology stack with serverless AWS backend has been very easy to work with form the start. Moreover, having everything in CloudFormation templates and automatic deployment pipelines makes it really easy to deploy SW to different environments. It also has been good to have a cross-platform mobile app with one React Native codebase.
Some additions we did on top of this to boost things:
- Forced update feature to lift users to most recent app version if needed.
- Test automation with Robot Framework to be able to regression test quickly end-to-end.
- AWS Lambda Layers for code sharing, this helped us to reduce size of the backend codebase a lot.
- Remote configuration of promotional UI strings, so that product owners can run campaigns and inform users of events without need for app releases.
- Service Virtualization layer that we custom-built to simulate the SOAP interfaces we depend on.
These are just examples, there are numerous such improvements for making the life easier for the developers and product owners. Deeper post on this coming maybe later.
Behavior Driven Development – Perfect for implementing pricing promotion
Behavior Driven Development (BDD) is in short, a way of writing requirements as test automation cases. The benefit comes largely from the human readable format that clearly states how system should behave, and is understandable to product owners, developers and testers.
The usefulness is boosted to next level by the fact that these scenario definitions are also test automation cases that can be executed against the whole system. Once the initial keywords are implemented, making of new test cases is trivial.
Below is an actual unedited example from the test suite used for May 2020 promotion. It shows how a swype user gets free month first, and then renewal with new price of CHF 19.50 as he is migrated to the new pricing plan launched at 12th of May (old price was CHF 39.- per month)
The tool used to run above test is Robot Framework, and with our custom libraries and keywords it can control the backend and AWS databases, time travel the billing system and update the pricing catalogue on the fly. It can also navigate the whole UI of the mobile client. With this system level solution, we got confidence that the new pricing works for both old and new customers in all scenarios we can think of.
In the end we could do the whole exercise (mobile apps, backend changes, new pricing plans, Zendesk changes + test automation) in just 2 weeks! This is quite impressive as we did not only change the prices, but actually enabled individual per-subscription pricing in a system that was previously assuming fixed prices of the products.
Other new features for end users
Since the go-live in December 10th probably the most important addition for end users was the number transfer feature (ONP – Operator Number Porting). After weeks of UX design, architecture design, implementation, integration and testing users are now able to easily port-in their number from another operator to swype effortlessly using the app only. The process is really simple and is nicely shown in the test automation video below.
Customer also gets digitally generated documentation about the number transfer order (PoA document in PDF format), and a push notification when the transfer completes.
Above mentioned Push notifications where another major addition themselves, and they are implemented both for targeting larger user groups and for reaching out to single user.
Customer support & operations
We have also been working weekly with customer support to help in troubleshooting if necessary. But we have also proactively implemented new features such as Zendesk application for seeing number transfer status real-time.
We have also both used AWS monitoring views and enabled external monitoring tools. This is both for getting alerts if something would happen to break, but also for having performance trends to see if everything scales as planned. So far, the infrastructure has worked well, but we have optimized some things proactively to improve end user experience.
Great software is implemented by great teams. We did a very successful knowledge transfer with our “brother” company Axelra and made many memorable visits to Switzerland to meet our customers at Sunrise and also all other stakeholders. Special thanks to Peach and the whole Axelra team for the hospitability!
These visits served as great technical training but also as a cultural experience; We will not easily forget seeing Santa Claus driving the Christmas tram at downtown Zürich or just laughing our asses off because dinner costs four times what you’d think is reasonable.
We also got to appreciate the swype product as end users, as we were happily using swype daily with unlimited data for only CHF 2.- per day! (Current price is even better CHF 1.50 per day). The easiness of swyping in at the airport cannot be even compared to the pain of trying to get a connection “manually” from kiosks when swype had not been launched yet. Always good to see your own Software in action firsthand!
We also had to set up our own office at Tampere, Finland. This included many practicalities but also building the culture for a brand-new company. This will be an ongoing journey, but we will for sure keep supporting the Il Posto pizzeria where you get dining quality with lunch prices. During the long remote work period with COVID-19 we have tried to avoid boredom for e.g. by using varied tools for the daily calls. It has been also good practice to take some of the meetings outside – virtual backgrounds are never match to what people can share from the nature.
What is in for the next 100 days?
As the swype user base is steadily growing we’ll keep improving the product itself – we soon have 1000 JIRA tickets done! We’ll also be improving our toolchain, test automation, pipelines and everything to keep the product scalable and codebase easy to work with.
We are also planning to implement similar MVNO solutions with other customers – the architecture is now battle tested and ready to become a true platform.
We of course also need more people in the team! Drop me a message in LinkedIn if you’d like to join us.
Technical Director, Moflix Group