“Every solution to every problem is simple. It's the distance between the two where the mystery lies.”
― Derek Landy, Skulduggery Pleasant
For the vast majority of my nearly 20 years in IT consulting, management, engineering and delivery, my job has been to solve client problems. I’ve spent countless hours and significant energy unraveling the mysteries and complexities of problems to identify and execute the best solutions. One of the more salient lessons I’ve learned in these efforts is: Problem solving is very challenging.
That is, the journey between a problem and its solution can be a long and arduous road; having an approach or even a framework can make a significant positive difference.
Agile is about product delivery
In the world of IT, the term “agile” has a myriad of definitions along with many ways to go about doing it (e.g. scrum, Kanban, etc.). The points I would like to highlight are:
- Agile, in and of itself, is not a solution or problem-solving technique, and
- Agile is all about product delivery; not business improvement let alone transformation. As such, the product being delivered should enable purposeful business change; it should be the lever the business/mission can use to achieve the desired change, otherwise there’s no point.
With this understanding in tow, agile can be used to help clients bring their solutions into a tangible state.
Helping the client
A client needed to develop a new web presence that would service the needs of their customers (e.g. armed forces; maritime) as well as its own employees (e.g. mission analysts, source analysts and geospatial analysts). They dictated we use agile to develop this new web presence as soon as possible to replace the existing ones.
Using agile to build the web presence, we organized into cross-functional teams, conducted scrum meetings and implemented 2-week development sprints. At the end of those sprints we demonstrated the completed work committed to during planning via “demos.” Everything was executing as intended and we were delivering code.
After a few sprints and demos, our team identified something was amiss. The client was not disappointed in the work (after all we delivered what they asked), but something was lacking. Information and data available at the time showed code was being produced but the results were not meeting the client’s need or intent. To this point, we followed the client’s recommendations and priorities explicitly which resulted in a product that was not stand-alone, nor ready for consumer use. The best way to describe the growing situation was our clients expected something different and transformational which outright appealed to users, but they failed to achieve that. Our clients wanted the code delivered to change the way they operated, but, there was no clear definition or understanding of what that change looked like.
Personally, I prefer my clients to be “happy and pleased” vice “not disappointed”. That drive to push ourselves to exceed client expectations results not only in happy clients, but it builds a trusting relationship and opens the door to future opportunities. Clearly, there was a problem and we had to figure out what it was.
One thing was apparent, applying agile alone was not working. My team and I deliberated on the situation and determined we needed to adjust our approach and understand what our client wanted.
Enter Immersive Engineering
Immersive Engineering is OGSystems’ problem-solving approach with the goal of deeply understanding a problem and putting basic solutions in the hands of users within a short period of time (e.g. weeks). With customers immersed with the Solution Team and coupled with tangible options (for solutions), it leads to quick learning about client needs and allows pivots where initial ideas are unworkable. Ultimately, it rapidly delivers relevant tools to end-users. Immersive Engineering consists of 4 elements:
- Discover – Creating clarity around objectives for any kind of problem
- Explore – Leveraging the marketplace to enable solutions
- Model – Gaining insights from experiments through hands-on experience
- Deliver – Applying Systems Thinking to enable customer acceptance and success
One day, after a very spirited product management meeting, I stayed behind to speak with my client one-on-one. I told him that I sensed the product we developed was good, but not necessarily meeting everyone’s needs or expectations (referencing the product management meeting we both just attended to support the claim). I told him that I thought we needed to revisit why we started this project and what the original strategy and goals were. He was hesitant at first, he felt I was saying we start from scratch, but I assured him that wasn’t the case. I told him we wanted to modify our approach, while still leveraging the good work we had done thus far.
After the client acquiesced to applying a different approach, we started with the Discover component to better define the problem and understand the client’s objectives. We used a variety of techniques including Visioneering and lean six sigma’s “Voice of the customer.” This not only helped us understand, but it helped our client team better shape what they wanted. As a result, here is (a subset) of what we learned they wanted:
- A single web presence that was the starting point for all users
- A single “look and feel” for all its web sites (e.g. creating a brand)
- A user experience incorporating the latest best practices in designs and information delivery
- Elimination of redundant sites (i.e. the new web presence would assume their functions)
- Enhanced search functions
Once we had a better understanding of the client’s problems and objectives, we utilized the Explore component to leverage the marketplace to find solutions. Full disclosure: Due to the way government contracting and technology policies work, we were limited in our ability to bring in new technologies for exploration and analysis. We were obligated to use SharePoint for the web presence, so instead, we researched best practice design patterns, information delivery, and development patterns for an optimal user experience.
Immersive Engineering is a flexible problem-solving framework. The overarching goal is to answer the client’s problems by providing them with solutions as soon as possible, obtaining feedback on those solutions, learning and then refining the solutions. That said, we took the liberty of combining the Model and Deliver components of Immersive Engineering by leveraging the Scaled Agile Framework (SAFe). SAFe is a knowledge base of proven, integrated patterns for implementing lean-agile development. Just as important, it incorporates agile engineering– dividing big challenges (e.g. designs, engineering spikes) into measurable chunks of work leading to more accurate and rapid product development cycles. Using this, we were able to model and experiment with design patters and development tools allowing us to continuously iterate and test, and then leverage sprint demos to obtain feedback (which then guided our next set of iterations and tests). This resulted in the identification of key (product) features, which were then implemented and delivered through releases.
Merging agile with process, consulting and engineering practices produced results that the customer was not even aware they wanted but were pleased to achieve. A successful launch of a new web presence netted the shutting down of 2 previous web presences (e.g. removing redundancy, cost savings) and improving user experience (based on customer feedback).
Immersive Engineering is still in its infancy; there are no quantitative metrics to detail what success looks like, but from a qualitative one, and more importantly from the client’s perspective, it was successful. We leveraged Immersive Engineering (which encompasses agile along with visioneering, voice of the customer and problem identification) concepts to get the client initiative up and running answering their stated vision and objectives. And today we continue to leverage agile to continuously improve the product as new objectives and customer feedback are received.
To learn more about how we apply Immersive Engineering to client problems, check out these use cases: