Have you ever had to deal with the headache of forming a software team? Multiply it by 4 if you run a startup and need an App supporting Web, Android, and iOS at the same time. Why? Here I'm going to describe the unpleasant realities you will face when you plan to put an application team together!
What is a reliable software team?
First, we should have a definition of a "reliable team". Here is my definition of a reliable team:
Reliable Team: A team is reliable if, for each type of task, there are at least 3 people capable of doing it. So, if someone decides to leave, the team can tolerate it.
So, if you have a codebase in Kotlin for your Android apps, you need at least 3 Kotlin developers on your team. If you have a backend in Java, you need 3 Java developers on your team.
Consider a startup that is aiming to support Android, iOS, and the Web (obviously it has a backend too). To have a reliable team, you need to have 12 developers so you can have 3 developers per team (Backend, Web, Android, iOS).
To better describe the reliability of a team, I use a self-made index called Tolerability Index.
The Tolerability Index is the average understanding of a team of different parts of the code.
For a typical startup, if you want to target web, android, and iOS and have a reliable team you need 3 developers per platform as their stack is totally different. So you will need 12 developers (backend, web, android, ios) who can't be deployed in other teams when needed. Considering the above table, the Tolerability Index for such a team can be calculated like this:
Tolerability Index = AVERAGE(100%, 70%, 50%, 0%, 0%, 0%, 0%, 0%, ...) = 18%
The Magic of Cross-Platform Technologies
Are you as excited as I am now!? Can you believe it!? We have just turned a team of 12 developers with 18% tolerability into a team of 7 developers with a tolerability of 64%, isn't this just amazing!?
Consider reaching the tolerability of 64% with a non-cross-platform technology; Do the math for how many developers you would need!?
Case Study: Fx Files using Blazor
Functionland is a Canadian startup focused on decentralized storage, specifically providing BAS (Blockchain-Attached Storage) solutions. As one of their key products, they need to have a File Manager App so they can help people to bring their files onto the blockchain storage. This application should be available almost everywhere (Windows, macOS, Android, iOS, Web and ...). And we had a hard deadline for this, just 3 months!
To deliver on this monumental promise, we decided to use MAUI Blazor. It supports Windows, macOS, Android, iOS, and the Web (Linux on the way)! All logic is in C# and UI is in HTML/CSS. Although we have lots of code reusability opportunities, we are not restricted from using native platform-specific features of each platform.
The result was astonishing. If you want to see its elegant UI watch this brief video introducing the Fx Files app which is now available in the stores.
Intersting. But for achieving this, languages and platforms must be mature enough.