A lot of people like to talk about how to design apps, myself included. Many times they talk about the different languages that they should be building in or they start going on about how they should build for mobile only. They look at their developers and have them come up with a strategy for creating apps. The truth is, most of the time these people have no idea what they are doing and often enough it’s about spouting the latest thing they heard online or read at Gartner or Forrester. All these people are really doing is making things way too difficult.
Building apps for the enterprise should not be that hard. You start with two basic tenets, focus on the user and build mobile first. Before we go into the main thrust of this post about building mobile first, let’s talk about designing the app. There are plenty of mistakes that you can make when designing an app and most of them stem from the box that you put yourself in before you start. If you already know the language you are going to use before you start designing your app you have already failed. If you decide to create your app without any user input you’re already heading for the loser column. If you don’t know what business need it is that you’re trying to fill, what are you building the app for anyway? You need to stop putting your developers in a locked box before they even get started.
So let’s go back to the basics we talked about in designing an app not a crapplication. You start building an app by partnering with the business and understanding the need. Why do they want this app, what do they want it to do. You begin your partnership with security at the same time. They get involved early to help guide the security stance as opposed to dictating it at the end. You bring users in and you focus on what they’re trying to actually do. If the app is a replacement for a current workflow, make sure you understand it and how the users actually perform the workflow. Fixing that without them is akin to creating a Rube Goldberg contraption when all they want to do is get from point A to point B. IT partners with all these people and looks to free their data. An API is created to the data sources needed and the developers build their apps so they plug into the API and can access the data needed given the user’s identity.
What does all of this have to do with mobile first? It’s important to realize that mobile first does not mean mobile only. Mobile first means that you design an app for mobile and then bring it back to the desktop. The beauty of mobile first is that it forces certain well-placed constraints on the developer. It is much harder to get a way with a crapplication on a mobile device. It becomes fairly obvious rather quickly how well the app will work. The user cannot help but see the UI and experience the UX of the app. It becomes very easy to get feedback rather quickly (which is why you have users involved in the first place). The developers use that feedback to refine the app until they hopefully have a well-tuned machine that they will continue to maintain. Mobile has also forced developers to be conscious of updates. Unlike most enterprise crapplications that were a build once and only maintain if there were a problem, mobile has created users who demand updates and want their app to improve over time. On-going development is a feature of the mobile first strategy.
The mobile first strategy means that when you have finished developing the app for mobile you must bring it to the desktop and give people the choice. Most apps developed for mobile are small and focused on enabling the users to get their job done. Unlike a monolithic crapplication that may have a thousand different features, an app focuses on what the user needs to do when they need to do it. This means the monolithic crapplication may actually becomes five or six apps, that put together give the same feature set. The difference in the focus means that they enable the user to do things faster, in a more concentrated way while providing a great UX. When you bring those same apps to the desktop, albeit with some UI changes (touch may not be enabled on the desktop), the user now has the choice of whether to use the monolithic crapplication, which may make sense to them, or they can drop down into the app that keeps them focused on the task at hand.
When one combines a focus on enabling the user, while partnering with the various resources to meet the business need with a mobile first development strategy they are building successful apps that the enterprise user wants to use. It is a great formula for successful app development within the enterprise.