Every time I flip through all of the various applications installed on my smartphone, I can't help but wonder how the enterprise development community missed out on the boat in which the mobile development movement is currently sailing.
Mobile apps are plethoric. The various Android and Apple app stores are just bursting with them. Compare that with the harrowing tales of failed enterprise application projects that floundered four fifths of the way through the development process, causing needless cost and consternations in IT departments across the board, and failing to produce any actual application of substance.
Surely there are lessons the enterprise Java community could learn from the mobile development movement. Here are a few suggestions:
1. Concentrate on core functionality
Mobile applications tend to focus on the most basic parts of an application, concentrating on the facilities that people will actually use. Mobile applications don’t try to deliver every piece of functionality under the sun. They deliver the key features 80% of the users will use 80% of the time. Those other twenty percents can wait for future releases, or even more likely, will fall victim to the YAGNI principle.
2. Get it out
Software that remains splashing around in the sandbox server doesn't serve anyone. Get software out, get it into the hands of users, and get it out sooner rather than later. If that means scaling back a bit on the functional requirements, then so be it. The sooner your software is in the hands of the user, the sooner your users will see tangible results, and the sooner the development team will get feedback. This becomes a loopback cycle that results in more releases of increasing quality in the near future.
3. Don't make your users RTFM
4. Monitor your user’s usage patterns
Tracking tools can do amazing things, and monitoring your user’s activity will provide heaps of information with regards to how an application is being used, and more importantly, which features are not being used. This will allow you to update your applications intelligently, improving upon weak points, enhancing the application's strengths, and discarding functionality that isn't providing value.
5. Update often
Nobody likes that annoying little message that tells you a new update is available, but there is something to be said for development teams that respond quickly to user needs while using updates to demonstrate to them that progress that is being made as far as functionality and utility is concerned. Update often and let your users know that the development team is serious about continuous application improvement.
6. Embrace technologies that make application development easier
One of the most distinctive features of the mobile development community is their enthusiasm for embracing cloud-based technologies. There seems to be a clear recognition that when time is at a premium, sourcing infrastructure and other services out to cloud providers who deliver pre-packaged, comprehensive solutions is not only a money saver, but it’s a time saver as well. Enterprise developers need to continue to look towards the cloud to find solutions to problems that are gnawing at their timelines.
Sure, there’s a reality that enterprise applications are going to be more complicated than many mobile applications, and highly transactional systems can’t always be compared to a tiny little iPhone app that is downloaded for 99 cents from the app store. But despite the obvious differences between enterprise and mobile device development, there are still some great lessons that can be learned from the work being done by the mobile development community.