Application development is rapidly changing so that mobile and Web-facing apps can meet the needs of outside customers. This means that IT has to adjust how it develops apps and also how it measures them for performance and for delivery of value to the end business. Here are 10 things IT should be doing NOW to make sure that its apps continue to deliver value in contexts (such as the Internet) that apps can no longer fully control and that can affect app performance.
1: Incorporate application development into business strategic planning
IT identifies application development projects within the overall framework of its own strategic plan. But it does not always ensure that major application development projects are linked into the corporate strategic plan, at least as objectives with forecasted results. When this is done, there is assurance that non-IT executives can see the vital applications work that is going on and that they understand and support how the work will contribute to the business.
2: Change the scope of responsibilities for application developers
The end user experience (EUE) is becoming so important that many shops are already expanding the responsibilities of application developers to include active testing for how end users experience the application. This work is being done as part of application unit testing. Moving some elements of QA into the application developer's bailiwick gives them a more holistic view of what their applications should deliver to the end business.
3: Think about apps as business services and not as coding projects
If your application is intended to deliver a suite of real-time financial analytics to finance, it should be considered as a "service" that finance ultimately assesses for completeness, accuracy, and timeliness. Accordingly, the metrics for application success should be evaluations from the end user unit (in this case, finance) on how well the application meets end business objectives like managing the health of a financial portfolio. This is a different set of metrics than application developers are accustomed to (uptime, speed of throughput, mean time to repair, etc). Instead, a business service focus forces technically oriented staff to keep their eyes on what the application delivers to the end business.
4: Use outside end user experience tools in testing
Testing an application within your own IT environment doesn't guarantee that an end user using it in a different geographical area over Internet will get the same results. In some areas, Internet traffic is slow, producing an unsatisfactory user experience with an application. Internet testing tool providers can help you identify communications weak spots outside the enterprise so you can understand and mitigate these vulnerabilities.
5: Stick with vendor best practices
Most hardware and software providers have presets in their products that optimize performance. There are also overrides to these default best practices that advanced users can activate. The recommendation is that application developers (unless they are highly experienced) stick with the presets on the software and hardware that their apps use. By doing so, they can avoid unforeseen performance issues that could arise when they move away from standard app development and performance practices on the platforms they are developing on.
6: Be judicious in how you employ "custom" code
If you are using a code generator for part or all of your app development and you need to customize code in certain areas of an app, strive to effect this customization within the customization "windows" that your code generator provides. This assures that the code you produce will continue to be supported by the code generator vendor. It also makes the tasks of later enhancing or maintaining the code less complex, because the customization is within the vendor's guidelines and best practices.
Although there is a plethora of automated application documentation tools, documentation continues to be one of the weakest areas of application development. Poor documentation makes it difficult to maintain or enhance applications at later dates. Most IT shops still spend more than 50 percent of their time on system and application maintenance. They need good documentation to carry out this work efficiently.
8: Standardize mobile devices
With many businesses now using BYOD (Bring Your Own Device) policies, it is imperative for corporate IT to standardize the list of mobile devices that employees can use within the enterprise. Nowhere is this standardization more important than in the development of applications for mobile devices. You simply can't code for them all. By standardizing devices and device configurations, you set the targets for your app development and can ensure better results.
9: Learn from your help desk
Many IT departments continue to treat their help desks as spots for rookie IT'ers. Help desks are viewed as necessary evils that take people away from app development. But when IT takes a more engaging approach toward the help desk, help desk experience can enhance application development. The help desk is a rich source of information on apps, such as which ones get the most trouble calls and which ones seldom get calls. If application developers analyze these help desk reports, they will likely uncover app design and coding pitfalls that can be avoided in the future. The end result is greater end user satisfaction and fewer trouble reports.
10: Evaluate application utility
IT regularly assesses hardware utilization (e.g., only 20 percent of a particular server is being used on a daily basis). It should extend this utilization analysis to applications. Some years ago, I was working on a dairy ration app with a system engineer. We discovered that only 20 percent of the app was being used by users — and that the other 80 percent of the app (the richest part!) was not being used at all. The problem was that the user interface into the more robust part of the app was too difficult for users to navigate, so they avoided it altogether. As a result, the company was losing a valuable competitive edge. If IT assessed its apps like it does its hardware, it could gain valuable insights into how to build and improve apps for a maximum return on effort.