In Part 1 of APMdigest's exclusive interview, John Jeremiah, Technology Evangelist for HP's Software Research Group, talks about how to succeed in the current app development environment.
APM: HP seems to be making a lot of news in the application developer space, particularly the mobile developer space. What's driving the push?
JJ: At the HP Discover event in June, our CEO, Meg Whitman, discussed HP's four transformative areas that cover the whole company, including hardware, software and services. HP's push into the developer space is tied to several of these areas.
The first area that links to developers is empowering the data-driven organization, as companies are collecting an unprecedented amount of information about their customers, and the way their products and services are used. Data helps businesses make better decisions, and in the app delivery space it helps application development teams deliver higher-quality applications faster. Data also enables application development teams themselves to be more productive, as well as the enterprise end-users for whom they're designing new applications.
Second, enabling workplace productivity is about delivering world-class service to end users on their device of choice, often mobile. To do this, development teams have to be able to "know" what end users want, when they want it and how they want it. Then, developers have to be able to quickly deliver high quality solutions to keep their end-user community happy and satisfied.
APM: What do organizations need to do to be successful in the current app development environment?
JJ: Organizations face two seemingly conflicting challenges. They must roll-out new applications and functionality at speeds never seen before, but these applications must also be extremely reliable and high-quality, particularly from an end-user performance perspective.
Today, brands practically live and die by their mobile app store rankings. Customers who have a bad experience with a mobile app are probably not going to give it a second chance, and will move on to a competitor quickly. In addition, customers will not hesitate to post negative reviews and complaints on social media sites. Similarly, employees using an app to do their job will be less productive if the app is clumsy and time-consuming. Therefore it is imperative that organizations select the right tools and methodologies to manage the balance between speed and quality.
APM: What are the right tools and methodologies?
JJ: The best approach for a given development project really depends on the business drivers, application complexity and business risk tolerance. For mobile apps, speed of delivery and frequent updates are expected, typically agile and DevOps are the norm with substantial automation (testing, deployment, etc.).
On the other hand, updates to large and very complex core business systems (ERP, financial, etc) often don't require speed, but rather require exceptionally low risk of errors and defects. In these cases, often a more traditional (waterfall type) approach is suitable.
The "right" tools is a function of several factors: the team's skill set, the need for distributed collaboration and integration into the existing tool ecosystem.
APM: What makes a quality app? What are the key factors in the "quality" equation?
JJ: When people think of app quality, they most often think in terms of it being functional – working as it is supposed to – and delivering a slick, easy experience for end users. A quality app should be able to work flawlessly in both good and bad network conditions, which frequently change. Development teams need to design for fluid network situations, and not assume 4G or WiFi.
But there are more components to quality than functional and end-user performance – there is also security; we call this the "quality trifecta". A quality app should also be trustworthy from a security perspective. In the race to market for new applications, developers often fall into the trap of re-using existing software components that may defective without their knowing. With hackers using increasingly sophisticated methods, this can leave organizations with huge blind spots. This can be particularly harmful in the mobile app arena, since mobile app transactions often tie directly to back-end systems. A security hole in a mobile app can seriously compromise a company's IT infrastructure.
APM: What are the key points that the business side of companies does not realize about app development, but really should know?
JJ: Industry leaders are rolling out new apps and capabilities at a mind-boggling pace. For example, the Facebook mobile app is updated and refreshed every two weeks like clockwork. This is the new normal, and Facebook and others are setting expectation levels for end users regarding both the frequency and quality of apps. Users expect apps to be constantly fixed and updated, and other companies need to get on board.
Unfortunately, not all companies have the resources of Facebook, that allow them to achieve these seemingly dichotomous ends – extremely fast roll-out of high quality software. But whether we like it or not, software is what sets companies apart today, and business executives know this and are relentlessly focused on it. There needs to be a mindset shift, from "project" to "product". Rather than funding a "project" for a new mobile app, businesses need to shift their mindset to consider how to fund the life of the "product". This allows the product team to accelerate their pace of delivery, based on their available resources.
APM: What is the "shift left" movement in testing?
JJ: Traditionally, the application lifecycle followed a sequential model – ideation, development, testing and finally, production. It used to appear that testers assumed the bulk of responsibility for ensuring an application worked as it was supposed to, before it moved to the production phase. Developers would essentially throw their newly created application "over the wall" to testers — and later IT ops — and consider their job done. "I've created the app, now it's your job to make sure it works" was a common line of developer thinking.
But today, developers are assuming a greater role in testing, ensuring that applications meet basic functional requirements before they move any further down the funnel towards testing, and ultimately production. In addition, testing teams are getting involved earlier in the cycle so that quality checks are not left to the end.
This is known as the "shift left" movement, and its goal is to prevent code defects from getting too baked into applications as they progress through the lifecycle. The further along an application moves toward production, the more embedded defects can become, and the more costly and time-consuming they are to un-do. In fact, when you look at DevOps, the concept of keeping the application always "production ready" is really a statement about the entire team embracing quality at all stages.
APM: What are some of the most common challenges developers face as they start to shift left to this new style of delivery?
JJ: Even with their newly added responsibilities, the world of agile and DevOps demands development teams work within shortened cycles. It is a race against time. In addition, where testers are concerned, more application roll-outs also mean more testing. Testers simply don't have time to get bogged down in manual tasks like provisioning testing platforms, tweaking testing environments and executing multiple rounds of repetitive tests. Fortunately, tools exist today to bring greater testing automation to developers, and integrate right into existing developer environments and frameworks. Further downstream, automation tools for testers enable them to test more applications, faster.
As the data generated by organizations grows, APM tools are now required to do a lot more than basic monitoring of metrics. Modern data is often raw and unstructured and requires more advanced methods of analysis. The tools must help dig deep into this data for both forensic analysis and predictive analysis. To extract more accurate and cheaper insights, modern APM tools use Big Data techniques to store, access, and analyze the multi-dimensional data ...
Modern enterprises are generating data at an unprecedented rate but aren't taking advantage of all the data available to them in order to drive real-time, actionable insights. According to a recent study commissioned by Actian, more than half of enterprises today are unable to efficiently manage nor effectively use data to drive decision-making ...
According to a study by Forrester Research, an enhanced UX design can increase the conversion rate by 400%. If UX has become the ultimate arbiter in determining the success or failure of a product or service, let us first understand what UX is all about ...
The requirements of an APM tool are now much more complex than they've ever been. Not only do they need to trace a user transaction across numerous microservices on the same system, but they also need to happen pretty fast ...
Performance monitoring is an old problem. As technology has advanced, we've had to evolve how we monitor applications. Initially, performance monitoring largely involved sending ICMP messages to start troubleshooting a down or slow application. Applications have gotten much more complex, so this is no longer enough. Now we need to know not just whether an application is broken, but why it broke. So APM has had to evolve over the years for us to get there. But how did this evolution take place, and what happens next? Let's find out ...
There are some IT organizations that are using DevOps methodology but are wary of getting bogged down in ITSM procedures. But without at least some ITSM controls in place, organizations lose their focus on systematic customer engagement, making it harder for them to scale ...
If you have deployed a Java application in production, you've probably encountered a situation where the application suddenly starts to take up a large amount of CPU. When this happens, application response becomes sluggish and users begin to complain about slow response. Often the solution to this problem is to restart the application and, lo and behold, the problem goes away — only to reappear a few days later. A key question then is: how to troubleshoot high CPU usage of a Java application? ...
Operations are no longer tethered tightly to a main office, as the headquarters-centric model has been retired in favor of a more decentralized enterprise structure. Rather than focus the business around a single location, enterprises are now comprised of a web of remote offices and individuals, where network connectivity has broken down the geographic barriers that in the past limited the availability of talent and resources. Key to the success of the decentralized enterprise model is a new generation of collaboration and communication tools ...
To better understand the AI maturity of businesses, Dotscience conducted a survey of 500 industry professionals. Research findings indicate that although enterprises are dedicating significant time and resources towards their AI deployments, many data science and ML teams don't have the adequate tools needed to properly collaborate on, build and deploy AI models efficiently ...