Digital technologies are deeply ingrained everywhere in our daily routines. The convergence of cyber and physical environments has led end-users to make their technology choices based on non-functional metrics: the feel, your emotions and your overall satisfaction.
At the same time, business is primarily driven by software systems. Business operations rely on the ongoing interaction between humans and software technologies. Even more, the customer journey — from shopping and purchasing services to installing and engaging with them — practically cannot happen without software.
That leaves us with an interesting question:
How can enterprise IT guide software engineering, design and performance in a direction that is perceived as more engaging, persuasive, enriching and fulfilling experience by end-users?
That’s exactly what human centric software aims to do.
In order to answer this question, let’s review how various aspects of a software-enabled service determines end-user experience, what is the role of software engineering and design principles, and how SDLC teams can improve their capacity to follow a more human-centric design philosophy.
What makes a good user experience?
The following four aspects of software systems serve as a key determinant of the end-user experience:
The core features, capabilities, user interface and workflows available to execute a task and realize a desired outcome. The focus is on the task that is promised by the software service, and the capacity of the software system to execute this task with high reliability and security.
User experience (UX)
The usability, accessibility, aesthetics, engagement and feedback that an end-user experiences upon interacting with the software. This includes intangible metrics such as the emotional and visual experience from an end-user perspective.
Modeling user behavior
Understanding user expectations, predicting user actions and using the predicted knowledge to deliver tailored end-user services. Such a model is developed based on user data, which may correspond to a geographically diverse user base. The goal of developing this model is to accurately generalize and predict expectations of users that belong to a variety of demographics.
The dependability often comes down to availability and reliability of the software service:
- Availability is the percentage duration during which the software product remains operational under normal circumstances.
- Reliability is the probability that the system will remain operational during a particular duration, which includes disruption of the underlying or dependent systems.
The role of software engineers & developers
Software engineering teams and decision makers devise the objectives of their software requirements based on tangible KPIs and business metrics. Some metrics such as service uptime and bounce rate conveniently correspond to service dependability, user experience and service functionality.
In order to make well-informed decisions on human-centric software design, engineering teams must overcome the following key challenges:
Software engineering design projects and the assigned teams typically interdisciplinary — decisions around software engineering and design are influenced by the knowledge, experience and preferences of decision makers based on their respective areas of expertise and technical background.
Plus, any design considerations may be externally motivated by regulations, market trends and business performance.
Evidence, subjectivity, assumptions & generalization
When the software design process is data-driven, engineering teams need to make decisions around:
- The subjectivity, limitations and assumptions of the data
- The generalization performance of their models
How accurate and relevant is the available data to describe intangible metrics such as emotions and visual perception? How well can the model generalize the performance on these metrics for a new and diverse user base and demographics?
Incorporating humanity in the engineering process
The software development lifecycle (SDLC) itself is human-centered.
This means that the process is influenced by the organizational culture and human attributes on both the individual and collective level of the SDLC teams. These aspects have a direct influence on the software design and engineering decisions, such as those relating to software features and performance. For example:
- Teams heavily influenced by QA and security may prioritize software reliability over frequency and pace of the software release cycles.
- Developers, artists and inventors within the organizations may focus on the creativity, aesthetics and usability of the software.
- Business-focused team-leads may want to align the SDLC release cycles with business performance and market trends.
All these decisions invariably affect the human-centric nature of software systems. All of these decisions may be motivated by real-world experiences. For example, slow performing online services cost their owners a cool $2.6 billion annually — you might change how you work to prevent that, also.
User trust, regulations & privacy explanations
Internet consumers are increasingly privacy-aware. More consumers prioritize services that adhere to user-centric privacy policies and government regulations.
Meanwhile, many (most?) online services make it…
- Easy for end-users to share their personal information.
- More difficult to revoke consent to data access and privacy-preserving features.
The lack of these features combined with vague messaging around the privacy commitment of the business to its end-user compromises end-user trust, even though service providers perceive these manipulative actions as a win against applicable regulatory restrictions.
From a user perspective, this lack of transparency is an indication that your software service is not designed with a human-centric philosophy.
Defining human-centric software design
The goal of a human-centric software design philosophy therefore goes beyond simply end-user preferences. In addition to the user, human-centric software should incorporate optimized decisions based on:
- Business objectives
- Regulatory compliance & restrictions
- User base diversity
- Market trends
It is important to note that not all of these drivers of human-centric software design decisions are controllable internally or measurable using standardized metrics.
In this case, the decisions around human-centric software design become inherently subjective and an experimental exercise. And that’s why SDLC frameworks such as Agile and DevOps encourage rapid release cycles in order to:
- Try and understand what works (and what doesn’t work).
- Become more adaptable.
- Improve continuously.
What is Splunk?
This posting does not necessarily represent Splunk's position, strategies or opinion.