A lot has been said about the advantages (and disadvantages) of cross platform development. It's often said that you can achieve a high degree of code-sharing, that it allows consitency across every platform, however little is said about the human impact. This is what I would like to focus on.

I'm a big proponent of small teams. I believe they work far better, are more focused and can achieve a lot more than their sprawling counter parts. One disadvantage of small teams though is that you can only get so much done. This is fine in a calm workplace but when that mindset isn't present, it can amplify the stress that is felt, especially when trying to match the sprawling team.

A while ago I was part of a small team, three developers, one for each platform (Android, iOS, Web) and we where supported by a relatively large backend team. The cadence of our work could be describe as frantic and crazy, so it was very difficult to maintain that pace across each of the platform.

Naturally, neither of us wanted to be the one who slowed down the whole project on their platform. This meant that we wouldn't take adequate amount of time off, and the little we did take off meant another day behind of our counterparts.

We were consistently worried that the backend would evolve in an incompatible way for our platform, since the backend team might only ask the closest developer to them, due to this frantic pace. Sometimes this occured, a solution that worked for mobile didn't end up being viable on the web or vice-versa, this caused a lot of headaches and stress, and actually worked against us as we tried to keep this up.

The good news was though that in the background, while this was going on, we had started some additional work on trying out a cross platform solution. For us, that was React & React Native. As we were coming to the end of one of our projects, that we barely got out the door, we looked ahead and decided to start working in a cross platform manner. The difference was astounding.

For the first time in a long time on the project, we could breathe. Yes it was that frantic. What had been an every person for themselves type of endevour, quickly evolved to us being a united team. This brought all sorts of benefits, whether we were there or not, the project kept evolving across all platforms. This meant that we could finally get some much needed rest, and this is key, we wouldn't be coming back to catching up for two weeks, everything will have advanced while we were away.

The other benefit was that since we were now all working on the same platform, our integration with the backend team was a lot smoother. No longer did we have solutions that worked on one platform, but now we consistently had fully integrated solutions, regardless of who was in the vincinity of their team (their approach was still frantic)

A lot has been said about cross platform work, especially React Native. Is it fast enough, can you produce the best quality, etc etc. However little thought is placed on the humanity of cross platform work, especially in small teams. It allows you to pool your resources, to come together as one, to carve out a little haven in a vast ocean of craziness. Its impact shouldn't be underestimated.