Monday, December 22, 2014

Design, UX, Flow, o dear.

I have gotten myself into a discussion @ twitter, and found myself with the following question, asked by Charles Webster MD: " what is the relationship between interaction design, user experience, workflow & process-aware technology"

It's a broad question, but I like it, because it forces me to create a coherent view on a number of items I have closely been working on in the last years.

A challenge is that by reading Charles' blog, I noticed that certain concepts we use might have different names and definitions. And, that we had another discussion going through this, dealing with the limitations of 'workflow' versus case management.
For starters, I encountered the definition 'Workflow': Workflow is what actually happens when work is done. It is a series of steps, or tasks, that consume resources (money, time, effort, attention), and achieve one or more goals (see here). In my eyes this is a perfect definition for 'Business Process'. Perhaps due to my BPM-technology background, I typically associate workflow by a process that has been implemented and can be run in a BPM-Suite.

And a later definition of workflow came along by a reaction to the discussion by InformIt:

First Sketches of an App: Planning the Design of a Mobile Application

It did not provide a clear definition, but deriving it from the text should give something like: a workflow is a series of steps a user follows when trying do a certain job, while using an IT-application. Hmmm.

Ouch. Let's get back to the basics of the question, and let's start with the end in mind: a situation in which we have found a way to support, let's say medical staff, with a great process aware information system. A system that:
1. Provides the right user experience: people using it can reach their goals (primarily diagnosing, monitoring and curing patients) in an effective, efficient and pleasant way, in the context and conditions they do their activities
2. The system is aware of pre-defined medical protocols and best practices, yet has the flexibility to deal with unforeseen events (symptoms), and can coordinate people's work, based on these protocols and practices. It means that the system can trigger people to perform certain activities 
3. While doing their activities, people can enter, and find/access appropriate information, that is related to all the work that is going on. Outside of the activity perspective, people can access the status of a patient (and the status of all ongoing and completed 'workflows').

(Note that I take a strictly medical staff perspective, just to limit the scope of this blog-item. If I would include a patient (and family/supporting network) perspective, I would also need to dive in to patient journeys, service design and patient experience. Another time. Also note that I have not included worker experience design and process redesign, something I wrote about here, for now, but limit it to the design of the IT-system)

Let's assume that the system is based on a modern BPM-Suite, with appropriate flexibility (e.g. advanced case management/dynamic process support). This is essential, as cure and care processes are often not completely predictable in terms of possible events, routes and outcomes. For more information, see this blog item or read the whitepaper on case management that I wrote together with a colleague when working at Capgemini (and that was referenced by Gartner), and where we use the 'navigator'  versus workflow metaphor.

Using a BPM-suite, this means that a large part of the software design is fixed (the building blocks, such as the portal, modelling facility, process execution engine, human activity coordination - inbox, form handlers for activity screens, document management module for documents, etc).

Now let's try to answer: how were we able to design the IT-system?
A number of actions needed to be taken. I am trying to take these apart, from two perspectives: the subject matter expertise, and the design expertise. Often, in reality, the actions are done in parallel, with the full team.

Action Deliverable Context Expertise Subject Matter Expertise
1. Understand the medical staff and their the working context Empathy maps persona's, contexts of use UX Medical Staff
2. Understand the activities that needs to be done, when, where, why. Understand the processes, triggers, exceptions. Process maps Process analysis Medical staff
3. Understand information usage - for each activity,
determine information needs, information produced. Understand information requirements
from compliancy and management needs.
Objects/attributes Information analysis Medical Staff
4. Design the 'workflows': the series of activities that the system should support.  Executable Process models Process designer Medical Staff
5. Design the user interaction in general: how do people work with the system in general, in terms of access to patient information, inbox of work-items, search, etc., using the contexts of use (mobile workers, administration behind desk, operating room, etc)  General UX concept UX Medical Staff
6. Design the activity forms: when performing a certain activity, how should information be presented, accessed, entered.   UX design of activity UX Medical Staff
5. Design the technical interactions (activities or process fragments that need to interface to technical equipment)  Technical interfaces Integration expertise Technical staff

The creation of these deliverables is often done using the BPM/ACM-technology (in combination with other tools - such as plain Office, but also Business Rules models, Data modelling tools, etc).
With the emergence of 'Business Technology' we see the trend of 'The specification/model IS the application' as I wrote about early here.

Key in these actions is to work iterative, and test test test. Testing from multiple perspectives:
- the process/workflow: is the set of activities correct in terms of flow, exceptions, decisions?

- the information perspective: can I work with the right information, record the right results?
- the user experience: can I as a user, in a certain context, perform the activity in an effective, efficient way, and does the system support me in a pleasant, perhaps even motivating way?
- the technical integration
Testing requires different perspectives and associated competencies/skills: a process/workflow perspective, a UX-perspective and a technical perspective. The people possessing these skills will typically organize / facilitate sessions with medical staff, guiding them, monitoring them and so finding ways to improve the system in terms of UX, workflow/data or technical integration. As BPM-Suites and Adaptive Case Management systems allow most parts to be configured refinement cycles can often be done quite quickly (hours to days).

Now, part of the discussion I have with Charles dealt with the notion ' Human Centric Design  is dead', pointing to sources such as here and here.  First of all, I don't disagree with the notion of activity centered design, as my actions above clearly show.
The activity centered design is for me a (welcome!) merging of BPM-expertise and UX-expertise.
The BPM-perspective has always placed activities as the center. What needs to be done when, why and by who. And.. what information comes in, is needed, and goes out. But what we have missed as BPM-specialists is often the UX: really understanding the people using it, the context of use (where? how?), e.g. taking a more psychological perspective, in terms of quality of use. As BPM-specialists we dropped BPM-suite driven applications to users, based on sound process analysis and information analysis, that were logically correct. But often not user-friendly. Too rigid. Too complex.
In my last program (a flexible BPM/Case management solution for a Ministry - with lots of adhoc processes, for 1200+ users) we involved a UX-specialist. The value of this UX-perspective (understanding users, their context, ability to prototype, test, and bringing in other ways of looking at forms-designs) has brought enormous advantages.

My notion of Human Centric Design has been formed by my work and various trainings of IDEO and other organizations (Service Design), see for instance here and here.
I think these HCD-approaches did not evolve from a strict user interface design perspective (as I would position D Norman), but much more from a holistic view on people using artifacts and services to collaborate and reach certain goals. These HCD-approaches have a rich toolkit, in which context-of-use, design for emotion and motivation, journeys/jobs to be done and process/workflow perspectives are all seen as essential elements). So from that notion I would be far from declaring HCD as harmful. Activity Centered design is essential part of HCD.
In the end, I think Charles and I are in agreement.

To conclude: a small dive into the limitations of many BPM-tools. In the whitepaper (with the model I designed, positioning various types of processes and associated forms of coordinations), I showed that there are types of processes that are more structured and predictable (doing your expenses) versus more adhoc/less predictable processes. Actually you could see a scale:
1 Structured process, where the full process model is known and all execution paths are known at design time
2 Less predictable, but the activities can be predicted/predefined, just not the sequence/possible paths
3 Even less predictable, the process might even require activity not predefined
The key issue with certain workflow technology or BPM-suites is that they can only support type 1 processes. I predict that in health care many type 2 and 3 processes exist. So to integrate a BPM-engine in an EHR, that supports type 1 only, will severely limit the EHR's value! And however great the process or UX design, it won't fix the key issue: users will be locked in ' hard'  workflows that will not support all the possible events and paths.

Tuesday, August 05, 2014

O dear, what will we do with the data?

In my previous post, I wrote about the possible scenario's to deal with integration with existing data-centric applications. In this blog-post, I want to cover situations, in which we want to digitize the process (with a BPMS/ACMS) and there is data, but no existing data-centric applications to store it.

Let's first investigate the typical data one encounters when analyzing a process that needs to be digitized...

Type Description
Customer data Names, addresses, contact persons, etc.
Product/transaction data Type of service or product, certain service / product specifications, pricing, other conditions and agreements
Decisions Specific decisions (what what the decision, who took it, when, and why was this decision taken/on what grounds)
Process and task performance data Durations of process and tasks (or even effort and costs associated with it)
Audit trails What was done, when, why and by who
Other process linked data Comments/communication between process participants, certain checklists/QC outcomes

All this data is crucial for the stakeholders around a process:
- The customer wants their service or product first time right, on time delivered
- The process participants need it to know what to do, and do it correctly
- Process management wants to manage the flow, work-distribution, work-load and compliance
- Responsible managers want to be able to report outcomes, performance and compliance
- Accountants / Audit / QA-people want to understand what happened, and see if it was compliant to regulations
- Future generations (Public sector mainly) want to historically research what happened

When we digitize a process, this data is, in the as-is situation, usually scattered in various forms:
- In unstructured forms, on paper, in folders, or in e-mails
- In semi-structured form, in (often) Excel files

And the user requirements are typically:
- We don't want Excel anymore, the new BPMS/ACMS solution should help us to digitize the process
- We want to store and report on all of this data somehow

Many times, I encounter organizations that are mostly paper-based, sometimes with low-volumes. So when implementing a BPMS/ACMS solution, we do not have the luxury of a CRM-system, and ERP-system (or other Product administration), a Datawarehouse. Sure, organizations should have these systems in place, but often, introducing these technologies are not in our scope. Then the inevitable question comes: O dear, what will we do with the data? Ouch.

From a solution architecture point of view, we have a number of paths.

1. Let parts of the data behind in existing office automation
- Simple

- Separate files that need to be updated manually (more effort)
- If the data is also stored in other places: risk of becoming out of sync
- Not addressing client needs
- Hard to query

2. Store parts of the data in office automation and integrate with it 
- Data is updated, no need for manually updates
- Less risk of becoming out of sync
- Low cost

- Usually quite risky, as business users can access the files and change structures
- Not suitable for large data volumes
- Technically unstable sometimes, and transaction integrity/locking issues
- Hard to query

3. Store parts of the data in structured form in the process instance
This scenario is tricky. My design rule is: keep the process instance very light, as:
- Performance might get bad, when too much data per instance
- Often hard to query on specific items (usually stored as XML/blobs)
- You never know when the data gets cleaned out (you need strict rules on instance archiving)

With very light I mean:
- Customer/transactional data is only temporarily stored in the process instance, but as quick as possible stored in a other structure
- Data that is really process instance specific (a contact person name for this order)
- Only keys to the data (customerid, productid) are stored
- Only data is stored that is needed to execute business rules (preferably retrieved from other structure just in time).

4. Store parts of the data in digital documents (unstructured)
- Simple (you will need a Document Management solution, and often a 'Case' concept)

- No reporting on structured data possible (Text mining too difficult)

5. Store parts of the data in a custom database-structure (linked to a case)
- Clear structured place to store data

- Depending on complexity of data, can grow large and complex in terms of effort and architecture
- If the BPMS needs to support multiple processes, each with their own set of data, complexity can become even more

What I sometimes encounter is that scope explodes, because customers would like access to this data through a non-BPMS user interface: a new data-centric app is born and included in the project. Usually not a nice thing.

6. Store parts of the data in structured form in a generic Case data - solution
In this scenario, we create (of buy) a component in which one can define meta-data schemes per process-class or case type. In each scheme, one can define possible data-elements, . When creating a process instance or case, the BPMS/ACMS allows users to maintain the defined data-elements. 
- Flexible, quick to configure and deploy

- Can be hard to query

7. Store parts of the data in a (small/custom) Datawarehouse
For some types of data, I would recommend to create a small custom set of Star-scheme tables with the relevant dimensions. This allows to query on performance of processes and tasks, by dimensions as process / case type, period, organization unit, etc.  In addition, it would be possible the extent the star-scheme with more transactional data (order volume, price, certain decisions) to allow more complex queries ('In period X  what was the total of orders in Euro, in which we refused to deliver')

Data governance can be a tricky question in BPMS/ACMS projects. It not properly handled it can require lots of effort, effort that we rather would focus on the process and BPMS-advantages. If a project is oversold in terms of BPMS/ACMS promises (and we all encounter this from time to time :-)), it can be hard to manage client's expectations and influence the client to select and implement additional components, such as a CRM-system.
As BPMS-specialist I think we need to be honest to the clients on the risks and limitations of the possible scenario's, and help them to make a sound decision.

Sunday, August 03, 2014

Need for better standard for integration between BPM/ACM and data-driven applications

In many of the projects that I worked in teams with BPM or ACM (Case Management) technology, we encountered the integration-issues with other data-driven systems.

Typically this would be the result of the following factors:
- The users wanted to perform work on a certain activity, based on a work-item trigger (from a BPM or Case Management solution). They liked the 'inbox' concept (of work to do), sometimes in combination with a Case view.
- As part of that activity, data needed to be retrieved, stored, updated in another existing data-driven application
- The existing application had a fine user-interface (a number of pages dealing with that information), and often exposed through that user-interface were many complex business rules.

The possible paths for the Solution Architecture are not optimal:

Path 1. Manual activity 
Just create a work-item that tells the user to go to the application to perform a certain transaction. Present the right data, if possible, that the user needs to enter/update. Ask the user to report the activity ready when done.

- Very simple, low investment/low risk from a project-scope perspective

- No contextual frame (see below)
- Risk that activity is declared 'done', while the transaction was not completed

Path 2. Duplicate the transaction in BPM/ACM, and call a service for the application
Design a user interface (1 or more screens, wizards, etc) for the activity, and implement this in the BPM/ACM solution. Create some type of service for the application, to support the transaction from the BPM/ACM solution (if needed, published on an ESB).

1. Contextual framing of data and functionality
> With a data-driven application, the user needed to assess an activity - what do I need to do - and then translate this to - how do I navigate to the right screens in the application. This takes time and learning, and is not value added (Lean) in the execution of a process. With a BPM/ACM solution, the system 'knows' the context and can present the right contextual frame
2. Uniform user interface
3. Usually better looking than the 'legacy' datadriven app

- Duplication of user interface and possibly business rules. See below.
- More complex (development work on two sides)
- Possible transaction faults (requiring roll-backs)

With path 2, a key question is: what are we going to do with the business rules around the data-driven transaction?
A number of scenario's:

2A: All relevant business rules are duplicated in the BPM/ACM layer
- Good user support in the user interface, while working on the transaction (data-checks, lookups, allowed values and value-combinations, etc), reducing or preventing errors or in Lean terms:  Poka Yoke.

- Maintaining business rules suddenly requires updates on two places, requiring good business rules governance and risk that business rules will start to differ over time.

2B: Only direct user interface rules duplicated
Only the direct User Interface driven business rules are duplicated, the harder more back end rules are kept in the application, and are used in the service (which may lead to a reject in the service, because certain rules are not met)

- Less business rules to duplicate

- Hard to sometimes decide what are 'user interface' rules and back end rues
- A work-item that is completed could lead to a failed transaction, requiring error handling functionality, that will lead to additional work-item loops to the user ('Your work-item lead to errors, please correct'). This is not value added.

2C: No business rules are duplicated
In that case, a rather 'dumb' workitem set of screens are presented. All business rules are checked as part of the service call, on the application side.

- Business rules on one place
- More simple

- Can create user confusion, and higher risks that people enter wrong data
- Requires error handling functionality, that will lead to additional work-items loops (not value added, not first-time-right)

Path 3: User interface inclusion
I have actually never seen this in real life (we always dropped it as a viable solution). In this scenario, in some kind of way, the user interface of the application is included in the BPM/ACM user interface. As soon as a user opens a work-item, the appropriate screen from the application is shown (if possible with populated data from the application and the BPM-work item & process instance data). As soon as the user performs a certain triggering activity, either the BPM-system closes the application screen, committing the transaction in the application, or the application detects the transaction-completion and triggers BPM so that the work-item can be reported ready.

- No duplication of screen and business rules
- Contextual framing
- User recognizes the well-known screens of the application

- Complex. Most presentation-layer technology has a hard job here
- Triggering to mark the completion (or errorstates) is very complex
- Risk that triggers are lost and application and BPM get out of sync (application has commited data, BPM is not informed)
- User interface variations in the BPM user interface
- Strong coupling

I have seen various implementations for path A and B. But I am never really happy. What would be a great way out, is that the technology vendors come up with a better integration standard: a standard to expose each user interface from their applications (ERP, CRM, etc) as a service, with some type of metadata exchange on functionality, presentation, and business logic/rules. This would allow BPM/ACM systems on design time or run time to present the right user interaction (but in the UI of the BPM/ACM system itself) ,while using all functionality, data and business rules on the application side.

Is JCA supporting this? I am not a Java-technie, but I don't think so. Not to this depth.
Of course, there are still complexities, for example what if the transaction granularity and focus in the back-end application is different from the required transactions from the BPM application?

But a standard in this area would lead to a path 4, that would have a lot of advantages:
- Contextual framing (Value Added)
- Direct checking of business rules (Poka Yoke)
- State consistency (in terms of data, transaction and work-item completion)
- No duplication of business rules and business logic
- Consistent user interface

Key question: are vendors of data-driven applications open for this? Especially vendors that have their own BPM-layers? I doubt it. Old-world thinking Application vendors might think: 'I don't want my application to become some black-box behind a BPM-layer! How will I compete in terms of brand recognition?'.
But perhaps I am too cynical here, and can Application vendors see the value of providing strong building blocks of data/rules centric functionality, that fit in 'plug & play' in modern BPM-based architectures.
We will see...

Sunday, July 27, 2014

Five approaches (and maybe six) to process design

As a BPM-specialist, one can encounter different situations for improving processes. These situations will require you to choose wisely from your BPM-toolbox, depending on various aspects such as client strategy, capabilities, trust and risk-appetite. One aspect is the approach you choose to improve a process. In my process improvement projects, I have encountered five different approaches (as shown in the diagram):

Let's dive in:

1. Common sense - incremental
This improvement approach is used quite frequently: gather process participants, analyse the current process and pain points (from outside in, and inside out) and come up with improvement ideas. Pick the ones that deliver most value, in regards to the investment of implementation, and implement. Iterate.
Key characteristics: it starts with was is, and with the people involved, and relatively small steps are taken.

2. Improvement practice based - incremental
In this approach, a specific improvement practice is selected. Typical examples include Lean, Six Sigma and ToC. Depending on scope and adoption of the improvement practice, various techniques are used on a certain process (such as Value Added Analysis, Root Cause Analysis, Leveling, Kanban, Bottleneck identification, etc). Key characteristics: it starts with what is, with the people involved (trained or guide by a improvement practice specialist), and relatively small steps are taken.

3. Best Practices / Reference model based - blueprint
This approach is often used, if, besides improvement goals, there are also harmonization goals (multiple locations running comparable processes). The organisation picks a certain reference process and replaces the current process with the reference process (often supported by specific IT solutions, such as ERP solutions). Examples of reference process models include eTom, SCOR, VSM, Scrum, ITIL, the dutch municipality GEMMA processes and SAP's reference processes for various industries and process domains.
Key characteristics: it starts with the to be, more top-down, often less influence of the process participants involved, a relatively large step is taken (although organizations can pilot a process in one location first).

4. Innovation driven (new business concept or IT) - blueprint
In this approach a new innovative concept has been adopted. This could be a new business concept (self-organizing teams, case management role, self-service supermarkets, mass customization), a specific technology (cloud, internet of things, BPM/Case Management solutions, digital documents/ECM, eCommerce, mobile, social) or a mix. Typically, as a team you would asses a certain set of processes, and come up with new designs, by asking what the innovation(s) could do for the processes and the involved stakeholders. 
Key characteristics: it starts with innovation,specialists assess and come up with the new to be process(es) blueprint, with top support, and implement.  Business cases may play a large role, if the innovation requires extensive investments.

5. Architectural driven Re-engineering - top down
In this approach, a thorough analysis takes place, from a new fresh perspective. All key questions around a business area is re-addressed, often in combination with a renewed strategic positioning. What is our strategy, who are our customers, what value do we want to provide, what capabilities does this require, what functions are needed, what competences, leading down to the to-be processes.
Key characteristics: is starts with the question why what, and through strategy, principles, and implementation decisions leads top-down to a process design, that is implemented.

So, here are 5 tools for your toolbox. Are there better or weaker approaches? No, it depends on the client situation and requirements. Can you manage all of these? That's a tough question. In my 20 years of process work, I think one can cover these approaches fairly well, but it takes time, effort and opportunity.

I actually think there is a sixth approach. It's called Design Thinking applied to process design. I am still investigating this approach. More to follow!

In addition, it's good to know that as part of the approach, as a BPM-specialist you will always need to figure out the type of role you need to take. This could vary from:
- Specialist/Key designer - you bring in the knowledge on improvement and design practices + the know-how on the specific process and possible improvements
- Facilitator, you help key process participants and stakeholder to discover the to-be process
Of course, typically elements of both roles can be needed. I most like the situations were clients want to learn the stuff themselves (as it's their process, their asset!), and I shift over the time from specialist to facilitator / trainer.

Last, it's also important to understand the change dynamics in the client organization. Is there a pragmatic go-try it and improve culture (promoting incremental - developmental approaches), or a more blueprint driven, think and align before trying (which asks more for a blueprint - approach)

Saturday, May 24, 2014

Evolution in business-application alignment

In the 20 years that I have been working in IT, I have seen a shift in the way we try to align business needs and applications. The following diagram visualizes this shift and gives a prediction on what's trending. Note that I see various organizations still working in one of the earlier steps. 

At level 1,  we see organizations that struggle with issues (or have new objectives), that require changes in the application-landscape. At level 1, these issues are directly translated in solutions. Typical situations: business managers with enough power to order direct implementation specific solutions linked to these issues and needs: 'We want system XYZ installed' or 'Please give us 3 new tables in Oracle DB XYZ, so that we can store data XYZ'.  In these situations alignment risks are quite high: IT gives the solution, but this solution might likely not solve the business issues (surprise). (Hence the difference between the purple triangle - 'what we wanted', versus the blue circle 'what we got')

At level 2,  we see the first decoupling, where IT-requirements are used. As business analysts, we try to understand the issues, their cause and effect, and come up with traceable implementation independent requirements (functional, non-functional), that than can lead to application design and development.
Working with requirements also supports creating clear priorities. However, depending on the requirement process and content, multiple translations might be required, leading to possible information loss and assumptions. IT-requirements can also result in analysis-paralysis, and Big Design Up Front.

At level 3, we choose a process analysis focus. We try to understand the issues and needs, from a end-to-end process perspective, and looking from various angles: customer, employee, management giving better context and cause & effect analysis of the issues. Various business and process requirements are defined, leading to various process designs, and possible process - application support scenario's and requirements.
I would call this the BPM-approach. Clear process governance / ownership can support this step, but not all organizations are at this process maturity level. I find that risks of information loss and assumptions is relatively small - business people and IT people can understand the process design and the IT-requirements, through a better contextual perspective,

At level 4, we see organizations adopting agile model driven technology (BPMS, BRMS, MDA). The big advantage is typically that in very short time frames, applications can be created, evaluated and adapted : what you see is what you get. However, the optimal use of this technology, does require this level of alignment and sufficient process maturity. Otherwise, expensive technology will end up being used in level 1 or 2.

Level 5 is something new for me, and I am slowing seeing this level appear in some organizations (but still in infant mode, typically). This level is based on Human Centered Design, where customer experience, user experience and employee experience are put centrally. This is still about starting with business issues, but then focusing on human behavior (why are this issues occurring), to what experience do these issues lead, and then trying to find alternatives, test them and iterative refine them, until involved people report sufficiently improved experience and show behavior more in line with business expectations (but these expectations may have shifted, based on new insights during these iterations). As human behavior is difficult to predict, agile research is needed, based on various Design Thinking approaches. It leads to applications that engage.

Where are you in your organization? And perhaps the answer is: at various levels, depending on the business area and type of application. Here Capgemini's Application Layers come into focus, see
But perhaps we all end up in 5 and 6. And what's 6? What do you think?

Thursday, February 27, 2014

Collaboration models for business (process) analysis en design

When doing business analysis and process/solution design, I have encountered various situations with clients. Each of these situations required me and my team to come up with smart ways to come up with a desired future view, with the right consensus from the key stakeholders of the client. 
Some of these ways failed terribly. Some succeeded. Which, of course, triggered me to try to understand what may have caused this. My preliminary analysis has brought many points, and I want to cover one of these in this blog-item: how to pick the right analysis & design approach for the given stakeholder situation.

Recently I was interviewed, and the interviewer asked me when I would choose what type of analysis & design approach. We came up with the following model:  

Two axis (how I love these models :-)):

1. Stakeholder availability
This one is a clear one, and often an issue for process or solution design teams. In many situations, the time we want from our stakeholders is more than they can or are willing to give us, due to other priorities.

For instance, in a previous project, the department we were working for, was also struggling with a reorganization, a management change and various changing legislation, that all needed attention. The result: we had limited access to key subject matter experts. Trying to schedule long workshops would not have worked.

2. Stakeholder ability to envision what they want and to formulate it
This one is more tricky. It has to do with the complex mix of people involved in your project. How much knowledge do they have of the current situation? How open are they to innovation? How much knowledge do they have of their pain points? How much capability to see other ways/possible improvements?

For instance, in a previous project, a bank wanted to adopt a document management systeem, with scanning software, to digitally route documents and create more complete customer views. Their knowledge and experience in document management, and in these IT-changes was very limited. Asking them what they wanted would not have given valuable answers. Even in terms of requirements, they needed a lot of work.

My belief is that in the combination of these two variables, one can find four main approaches for analysis and design of a desired future.

A. High ability, High availability: co-creation
A dream for many designers. Working with people that know what they want, and might even know how they want it, and enough time to dive into details. For me, the approach in this situation is co-creation, in which the competences of the stakeholders combined with the A&D-team are leveraged to come up with the desired future. I usually work with groups and iterations, using facilitated sessions and various work-forms.
In some cases, the A&D-team could even revert back to a pure facilitation-position, but many times still will need to bring in feedback around feasibility.
In my days of BPR/Rapid Application Development, we often could run 2 - 3 week workshop weeks, where we had a full team of stakeholders. Great times, but I see less and less of this, unfortunately.

 B. High ability, Low availability: rapid elicitation and design validations
This situation I encountered at a Investment department of an insurance company. These people were security traders, were earning lots of money per hour for the company, and could hardly be missed. They fortunately had a very sharp eye on the issues and required changes in processes and IT-systems.
In this model I choose for one-on-one short interviews and quick validation sessions using very concrete results (prototypes).

C. Low ability, High Availability: Empowerment and stepwise 'Co-invention'
This is a situation I am currently in with a client. We are getting time from a number of people, with sufficient knowledge of the current situation, some knowledge of pain points, but also a lack of understanding of possibilities. And even: in same cases they have gotten used to certain pain points and take them for granted.
Their ability to envision and formulate a desired future is limited (but growing!)
The key point is: people can, and often like to grow. Another key point: all people can contribute value. It is easy to fall in the consultant arrogance-trap 'They don't know, so we will tell them what they want'.  This often fails. And if it succeeds, certain gems that the stakeholders could have brought, are lost.
The approach we have chosen in this situation: empower these people with knowledge (solution concepts, technology, requirements formulation, etc.). And work with them, to define, in steps, the desired future, firmly from their perspective and starting points. Make them discover parts of it, by feeding them with concrete possibilities, and then translate back to requirements. In our situation this approach has given many new insights, that were also unknown to us!

D: Low ability, low availability: Trust based best practice injection
So you are given a client, with no time, a burning need, but no real capacity to define the desired future (only to a certain high level extend). Ouch. In this case, the key factors are trust and the availability of certain best practices, proven to work in the client's context. The approach is to adopt a certain best practice framework, and simply go do it. Implement, perhaps in pilot forms, and then learn, adapt, and extend.

A third factor: the domain/technology knowledge of your team
A factor that also influences these choices is the knowledge and experience in your analysis&design team.
If the knowledge in your team is high, all approaches above will work.
Is the knowledge in your team low, then....
- Option A is only possible, if the client accepts your team as purely facilitating (and your team learns very quickly)
- Option B will become demanding. Challenge: how to get the respect of these visionary professionals?
- Option C will become time-consuming, as both the client and your team will need to learn. Challenge: do you have the time, and does your client have the money and willingness?
- Option D will become very risky, don't go there.

 My conclusion: pick the right approach for the right condition! And tell me what you think....