Tag: user experience

  • Why your Company Should Load Test

    Why your Company Should Load Test

    The main reason your company should load test its websites and mobile applications is to learn how the site performs so you can improve the user experience and make smart web infrastructure decisions. Sounds obvious, doesn’t it? Above all else, load testing is a learning experience that provides a wealth of insight into how your website performs from both a user experience and technical perspective.

    How can it be done? Running a load test involves creating a small or large number of virtual users via programming script, running a simulation in which those virtual users access your site, and gathering information about how well the website performs under the traffic load.

    How Your Website Operates and Why it Matters

    If you are curious to learn more about how your website operates, contact a specialized load test company that offers load tests with up to 50 users for free over a 30-day period. Such a smaller test will provide insight into how well your company’s site performs for a typical user during light traffic situations. Free application monitoring tools often can be downloaded if your business does not already have one.

    Longer load times hurt conversion rates: According to Amazon, every 100ms of page load time latency reduces sales by 1 percent. So your business could be losing out on 10  percent of sales because your pages take a second longer to load. Testers can learn all sorts of interesting things about how a site operates with varying virtual traffic loads.

    Primarily, the load test tells you how long it takes a page to load on your site for users at different traffic levels. You can find out how quick load times are during normal, peak, spike and overwhelming use rates.

    The load time data helps identify not only problems in your website code that could be slowing down individual pages, but also problems with the infrastructure itself. Load testing lets your business know exactly how much load times increase when the site gets busy relative to normal use. The tests also can determine how much traffic a site’s infrastructure can handle before load times get outrageously high—and when the site will crash.

    Proximity Performance

    A load test provider can offer testing from server locations all over the globe. A guest in Chicago visiting a site that is hosted in New York City may have fast load times, but Los Angeles-based visitors may have to wait an extra second for pages to load. This data can help your company make an educated decision when purchasing a content delivery network (CDN) service that mirrors content, so site guests farther away from the original host server have a better experience with your site. Look for a load test provider that can offer synthetic load traffic of up to 500 Gbps bandwidth and a million concurrent virtual users. Loads should be generated to your breaking point, and fast!

    Get the Ideal Amount of Power and Learn How to Scale

    Once your business is able to see how your site performs under various traffic loads, that information can help determine where the infrastructure needs upgrades at various traffic levels. This helps with capacity planning—the ability to scale different infrastructure elements to meet demand without wasting money on power that is not going to be used.

    Running load tests on your company’s site will teach you invaluable information about how your site works so your customers can have a better experience with your platform. Improved website performance equals improved business.

    About the Author / Sven Hammar, CEO, Apica

    SvenHSven Hammar is co-founder and CEO of Apica, a provider of powerful, best-in-class technology for testing, monitoring, and optimizing the performance of cloud and mobile applications. Mr. Hammar he has decade-long experience and expertise in web performance and web optimization, e-commerce, cloud services, IT entrepreneurship and the Internet. He is also a serial entrepreneur who has founded several successful IT companies over the years.

     

  • Building the Search Engine Users Expect

    Building the Search Engine Users Expect

    The search experience most of us are familiar with is Google’s. The company has raised the expectations of search, conditioning us to its level of user experience. However, most websites and mobile applications still don’t offer this kind of advanced search.

    Here are three things to consider to keep the search experience on your company website or mobile app competitive:

    Speed

    Amazon reports that every 100 millisecond in latency causes the company a 1 percent loss in sales. Google says that every 500 milliseconds in latency causes a 20 percent drop in traffic. In today’s “attention economy,” people won’t wait for a slow search when they can easily jump to a competitor’s site.

    How can you ensure optimal speed from your search engine?

    A robust infrastructure plays a key role in maximizing search speed. Search is quite resource-intensive, so start with solid hardware that maximizes performance when having big loads on CPU, solid state drive and memory. Beyond the hardware, the network also plays a huge role in search speed. Like a content delivery network, users need to be close to the search engine to have a truly interactive session; it is important to distribute the search in different regions if your users are distributed worldwide.

    User Experience

    Users also expect finding the content they need to be as intuitive as possible. Some search engines suggest queries to users based on their search input; however, this often falls short for several reasons:

    1. If you suggest queries, you have little to no control over the quality of the results compared to the original intention. It is very frustrating as a user to follow suggestions that lead to poor results.
    1. Suggesting queries, often accomplished by “did-you-mean” type proposals, introduces an unnecessary step in the user interaction, and we’ve already established that speed is an important factor in finding information. You should even consider allowing your search engine to handle typos on the fly without requesting further user validation.
    1. If a user searches for something very specific, the probability of your frequent queries including their exact answer is low. In this case, the user is getting to a search without any feedback, which makes it much more difficult to actually find the intended content.

    Many websites also encourage browsing activities based on an extensive site map. But expecting users to know and understand your site map to find the information or product they need is unrealistic.

    Instead, users most benefit from a search experience that displays requested information as they type, updating results in real time. For example, on an ecommerce website, you should display products, categories, brand or reviews instead of queries. You should also propose a rich display with a readable summary of information.

    Relevance

    Finally, relevance should be an important consideration in building a search engine, but relevance is a difficult topic to understand, let alone master. Many existing searches require extensive fine-tuning of their engine and may still not understand the impact each change has on the search results. It often happens when a marketing manager comes to see the tech team to ask for a fix on a specific query. The tech team tunes the search rankings to fix that specific query, unknowingly breaking dozens of other queries. This approach is an endless game that will never globally improve the engine.

    You should focus first on the different ways to enter a query (for example, “iphone,” “i-phone” and “i phone”), and be sure to retrieve the relevant information for all of them. You can then enrich results with business data such as the number of sales or number of times a product was put in a cart.

    About the Author/Julien Lemoine

    Julien Lemoine AlgoliaJulien is a search veteran who’s been working in the search landscape for over 10 years, with work experience in Thales and Exalead. He participated in the design of three different search engines prior to co-founding Algolia with Nicolas and is the author of the different algorithms responsible for Algolia’s super fast performance.

    Julien is also passionate about imparting knowledge and spent some time teaching at his Alma Mater, EPITA. He holds an engineering degree from the same institution.

  • DevOps Matchmaking: APM + CI = A Perfect Marriage

    DevOps Matchmaking: APM + CI = A Perfect Marriage

    As anyone who has ever been set up on blind dates by friends can attest, finding the right match in today’s world is a tricky feat.

    There’s a lot of evidence suggesting that the frantic pace of life makes such matchmaking more difficult than ever. That said, when the right set of complimentary traits exist and there’s a willingness to find common ground, things can work out.

    Spike Jonzian-notions of artificial intelligence aside, certain technological partnerships are increasingly being perceived as “a perfect marriage” within the context of DevOps automation.

    Register today for the upcoming webcast: “Using APM to Turbocharge Continuous Integration”

    These technological matrimonies closely support the underlying tenets of DevOps methodology—collaboration, experimentation and increased velocity. In fact, it’s easy to wonder why no one ever conjoined them before. But we were using traditional waterfall development and operations and so couldn’t conceive of such a thing. On the other hand, emerging availability of tooling supporting new integrated workflows represents a significant catalyst.

    Finding the Perfect Fit

    One such DevOps confederation getting a lot of attention is the matchmaking of continuous integration (CI) and application performance management (APM) technologies. Tying together these once-disparate systems makes a lot of sense, despite the fact that few tools would seemingly appeal to more (traditionally) polarized constituencies.

    Continuous integration has been a staple of the development community for many years. It emerged as teams evolved the practice of long build times into more frequent check-ins to deliver code and look for potential errors more quickly. Today, with the rise of CI tools such as the Cloudbees Jenkins platform, some development teams are touting tens of thousands of builds per day.

    On the other end of the spectrum, squarely on the turf of IT operations, APM has been evolving rapidly over the past few years as organizations have sought to improve use experience and applications reliability via dedicated monitoring. Enabling this ability to identify and address emerging issues has resulted in APM becoming the fastest-growing segment in the IT ops management market, according to Gartner.

    DevOps matchmaking factors in when you bring these tools together to create an automated workflow that spans their respective use cases. A cross-functional team can leverage APM-level monitoring and KPIs within the domain of CI and testing to identify potential performance obstacles introduced in new code. Doing so then rather than waiting to respond later in the applications life cycle benefits everyone.

    Reaping the Benefits

    For example, say an e-commerce applications developer has implemented a new inventory search functionality—something considered a key differentiator by business management. The developer knows this feature could rely heavily on some back-end database system and wants to ensure it’s tested properly, even as the code is being introduced.

    Integrating APM and CI allows the entire team to monitor the process and test various conditions related to the update, tracking multiple builds and looking out for related performance issues. Such integration also allows for centralized tracking of other key attributes such as build number, status and build date, to further ease management.

    Most importantly, by tying these two critical aspects of the applications delivery life cycle together, the collaboration and feedback loops required to truly embrace DevOps methodology become ever more valuable as these core Dev and Ops functions become intrinsically linked.

    If this type of DevOps advancement gets your heart pumping, you’re not alone. Later this month, we’ll host a webcast here on devopsy.kinsta.cloud featuring experts from CA Technologies and Cloudbees. They’ll be discussing the benefits of matchmaking with APM + CI integration. They’ll also detail real-world benefits organizations leveraging integration of our respective technologies (CA APM and Cloudbees Jenkins) enjoy.

    We obviously feel that this is a DevOps tooling marriage that will mature, change and stand the test of time. We’d love to garner your questions and feedback on the topic.

    Which is all good, because thankfully there’s no such thing as Tinder for DevOps … yet.

  • DevOps Without Scale, Part 1

    DevOps Without Scale, Part 1

    When most people think of DevOps, what comes to mind first are continuous integration (CI) and continuous development (CD) pipelines. While they are arguably the most important parts of DevOps, they are not all of it. So, then, what is DevOps? It is a philosophy of how to build and operate software products and systems to provide the best user experience. It’s a way of thinking that blends the previously independent disciplines of development and operations so that software products can both evolve functionally and be stable operationally. In practical terms, it means development teams are involved in operations and, in many instances, fully own the operation of their products.

    The top companies are already there because they otherwise couldn’t deliver their massive and feature-rich products with 99.9 percent uptime. But there are still too many companies and developers who aren’t “doing it.” And it’s typically reflected in product quality.

    It seems DevOps has been stigmatized as difficult, requiring expensive tools and generally classified as needed if you’re big. In this blog I’ll walk you through different aspects of DevOps and share the business value behind each, the common implementation techniques and the free (or inexpensive) tools that will let you jump-start your DevOps in a matter of weeks.

    Product Health: The User Experience

    Our goal as engineers is to build products that will be used by others. Typically we call them users and sometimes we have a strenuous relationship with them. But if users don’t like our products and aren’t using them, we have failed at the very core of our job. So what do users want—besides features, that is?

    Users want products that are reasonably fast and work when they need them. Your site going down is an obvious example of why it’s important to be aware of your product’s health. But there are more nuanced examples. Sometimes a new release breaks an edge case and isn’t caught by regression testing. Sometimes a service becomes slow—it still works and nobody is complaining, but it’s dangerously close to being unusable. You need to be aware of your users’ experience so you can be proactive in fixing problems and delivering quality products.

    Thus, the first set of metrics you need to measure are user experience metrics. These typically include success/failure and latency of all external endpoints: REST, web pages, etc. If the users are external, you want to measure the experience from their point of view, which includes the network latency and HTML/CSS/JS execution time for web pages. If this was a car, these metrics would be your low coolant red light. If the light is on, you must stop as soon as possible and add coolant before your engine block cracks from overheating.

    To measure and monitor customer experience for web pages, Google Analytics is by far the most popular choice. It’s easy to set up and gives you exactly what you’re looking for: error stats per page, page load times, including individual page components and even browser parsing time for HTML. You can slice and dice the data by geographic region, browser type and so on to zero in on improvement or problem areas. Google Analytics is a great tool for tracking other product aspects as well, and you can kill many birds with one stone by adopting it.

    However, Google Analytics will provide data only as long as there are users and your site works. But what if the site breaks, maybe partially or maybe only for a certain geographic region? And what do you do for public APIs that aren’t instrumentable with Google Analytics? You’ll need a synthetic monitoring service. These services emulate clients by calling your APIs or opening your web pages in an automated fashion. They are typically scriptable and run from multiple places around the world. They can tell you when your services are up or down and can measure (emulated) user latencies by geographic region. Pingdom is one of the newer generation of such services that delivers what you need for a modest price. It also integrates with a graphing and alarming tool called Datadog, which I’ll talk about later.

    Product Health: Technical Innards

    Now you have a solid understanding of your user experience and can detect user problems in real time. But how do you find the root causes? And can you do even better by detecting user problems before they happen? What you need to do is go a level deeper and monitor key technical aspects of your apps so you can correlate them with user problems. The technical metrics are important to watch because they can be early signs of trouble, which can be averted if you act quickly.

    This can be a dangerous territory as the first desire is to monitor everything. Please keep your cool here, lest you drown yourself in hundreds of metrics that nobody understands and miss the important ones. In software, failure typically happens at integration points, so that’s what you should focus on: database and cache interactions, calls to other services, disk operations, queue sizes (for pub/sub architectures) and so on. Typically you don’t need to instrument business logic, as it either works or doesn’t and problems are caught in testing. This is where it is easy to create many metrics in a blink of an eye. A notable (and rare) exception is load-intensive parts of code that you want to monitor for performance reasons.

    If you see latency in database calls creeping up, cache hit ration going down or thread pool or queue size growing, you can frequently identify and fix the problem before it affects the users. Going even deeper, you want to keep an eye on the virtual machine (VM) and server performance. If your garbage collection times are increasing, if your thread count grows or if your server is showing signs of strain, it’s time to pay extra attention. If this was a car, these would be your check engine yellow light. If the light is on, you need to check it out soon but can keep on driving for a little bit longer.

    The most popular way to measure application metrics is with code instrumentation. Presently, Coda Hale (a.k.a. Dropwizard) Metrics framework and its ports to most popular languages are the way to go. Given the abundance of documentation and integration with all sorts of systems, this isn’t difficult. There are a plethora of coding patterns or external libraries you can use to avoid writing boilerplate code. Note that you want to include as much as possible in measuring requests (serializing, logging, etc.) so you need to put this logic as high up the filter chain or middleware as you can.

    The last piece of the puzzle is VM and server monitoring. Traditionally, this has been the territory of specialized ops tools, but Datadog, a service that I will talk about in the next section, provides this out of the box. Its agents run on each machine or VM and collect server metrics, JVM/JMX data, IIS info (yep, it supports even Windows) and more.

    Processing and Displaying the Data

    Now your code is instrumented and generates all sorts of interesting data. What do you do with it? And where does the data go in the first place? All this data is useless if it just sits there. You want to be able to look at the trends, correlate them and get a basic set of statistical information such as averages, means, standard deviations and so on. You also want to see pretty graphs (who doesn’t?) and be able to create dashboards. This is the cool part, where all the previous work comes to fruition.

    Datadog is a great way to start. It provides everything you need and more. All you have to do is install its agent on each box and configure the Metrics framework to send data to Datadog. Most Metrics ports already include Datadog adapters so there is no extra coding required.

    Now you have everything and can slice and dice the data whichever way you want. You can export data for further analysis. You can check it periodically for problems. You can even display dashboards on big screens around the office (looks cool, eh?).

    Putting it All Together

    I have seen all of this put together in a couple of weeks. However, if this whole area is new to you it might take longer, as you’ll be learning the concepts along with the tools. Sometimes the deadlines are tight and even a few weeks is a luxury. However, launching a product without any insight into user experience or product health is not a good idea. If I had limited time and had to prioritize, I’d start with instrumenting user experience metrics and hooking it up to Datadog. Even for web pages you can start with only monitoring the REST services that power them, or the controller layer, if you’re on model-view-controller. Soon you will realize how nice it is to have hard metrics and will want to add Google Analytics and deeper code monitoring to your product.

    All of this might seem like a lot, but you’re only dealing with four tools here: Pingdom, Google Analytics, Metrics framework, and Datadog. If your product is an API then you don’t need Google Analytics and if your product is internal, you don’t need Pingdom.

    As I mentioned earlier, Metrics framework is ported to multiple languages already. But even if you have specific requirements that aren’t supported out of the box, it’s easy to extend it. For example, at Guaranteed Rate we wrote and open-sourced the Metrics/DataDog adapter for .NET and a library for code instrumentation and DataDog integration for Clojure.

    .NET is particularly known to be behind on DevOps. Until recently one of the reasons was the lack of tools; however, that’s not the case anymore. All tools mentioned here, as well as Part 2 and 3, work in .NET and have adapters and ports where needed. With .NET entering the new open-source age, there are no more excuses to stay behind.

    Give yourself two weeks, read the docs, go one step at a time, and you’ll be surprised how far along you can get!

    What’s Next?

    Part 2 will cover what you can do to maximize product uptime based on the data you now have. It also will discuss making sense of the data, automated alerting and troubleshooting when the inevitable production problems happen.

    About the Author/Jack Korabelnikov

    JackKorabelnikov_avatar (small)Jack Korabelnikov wrote his first computer program when he was 10. Another 15 years later, after success in the role of senior engineer at Orbitz.com he transitioned into management. He still enjoys the tech side of things and continues to tinker with cool new tech. He is presently the VP of Engineering at Guaranteed Rate, leading the company’s technical evolution and the buildout of next-gen mortgage products.

    Prior to that, he worked at Orbitz Worldwide in multiple business areas such as hotels, private label and B2B web services. He played a key role in rolling out agile and, most recently, was the main driver behind the continuous delivery and DevOps adoption across the organization.

    jack@korabelnikov.com | LinkedIn

  • End-User Analytics: A Reality Check to SLAs

    End-User Analytics: A Reality Check to SLAs

    Everyone understands that a great user experience is vital for customers, but few organizations give the same level of consideration to their own employees. This lack of insight into the internal end-user experience leads to frustration, inefficiency and waste. Detailed analysis can lift the curtain, exposing the gap between your service level agreements (SLAs) and the reality of your current systems and software.

    Some of your employees may have more applications than they really need, while others may lack the tools to do their job effectively. It’s also likely that some of your employees are making do with outdated software that’s no longer fit for purpose. Before you can set about changing that, you must gain an understanding of the overall picture.

    What does your user experience look like?
    Many organizations will have trouble answering this question. They may not know how many applications they have, which ones are being used, and how well they’re performing.

    The rise of shadow IT—and the fact that 40 percent of spending no longer controlled by the IT department, according to Gartner’s “How to Manage the IT Budget Wisely Through Cost and Value Optimization,”—are further muddying the waters.

    To determine your company’s user experience, ask yourself the following questions:

    • How many users do you have, and how are their roles defined?
    • What devices are accessing your systems on your daily basis?
    • Where are all the access points located?
    • What content is being accessed?
    • What applications are being used?

    By trimming the unused apps and consolidating common apps through a virtualized XenApp or similar environment, you can redirect resources to focus where they can deliver the greatest benefit.

    SLAs are failing
    It may be tempting to take the SLA model and apply it internally, but SLAs are too simplistic and one-dimensional to deliver the insight that’s required here. Cloud service providers might focus on availability and uptime, but what do those metrics tell you about performance? Issues such as slow-loading pages usually aren’t included in the metrics, but they really should be if you want to assess the user experience.

    There’s also a trust issue here. Can you validate that your service provider is meeting expectations? What about security? Relying on provider self-reporting and a set of metrics that don’t reflect accurately the performance or the user satisfaction with the platform or application are inadequate if you really want to understand what’s going on and act to improve things.

    End-user analytics
    You need insight to real-time and historical data on all your hardware, users and applications across multiple environments inlcuding traditional, mobile and virtual. Good end-user analytics will flag security risks and suspicious behavior, record when an application hangs or crashes, and identify whether specific issues are widespread or localized. Records should be comprehensive enough that you can audit areas of concern and run root cause analysis to find ways to improve. Turn your end users and their devices into roaming sensors, which paint a factual view on usability and performance.

    Finding out how your employees really work is invaluable insight that can streamline many emotional conversations. Finding out what applications and devices they’re using—and how they’re using them—can unlock many potential benefits for different areas of your business. You can ensure costs are kept down and you maintain regulatory compliance while maximizing agility. A fresh insight into risk and productivity will help you to make informed business decisions.

    The end user knows best
    The only real measure of software quality that’s worth its salt is end-user satisfaction. Forget about what applications have been designed to do; forget about developer and service provider promises that don’t include an end-user analytical strategy. Cut to the chase and look at what’s actually happening; analyze every user session and employ business intelligence to extract actionable insights that will have a tangible impact.

    Give users the flexibility they want and the tools they need to do the best job possible. Happy and productive staff are the foundation of a good business. Seek out service providers that provide transparent end-user analytics; this will develop a foundation of trust and collectively you can provide guidance based on factual performance. Hone in on boot times, application performance or network speed: You dictate the metrics that are important to your business and metrics that make a difference to your customers.

    By acting without analyzing and putting your faith in SLAs, you’re basing the company’s future and its future path on pure guesswork. With end-user analytics, you can find out exactly what’s actually needed and ensure that you’re on the right track.

    About the Author
    crop_Nicholas Lee of FujitsuNicholas Lee is head of Global Digital Programs for Fujitsu, the Japanese information and communication technology company.

  • In-App Messaging: The Key to a Better User Experience

    In-App Messaging: The Key to a Better User Experience

    As the mobile device obsession grows, enterprise IT departments are learning the hard way that today’s Web applications, will in fact, not live forever. Enterprise developers are now forced to turn their focus to mobile app development – not just repurposing a Web API for mobile, but embracing what is inherently different about the mobile platform.

    Mobile isn’t just a smaller screen size, but for companies, it’s a whole new device for interacting with stakeholders in real-time. With in-app messaging, brands now have a powerful new channel to foster a private conversation between themselves and their customers. Further, companies can leverage data directly from interactions in the app to create more authentic and beneficial messages for the customer.

    Using in-app messaging has a big pay-off for brands, too. According to a June 2015 report from app marketing and analytics firm Localytics, apps engaging in messaging have a two to three-and-a-half times higher retention rate and more uses per month than apps not using in-app messaging.

    But for even the most experienced enterprise developer, integrating new features in a mobile application can be a tough process. The technical challenges alone can be too much for an in-house IT department, and developers could be stuck scratching their heads due to a lack of replicable use cases. We believe there are three simple steps that a developer can start with to incorporate in-app messaging to help build the foundation for a dramatically improved and far more engaging mobile user experience.

    1. The simplest in-app messaging application is using chat as a help feature. Imagine on-demand customer service from the palm of your hand – in store or in the comfort of your home. Think about how direct communication can improve customer experience. Is there a glitch in the app hindering the use of a feature? A question about an in-app purchase or pricing on a product in store that can be answered in the moment? There are many current scenarios that could be supported by using chat as a help feature, but the real possibility is in things that aren’t common today. Picture connecting chat to an in-store server, and joining a real customer service specialist to a customer needing assistance within minutes. Perhaps one day, in-app messaging could replace customer service calls all together.
    1. Another great way to utilize in-app messaging is by using chat as a way to share announcements. Instead of focusing on creating a private conversation between just two parties, sharing an announcement via chat is great way to spread communications to a group of people within an app. Share information about an upcoming event or sale, or send a cancellation update immediately (eliminating the frustration from those who didn’t check their email or voicemails!). And think outside of the box – these announcements don’t need to be text string, but rather HTML, JSON or images. Think about this as a push notification, but more personal and intuitive. However, while you may want to share announcements with all users, like a push notification, be aware that these messages can seem less targeted, like getting spammed. Alternatively, use a messaging platform that can sift through backend data to grab the intel required to customize announcements to specific audiences, all on its own.
    1. Finally, evolve your messaging a bit further by sharing images or content through chat. Facebook and WeChat are great examples of how to create more context within in-app messaging: share a link using in-app search or send animated emoticons to create sentiment. And again, think beyond a personal conversation, but how to engage a whole group. Perhaps you drop a pin on Google Maps and direct a group to a certain location or share a digital coupon to a set of customers. And while smaller images can be sent as binary payloads across the messaging transport, developers should consider size and performance implications and may want to use a different approach. There are even ways to use a URL in the message payload to transfer any kind of file (including an image!). The key to engaging customers with this feature is with powerful insights: integrate with different workflows and data using an end-to-end tool to deliver meaningful content to individual users.

    These use cases could seem like simple additions or advanced ideas depending on the current state of your mobile app, but either way, they’re just the tip of the iceberg.

    The ever-evolving mobile world full of consumers seeking cooler, better, faster mobile experiences means one thing for enterprise developers: change. We must move beyond the traditional thinking to consider not only app design, but how users want to interact with their apps, and what value new features add for customers.

    Whether you’re starting out with chat as a help feature or shooting for the stars with another intuitive messaging tool on the horizon, it’s safe to say the future of in-app messaging will be transformational for user experience.

    About the Author/Shannph Wong

    UntitledShannph Wong is the Head of Engineering at Magnet Systems. Magnet Systems is powering the next generation of mobile applications with an open architecture to enable businesses and developers to create more engaging and productive enterprise-class mobile applications.

  • Five essential Ops strategies that help make DevOps the real deal

    Five essential Ops strategies that help make DevOps the real deal

    With its roots in Agile and Lean thinking it’s not surprising that DevOps is often looked at through a development lens. After all, it’s proving absolutely essential to support accelerated delivery times; providing a much needed jolt of velocity to protracted development cycles. But of course with the increased need for speed there’s always the danger that quality can be compromised – so much so that faster time-to-value can very quickly become faster-time-to-failure.

    In what seems like a byzantine age of enterprise computing, IT operations tended to call the shots when it came to delivering quality. Sure, a transactional system might suffer a glitch or two, but since constituents were largely internal and customer’s generally one step removed from the application and business process, the impact could often be controlled. Ah, so much for the good old days.

    But as we know this model hasn’t just changed, it’s been completely disrupted.

    Quality is now a different headed beast that bites hard in many places. It bites when customers engage directly with your brand during discrete mobile moments – like when they compare your goods in the shopping aisle with a mobile app, or assess car insurance based on your ability to provide usage-based policies from their in-vehicle software system. Yes, speed is important in the application economy, but it’s also a high quality customer experience that shapes the winners from losers.

    The fabulous thing about DevOps is the fundamental premise that teams can collaborate in real-time to establish, maintain and continuously improve the quality of software systems and applications. For operations this doesn’t mean waiting for applications to reach production stage before enacting performance management processes. Rather, it involves instantiating best practices throughout the development cycle – that way teams resolve quality issues much earlier in development (where they are cheaper to fix), while also preventing a cumulative buildup of crippling technical debt.

    So with application quality and customer experience being essential for DevOps success, what are some of the ops related strategies we can employ to support better business outcomes?

    I see five essential, ‘rubber meets the road’ strategies ops can use to help DevOps become the real deal:

    1. Focus collectively on the user experience – too often organizations become detached from business reality by looking inside-out from a silo’d technology and diagnostic perspective. DevOps practitioners put themselves in the shoes of the customers by constructing, visualizing and managing end-to-end user-centric service views that traverse functional boundaries. Additionally, user-experience management will involve gaining deeper insights into real-time performance of externally facing applications and mobile services, bringing to the forefront analytics to guide decision making and drive continuous improvement.
    2. Give Developers a clear view of how code works in the real world – operational intelligence shouldn’t wait until applications are moved into production. Rather, it should be instantiated across every stage of the lifecycle – whether that’s during regression and unit testing, or pre-production. Many teams recognize this by for example activating monitoring during release automation; giving developers critical insights into both functional and non-functional code behaviors. Others go further, taking user-experience to another level by exposing key behavioral and usage-based intelligence – especially for newer mobile apps, APIs and digital services.
    3. Create a single source of the truth using a common framework – to be fully effective, developers and operations should reference a single version of the truth when it comes to problem triage and resolution. Traditionally this has proved difficult with teams having discrete tools providing diagnostic insights into one aspect of technology. This however falls short due to the complex interdependencies across technologies and results in finger pointing and blames games when problems can’t easily be pigeon-holed. To address this, operations teams use a common unified framework that quickly discovers and exposes infrastructure and application configurations, and importantly the relationships and interdependencies that exist between them. Now, root-cause can be quickly established from either an application or infrastructure perspective, but always prioritized according to business and customer impact.
    4. Define common goals across teams and use shared metrics – traditionally development and operations teams have been incentivized according to separate goals that are often diametrically opposed (e.g. speed of producing code –v- resilience and availability). By using shared customer and business-centric metrics, developers and operations build a ‘common language’ for evaluating progress and understanding the impact of change and continuous delivery. My advice here is quality over quantity; building out metrics that are actionable by all stakeholders. For example, this could include lead and cycle times to pinpoint operational bottlenecks and waste during deployments, or transaction response monitoring in pre-production to pinpoint code deficiencies and avoid technical debt associated with provisioning unnecessary capacity.
    5. Converge around a common understanding to transcend organizational boundaries – a collection of diagnostic based monitoring and alerting provides little more than vanity metrics and feel-good green lights. Sure, they can alert operations to when something is broken, but they do little to drive the more essential element of DevOps success – feedback. Therefore common understanding involves operations automatically correlating performance information end-to-end so as to expose far more beneficial insights that developers can use to improve the code base.

    At the recent Gartner Data Center, Infrastructure and Operations Management Conference in Las Vegas in December, I presented a session – Unified Infrastructure Management is Critical to Enhancing the Ops in DevOps – that further described these strategies together with supporting use-cases. It was certainly a dynamic and lively session, highlighting the viability of DevOps. As organizations look to increase speed to market of new applications while both lowering cost and increasing quality, DevOps will continue to gain traction, and I can’t wait till everyone truly understands its transformative power.

    About the Author

    ravichandran arunaAruna Ravichandran is vice president of DevOps Solution Marketing and Management at CA Technologies, responsible for cross-portfolio solution marketing for DevOps across all product lines. Before joining CA Technologies, Aruna held several management positions in product marketing and engineering at Juniper Networks and HP. Aruna earned an MBA and master’s degree in Computer Engineering from Santa Clara University and holds a bachelor of science degree in computer science from Bangalore Institute of Technology. Ravichandran is  on twitter @aruna13 and on linked in