Archive for the ‘requirements development’ Category

Human Sensor Networks

13 March, 2013

Michael Cheveldave from Cognitive Edge wrote a blog on human sensor networks. It is excellent reading material. This blog contains the highlights of Michael’s explanation, with references to Agile IT development and DevOps.

By changing human sensor networks into customer sensor networks, I merely focus on the application of CSN in IT Agile development life cycles. You may easily argue to keep human sensor networks, as also own employees or other relevant stakeholders provide feedback using the CSN system.

Michael explains the role SenseMaker® plays in delivering organizations the value of human sensor networks.

… by engaging a large number of people in the process of making sense of their everyday experiences and observations, and allowing meaning to be effectively layered on such experiences we stimulate a network of agents in the systems to make sense of the system themselves.

By integrating different customer groups in functionality definition we will

  • easier and sooner understand real customer needs
  • build a fruitful relationship with the customer-base
  • create pro-active sponsors at the customers of the product
  • enable the customer-base to better understand their needs, and innovative possibilities that the organization can provide
  • better understand which private betas to be tested by which user group type
  • better understand collected quantitative data by means of this qualitative data

… think about how traditional approaches often emphasise the value of external experts or selectively privilege a small team within the company on such strategic decisions.

The decision making process which functionality to build and release

  • focusses more quickly to that functionality actually needed by customers
  • enables, together with feature flags, different features to be released to different customers types (based on their needs)

Sales and marketing collect valuable information on their targeted customer groups. Information is achieved cheaper, faster and more reliable then based on traditional marketing research.

The approach (a human sensor network AK) allows for the executive team to tap into the distributed cognition, intelligence, scanning, and knowledge of a broader network in a way that effectively informs key strategic decisions.

Reading experiences, ideas and frustrations from actual users, exposes product management, marketing managers and developers to the impact of their initial ideas on what functionality is needed. When well guided, the team will quickly and easily understand existing patterns and needs. Future releases are more effective and efficient.

The ultimate result is a learning organization. People from different organizational silo’s co-interpret and co-decide based on both trends and contextual information. This leads to an organizational wide understanding of and believe in the business goals and opportunities.

Customer Sensor Networks

12 March, 2013

Agile software development has 2 major positive attributes: the short release cycle and the possibility to integrate release-feedback rapidly in the product backlog. In this blog Customer Sensor Networks (CSN) are explained as a mechanism to integrate the Agile software development life cycle with customer feedback effectively.

CSN enables insight in what functionally is needed or wanted. To understand customer needs can be a challenge. In many cases customers do not have any idea what is possible in terms of functionality.

What is possible is in the heads of the developers, architects., analysts or product managers. But what is technically possible is not always wanted or needed by the customers.

The short feedback loop with a short time to market, enables product management to ‘test’ how features are accepted by (parts of) the customer-base. Implementing CSN lets the organization understand effort- and cost-effectively what functionality customers are willing to pay for. It is a good idea to involve the marketing strategy in the development life cycle.

Which customers to select is based on their expertise or area of interest. A variety of customer-types increases the variety of feedback. Innovators will appreciate other aspects then customers in the early or late majority groups. Which profiles you select, will be based on the business and business objectives.

Customer Sensor Network

Figure 1: Customer Sensor Network implementation.

The CSN explained here is based on Sense Maker® software of Cognitive Edge.

The CSN uses an online collector website which pre-processed the information for the product owner and the DevOps teams. Pre-processing is done by the CSN and based on the information provided by the customers.

The Feedback analysis consists of functional evaluation and an emotional aspect. The functional aspects cover things like how features are used or what is missing. The emotional aspect lets product owner en DevOps team members understand what (missing) functionality does with customers. The emotional evaluation is important to understand and support marketing aspects of the product.

Techniques like private beta’s or feature flags enable teams to manipulate releases to different test- or customer groups.

Figure 1 also shows typical takt times in a CSN system. Takt time and wait time lets the DevOps team and product owner optimize flow and adjust overall throughput time with the expectations of the different test groups. This example shows a sprint of 3 weeks. The test period is set for 1 week. Then the feedback is evaluated 2 weeks after the DevOps team finished work. Depending on the expectations of the customer test groups, the waiting time for the customer groups to learn what the effect of their testing has been, might be too long.

Using customers in the development life cycle presents some challenges to the organization. Aspects to take into consideration are incentives and how they (in)formally integrate in the communication plans. Incentives may differ per customer type. For example, for innovator’s their name can be listed on the product website as contributors, or they are invited on some regular basis to the development site to discuss with the DevOps teams and product owners. The early and late majority groups can be given a free license of the product.

CSN provides an effective organizational and team learning mechanism. New idea’s can be tested rapidly and (cost-)effectively. CSN triggers a business approach to Agile development. Developers, maintenance people, product management and marketing all learn as a team what it is that makes their customers happy or dissatisfied.

Applying customer sensor networks (CSN) in Lean Startup and DevOps teams

7 March, 2013

The Lean Startup movement addresses the issue to match product functionality to market demand. For this a contextual external customer feedback loop needs to be implemented. A customer sensor network using SenseMaker® provides online, real-time and continuous contextual feedback, closing the feedback loop.

SenseMaker uses an online collector website that lets customers provide feedback by means of narratives. Each narrative gets a title. The customers also provide additional meaning to their narrative. The system categorizes feedback based on the meaning given by the customers. This avoids overhead during analysis for the organization. The SenseMaker analysis software supports the evaluation of the feedback. Enabling effective and short evaluation time. This feedback mechanism enables evaluation of large amounts of feedback from different customer or user groups.

The analysis software provides both quantitative and qualitative evaluation. The quantitative aspects provide insight if functionality acceptance level. The qualitative aspects provide deeper insight in innovation opportunities. For example alternative or unforeseen use of the functionality. On the other side of the same scale, the feedback points to a risk or threat. For example that the new functionality is not well accepted by early innovators.

Customer sensor networks integrate with Lean Startup pilot experiments and DevOps private beta’s. It also provides for DevOps implementation the needed internal and external feedback for development. The internal feedback from operations to development is useful in case when the DevOps consists of multiple team in different locations.

CSN makes it possible that for some types of development, product management joins DevOps teams to form ProDevOps. This really reduces overhead and transition costs. It enables a whole new approach to app development in a true Agile manner.

 

SenseMaker is a Cognitive Edge product linking micro-narratives with human sense-making to create advanced decision support, research and monitoring capability in both large and small organisations.

 

Applying SenseMaker® in scrum projects

2 July, 2012

In earlier blogs I showed how SenseMaking software ecology and the Cynefin model support Agile development. In this blog I’ll explain how to SenseMaker® supports gathering large amounts of user stories or feedback. These stories are input for the product back log and the product vision.

SenseMaker® enables software developing organizations to involve large groups of users or customers in both the requirements gathering phase and the maintenance phase. This gives them an advantage over their competitors. The input and feedback ensure that the new functions are adequate and fulfill a concrete demand.

Story tellers enter their stories on website. After entering their stories they are asked to provide additional meaning to their stories. This provides for valuable additional information. This is called signification and forms the core of the requirements gathering process. The signification framework is tailor-made. It structures the hundreds or thousands of stories in such a way that the development team is able to analyze them effectively.

In a next step the development team(s) analyze the entered stories. During the analysis the team transfers the raw user stories into a product back log. The backlog reflects the concrete demand of the users and customers. As the categorization incorporates a prioritization the development teams knows which functionality is to transferred to the sprint team first.

Emerging functionality
Once the sprint teams deliver their first functionality to the users, SenseMaker enable real-time feedback. This mechanism allows end-users to evaluate and try out new functionality and provide instant feedback. Because of the automated and real-time feedback mechanism the development is able to deliver only functionality for which is a real demand. It is also possible to try out new stuff end-users have not seen before.

The above described mechanisms provides a great advantage for the organization. First it doesn’t waste valuable development capacity on irrelevant functionality. Second, both first–end-users and developers feel appreciated as their ideas and thoughts are directly used. Thirdly because the organization is able to produce new functionality in a lean and flexible manner, the organization gains the recognition being innovative and customer-centric.

Cynefin-agile requirements development using SenseMaker®

6 June, 2012

In a previous blog I wrote on Lean and Agile software development with Sensemaker.
In this blog I’ll further explore the actual use of Sensemaker for initial development of requirements for software projects. I also explain the process of distilling high level requirements into detailed user stories.

In standard fail-safe software development environment, requirements development is a steps-wise process from high level business- or user requests into smart allocated product component requirements.  This is a process which intertwines with constructing a Work Breakdown Structure. This breaking down enables the project to determine a high level overview on the work to be done. It is the vision of what the end product is about, without yet knowing the functionality in detail.

At this point the project decides on the approach to develop the functionality (e.g. scrum, waterfall, etc.) and how this is delivered to the customer. Typically if the environment is both complex in terms of number of requirements, the number of stakeholders involved and the frequency that requirements change, a Cynefin-agile approach is recommended.
If the set of requirements is limited and clear from the outset, just use the waterfall method or, if you can’t resists, apply agile-scrum.

In order to apply the cynefin-agile approach the use of signifying large quantities of requirements in SenseMaker is recommended. Using SenseMaker involves signifying the requirements or user-stories. Signifying can be done by the providers of the user stories, or by SenseMaker. It reduces the overhead of handling large amount of stakeholder input significantly.

Signifying provides a structure that enables the development team to view large amount of entered stories from different viewpoints. (during maintenance of the delivered product this method provides strong innovation opportunities).
Analyzing the signified set of requirements/user stories provides the product backlog.

Another element of cynefin-agile are the so-called experiments. In early stages of new development, neither the stakeholders, nor the development team have a clear picture of what is to build. So in stead of the standard fail-safe approach an Safe-Fail approach is opted.

Safe-fail provides an development environment based on learning. Only by learning the development team and other stakeholders are able to gain an understanding of the capabilities and opportunities to be developed. Experiments are started on some selected user stories from the product backlog. Mark that failures of some experiments are expected! This failure provides the must needed learning. Learning provides valuable insight in the risks and innovation possibilities.

The functionality delivered after each sprint or increment is evaluated by the team and stakeholders. Experiments are either stopped or enforced. In such way, all parts of the vision can be addressed.
The delivered functionality is co-created by the development team and all stakeholders.

Using Sensemaker® enables development teams to apply the cynefin-agile approach of safe-fail software or product development.

Lean development: from safe-fail design to safe-fail experiment

24 April, 2012

Safe-fail design is tricky and almost impossible. Safe-fail experiments using the Cynefin-model and SenseMaker®-tool suite provide a much better solution.

Safe-fail-design is nearly impossible because the design-team takes early decisions which are only much later delivered to customers. When decisions are made early in the development life cycle, not all aspects, related to that decision are known. It is more then likely that issues pop up much later. Correction of faulty early design decisions becomes a costly, frustrating and sometimes technically tricky issue.

Safe-fail experiments work best in complex environments. Complex environments have many stakeholders, of which many have different backgrounds and therefore different needs, wishes and constraints. All these have to be incorporated somehow in the total set of requirements.
In this fast moving world, stakeholder needs, wishes and constraints, never stay the same for a long period of time. The designer(s) have to take this into account. But how?

As earlier mentioned, the Cynefin-model provides a solution placing design-problems in the complex domain. The linked solution of complex problems is to experiment on a small scale with different possible solutions. Those that work are continued and strengthened. Experiments that does not work are simply ended. Lean Development incorporates experimentation.
Using lean development, the complete development team designs, builds, tests and delivers a small (set of) functionality within 2 or 3 weeks. This way an environment for experimentation is created for the development team to find out if they actually do have a correct common understanding on the meaning of the needs, constraints and wishes of the stakeholders. This enables safe-fail experimentation.

This solves the first part of the problem. The team is able to deliver to the stakeholder that functionality that the team believes is exactly what the stakeholder needs. If it is not, the team has learned a valuable lesson against low cost. The stakeholder is content that the development team listens to his needs and that they take him seriously.

Now to the aspect of the huge amount of stakeholders and their variation. Additionally stakeholders may not be located near the development team, and they might speak different languages.
Also typically stakeholders do not know what they actually want to have. They do not know what is possible. And if they know all the aforementioned, they often lack the words to bring across exactly what they need to the design-team.

Story telling is a proven way to share information on a complex problem. By letting stakeholders tell their (vision and user)-stories, they focus on what is important and critical for them. Stakeholders add additional meaning to their requirement specs (through SenseMaking). This eanables the development team to identify and evaluate patterns that are present in the metadata to understand the requirements in the stories and priotize them. The software and the characterization process supports different languages.

Combined, the 2 approaches provide a solution for organizations to handle many critical stakeholders who move with their views and opinions in this fast emerging world.
Safe-fail experiments support functionality to emerge during development.

In a later blog I’ll describe how to get from a vision-level of user stories to a user story which a development/sprint team can deliver in one sprint.