Tuesday, March 25, 2014

Herding Cats Pishtosh - try herding mobile developers

With the advent of the AppStore model of development something changed in how software was built. Apple would earn 30% from any app built so Apple spent considerable investments into making it very easy to develop apps (The coding is still the same but the ecosystem overheads were taken care of by the Appstore model, Xcode, the UI and other frameworks). To the extent that it was actually possible for 1 designer and 1 developer to build a real app. This is very different from most app development in the real world where the work needs to be split across a larger team and hence you have to have specialized roles like Developer, Project Manager, Business Analyst, Architect, BPR, QA, Devops etc.
Now with the popularity of Mobile Consumer Apps , Enterprises have taken to creating Mobile Enterprise Apps in a large way but here we run into a few differences from the consumer world
1) Enterprise Apps need to have approved budgets so have to go through an approval process
2) Enterprises are risk averse hence they will not just throw away their existing systems. Rather the mobile app has to work with existing backends even if the backends are not developed for Mobile. (Related problems a generation of IT managers who have come into the field after the advent of Web Based apps have no idea what is Client Server Programming. They tend to think of Mobile as just another UI fronted instead of a full fledged computer. They still want to do all their business logic in Backend Java code)
3) Enterprises have hierarchy and politics. You have to build consensus and have people go along not just because you have the best technical solution but also by showing what you are doing is going to help their own mandates (and sometimes they won't and you will face resistance)

Into this environment imagine hiring a team of iOS developers who have been used to working alone and working at light speed and try to execute an Enterprise Mobility project.


Testing? Automation? Automated Builds? Automatic Code Analysis?

It all exists but is not as mature as in the Java or .Net world.

Herding cats would be far easier.