Keeping it simple

blog post by Eric McNulty reminds us of our simplicity over complexity core principle. In his post he addresses some of the reasons why simplicity is important.

Why aren’t more things simple and why does complexity keep crashing in?

As Abraham Lincoln said, “I’m sorry I wrote such a long letter. I did not have the time to write a short one.” Mark Twain is also quoted as saying, “I didn’t have time to write a short letter, so I wrote a long one instead.”

Simplicity is hard. Simplicity requires knowing what is important and what is not. To overcompensate for not knowing organizations and people try to do everything and be everything.

So, if complex is easier, and simple is harder – why do I want to simplify?

  • It is hard to get the results you want on a reliable and repeatable basis using complex processes and products.
  • Complex processes and products have more failure points and break down more often than simple ones.
  • When complex processes and products break down it is difficult to find the root cause of the error and fix it.
  • It is very hard to learn complex processes and products and become efficient using them.
  • Complex processes and products are difficult to modify or extend to support changing needs.

Each of these items has a direct impact on the customer’s expectations and the customer experience.

Two key approaches to remove complexity are:

  • Design all processes and products with the focus on the customer. Understand the needs of the customer and meet those needs as simply as possible.
  • Only add tasks, features, and functionality to your process and products that are absolutely required. Remove any that are no longer required. Leaving unnecessary bloat in your processes and products is a big cause of complexity.

Additional References:

  1. Harvard Business Publishing Webcast – Take Complexity Out of Your Company, with Ron Ashkenas, author or Simply Effective.

Healthcare Consumerism Myths

In the McKinsey&Company article "Debunking common myths about healthcare consumerism"  by Jenny Cordina, Rohit Kumar, and Christa Moss they analyze the increasingly active role that consumers are taking in healthcare decision making and its impact on commonly held myths.

The first myth that they show to be false is that "consumers don't bring the same expectations about customer experience to healthcare that they bring to retail or technology companies." 

The last myth that they address is "most people are willing to trust insurers to store their health records." As we have addressed many times, trust is extremely important for all customer experiences but it is critical when it comes to healthcare information. In their Consumer Health Insights Survey they found that a large majority would only trust their provider to store their patient generated health information. Only a small minority would trust their insurer or other commercial third-party companies.

Service and Process Management Life-cycle

I was reading an article and they used the term optimization as if it were a higher-level goal than management. I feel that using “Customer Experience Optimization” as compared to “Customer Experience Management” is a marketing slight of hand that is simply saying that the Optimization part of Management is different and more important than the entire Management life-cycle process.

Just to be clear; service and process management involve a life-cycle that includes Optimize as one of the core activities. Just image Google search “Business Process Management” and you will see that some form of Optimize is part of every business process management (BPM) life-cycle definition.

Business process management is the study of the design and execution of processes. A business process is a step-by-step algorithm to achieve a business objective. Business processes are assets to be managed, designed, and continuously improved to enhance outcomes and performance. The process management life-cycle definition that I prefer includes (1) strategy, (2) design & model, (3) implement & execute, (4) monitor & analyze, and (5) optimize.

The process management life-cycle is not the customer life-cycle, nor is it the customer journey, nor is it the customer experience life-cycle. It is a business management discipline that encompasses many different methodologies and tools to optimize business operations to meet the business strategy, mission, and goals.

On the real point of the article – Customer Centricity – I am in agreement with the author. I also believe that the best way to improve outcomes, performance, and business value is to put the customer at the center of the business strategy, mission, and goals.

Myth of Objectivity

Do researchers and decision makers rely solely on the facts or are they influenced by the opinions and beliefs of themselves or others?

According to Daniel Gilbert, “Research suggests that decision-makers don’t realize just how easily and often their objectivity is compromised. The human brain knows many tricks that allow it to consider evidence, weigh facts and still reach precisely the conclusion it favors.”

As Jonah Lehrer explains:

The reason we’re so resistant to anomalous information – the real reason researchers automatically assume that every unexpected result is a stupid mistake – is rooted in the way the human brain works. Over the past few decades, psychologists have dismantled the myth of objectivity. The fact is, we carefully edit our reality, searching for evidence that confirms what we already believe. (Lehrer 2010, 83)

According to Harper and Huh, “no inquiry or assessment approach— quantitative, historical, qualitative, or multimethod—can be completely objective.”  (Harper, 6)

As Janesick (2000, 385) put it, “There is no value-free or bias-free design . . . the myth that research is objective in some way can no longer be taken seriously. At this point in time, all researchers should be free to challenge prevailing myths, such as the myth of objectivity”.

In “Ten myths of science” by William McComas:

Myth 8. Scientists are Particularly Objective
Scientists are no different in their level of objectivity than are other professionals. They are careful in the analysis of evidence and in the procedures applied to arrive at conclusions. With this admission, it may seem that this myth is valid, but contributions from both the philosophy of science and psychology reveal that there are at least three major reasons that make complete objectivity impossible.

According to Liam Marsh:

Objectivity is also a powerful myth that prevails over the world of science and, hence, that of psychology. There is a belief that there is a static reality outside of ourselves that exists on its own, independent of observers. From this comes the idea of truth; the idea that there is somehow a right answer; a way the world truly is. The whole idea of scientific methodology and experimentation exists to serve this fantasy, that there is a method which will give to us the truth, the real nature of things. A theory can be shown irrefutable and certainty can be obtained. The unknown can become known. The question, answered. Woven into this story is the assumption of natural laws. The idea that there are rules or laws which all things abide by. These laws of nature are reliable as well for they never change and always applies. In the stories of science are many peculiar beliefs which purport the unbelievable.

To counter this we need to utilize tools and disparate viewpoints to help us when objectivity is important. Tools that enable us to uncover and understand our biases. Alternate viewpoints that balance our biases.

References:

  1. Gilbert, Daniel. I’m O.K., You’re Biased. The New York Times. 4/16/06.(NY Times)
  2. Gillispie, C.C. The Edge of Objectivity: An Essay in the History of Scientific Ideas (Google Books)
  3. Harper, S.R and G.D. Huh. “Myths and Misconceptions About Using Qualitative Methods in Assessment”, New Directions for Institutional Research, no. 136, Winter 2007, Wiley.
  4. Hodson, D. (1986). “The mature of scientific observation.” School Science Review, 58(242), 17-28.
  5. Janesick, V. J. “The Choreography of Qualitative Research Design.” In N. Denzin and Y. S. Lincoln (eds.), Handbook of Qualitative Research. (2nd ed.) Thousand Oaks,Calif.: Sage, 2000.
  6. Lehrer, Jonah. Accept Defeat: The Neuroscience of Screwing Up. Wired. Jan 2010. (Wired)
  7. Lehrer, Jonah. How We Decide. Houghton Mifflin 2/9/09.
  8. Marsh, Liam. The Fantasy of Science: Psychology’s Struggle with a Persona. 1996. The Ares Press. (text)
  9. McComas, William, “Ten myths of science: Reexamining what we think we know….,” Vol. 96, School Science & Mathematics, 01-01-1996, pp 10. (text)
  10. Popper, K. R. (1963). Conjectures and refutations: The growth of scientific knowledge. New York: Harper and Row.
  11. Porter, T.M. Trust in Numbers: The Pursuit of Objectivity in Science and Public Life. 1995. Princeton University Press, Princeton. (text)
  12. Scheffler, I. (1967/1982). “Objectivity Under Attack” (pp. 1-19). In Science and Subjectivity. Indianapolis: Bobbs-Merill. (text)

Assumption Bias

In “Innovation Tip: Step Back to Step Forward” Fred Collapy recommends stepping back at regular intervals in the design process. The three things that he recommends stepping back from are:

  • a “decision attitude” – instead of just making a decision, make sure that you are asking the correct question and solving the right problem
  • users – be concerned less with what they say they want and be concerned more with what they need
  • your assumptions – look at the problem with a new set of eyes

The quality and success of any endeavor depends upon its goals and the quality of the problem statement. Does it accurately represent what you are trying to achieve? The correct answer to the wrong question is still the wrong answer. Know what you are trying to achieve first and then formulate the problem statement.

It isn’t that users don’t know what they want or how to describe it. I feel that the problem, and many times, also the solution, have already been defined by the time that the users, analysts, architects, designers, and engineers are brought onto the project. The process then becomes to discover the requirements for this problem and solution that fit into the predefined timeline and budget constraints. The requirements collected from the users are biased by how they envision themselves doing their job using this new solution.

There are also many other cultural and organizational biases at play. When hard work and long hours are valued by the organization it is unlikely that business process solution will actually streamline and improve efficiency. When people and organizations are paid or rewarded by the hour and that big “S” on their chest there is very little incentive to work less. Whether or not you believe the statement that “a person working 10 hours per week can provide more value than a person working 60 hours per week” shows where your bias lies.

Constraints and assumptions are both important and dangerous. They are important for projects because it is very rare that anything is open ended and meant to apply to every possible condition and situation. They are dangerous because trying to reuse past experiences and tool sets on new projects with new constraints and assumptions can result in unworkable and dangerous answers.

The solution is to be aware of your experience-biased assumptions and engage outsiders with diverse experiences and expertise. Abandon big up-front user requirement collection efforts. Believe me, they become more about form and completeness than timeliness and usefulness. Adopt iterative and incremental discovery-based processes and tools.

Customer Experience Management

Gartner defines customer experience mangagement (CEM) as “the practice of designing and reacting to customer interactions to meet or exceed customer expectations and, thus, increase customer satisfaction, loyalty, and advocacy” (1).

To understand your customer’s expectations it is important to look at other leaders, regardless of industry. In the operational excellence space you are measured by what your competitors and peers are doing. However, in the customer experience space you are being measured against your customers’ collective experience with Amazon, Starbucks, Netflix, and Uber.

According to Clayton Christensen, professor of business at Harvard and expert on disruptive innovation:

The customer is actually the wrong unit of analysis. It’s the job that the customer is trying to accomplish that’s the correct unit.

(1) Gartner, Customer Experience Management (CEM).  http://www.gartner.com/it-glossary/customer-experience-management-cem, 1/25/2016.

Visual Studio 2013, Entity Framework 6 and Oracle ODP.NET

I just went through an exercise trying to use code based configuration with Oracle’s ODP.NET and although there is a lot of information out there I had to eventually go to the Official API documentation to close the loop.

This is what I had to do – hopefully it will help someone else.

I created a WCF self-hosted console application. All this sample does is take a primary key integer value and return a first and last name from a USERS table in Oracle 11gR2.

First thing – don’t do the heavy lifting yourself – use NuGet. Right-click on your project  in the Solution Explorer and select “Manage NuGet Packages…”.

In the search box enter “odp.net managed”.

Select “ODP.NET, Managed Entity Framework Driver – Official” and “Install” it. Note that this screen shows green checkmarks because they are already installed in my case.

It is dependent upon the Entity Framework and “ODP.NET, Managed Driver – Official” so it will automatically include them.

Note that it will include Entity Framework 6.0.0. Use the “Updates” section to update it to the latest version.

After doing this you will have the following installed packages.

Your project will now be configured to use Oracles ODP.NET Managed Entity Framework Driver.

I am going to quickly skip through some details of my simple sample. I added an ADO.NET Entity Data Model for my sample.

And I selected “Code First from Database”.

My Oracle database is a single table where ID is also a primary key.

The resulting model artifacts are:

and:

I have a GetData operation as part of my service that takes the ID value and returns the first and last name.

If you run this it will work using the values from the application configuration file.

However, the Entity Framework and DB Providers sections in the configuration file can be replaced by creating a DbConfiguration object with the following settings. The “using” values shown are the ones that I had to add.

Additionally, the Model’s DbContext must be annotated to use this DbConfiguration. (Note that there are other options for associating the DbConfiguration with the DbContext that I am not covering here.)

You can now remove the following sections from your app.config file and it should still work.

<entityFramework>
<defaultConnectionFactory type=”System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework”>
<parameters>
<parameter value=”v12.0″ />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName=”Oracle.ManagedDataAccess.Client” type=”Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342″ />
</providers>
</entityFramework>

<system.data>
<DbProviderFactories>
<remove invariant=”Oracle.ManagedDataAccess.Client” />
<add name=”ODP.NET, Managed Driver” invariant=”Oracle.ManagedDataAccess.Client” description=”Oracle Data Provider for .NET, Managed Driver” type=”Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342″ />
</DbProviderFactories>
</system.data>

I hope this helps.

DbVisualizer – No install and uses JDBC drivers

DbVisualizer is a good tool if you want to access and navigate through your database using a graphical user interface.

It is a good solution if you don't have a tool installed to access and view your database. This is because it doesn't have to be installed, which means that you don't need local system administrator privileges to run it.

Also, because it uses JDBC drivers to connect to the database it is a good tool for validating your JDBC drivers if you are having issues connecting to the database from another application using the same JDBC drivers.