Archive for the ‘testen’ Category

Giving customers their legitimate place in software development.

26 August, 2013

Being really lean means that only that functionality customers use (and are willing to pay for) is developed and released. That means being so agile, that trends and patterns in customer needs/wishes and problems are continuously understood and drive service/product development and delivery.

For this the ‘voice of the customer’ needs to be continuously monitored. The result of the listening is to be analyzed and integrated in the development life cycle (e.g. product backlogs).

As not all new functionality or innovations originate from customers, also the ‘voice of the internal-experts needs to be continuously monitored. This knowledge, experiences and ideas is integrated in the development life cycle as well.

In earlier blogs I wrote in Customer Sensor Networks. Being the same subject, it lacks the natural place in the present developments in agile software development methods. By lack of a better word I use in this blog the term CusDevCus which stands for Customer-Development-Customer. With Development I mean the complete development lifecycle including Marketing, Sales, Product Management, Development, Release and Operations, ect. I am open for any better term.

Core elements of CusDevCus are:

  1. Integrated customer feedback (or external expert feedback) into the development life cycle loop to create integrated feedback,. Integrated feedback
    1. is unlimited in size, the larger the amount of participants, the more effective the next release,
    2. gains insight in trends and weak signals for present and future functionality,
    3. is generated in the form of testing developed functionality as well as new (unrelated) ideas.
  2. Integrated employee (as internal experts) feedback with the same aspects explained under the integrated customer feedback and
    1. open to all employees, continuously…
  3. The feedback combines both quantitative and qualitative information.
  4. Each feedback is signified by the feedback provider. This provides navigation through large amount of feedback.
  5. The Product Owner analyses the feedback-patterns. The combined quantitative and qualitative information enables both a deep understanding of the explicit functionality-feedback and the high level patterns.
  6. Because the feedback is integrated in agile development methods (like Scrum, Kanban, OpenUP, ..) experimentation of new functionality is possible in a semi-real environment using real customers.  This seriously reduces R&D and Sales and Marketing effort and optimizes organizational learning.
  7. CusDevCus fully builds on devOps, BusDevOps lean startup and other agile evolutions.
  8. CusDevCus is based on open feedback in the form of narratives. That means there are no preformatted testforms or questionnaires for feedback.
  9. Of course the open format feedback does not eliminate the need for professional testing!

10. CusDevCus focuses on different user groups. Different user groups have different needs. They reveal different uses (or no use) of functionality.

In my view the above described next step in agile (software) development is a natural one. The main question is whether companies are able to make the mental shift to integrate the customer as described in the software development lifecycle.

Advertisements

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.

Balans in sturing en creativiteit

23 January, 2010

Sturing

Overal worden fouten gemaakt. In de ontwikkelingsprogramma van complexe producten zoals medicijnen en de ruimtevaart kunnen fouten zeer kostbaar zijn. In de vorm van geld én mensenlevens.

2 klassiekers: In de samenwerking tussen Europa en Amerika voor de Mars Orbiter ging de Orbiter verloren omdat de software en commando’s vanuit verschillende systemen werden gegeven. De software in het ene stelsel, het hoogte commando vanuit het andere stelsel.

Een ander voorbeeld was de introductie van een medicijn in Amerika. Doordat de Europese fabrikant een onvolledige stakeholderanalyse had uitgevoerd, werd de fabrikant door een over het hoofd geziene partij, gedwongen de introductie uit te stellen tot alsnog goedkeuring werd verkregen.
Er zijn overigens ook grappige anekdotes te vertellen. Zo stonden op een avond in het zonnige Californië robots, die normaal sinaasappels plukken, allemaal met de armen in de lucht te graaien. Oorzaak was de mooie grote felle rode ondergaande zon…

Eenvoudig te vermijden fouten die veel, heel veel geld en frustratie hebben gekost.

Het is kortom noodzakelijk dat er afspraken worden gemaakt. Deze dienen te worden overeengekomen, gecommuniceerd en getraind. Dit procesmatige manier van werken levert vaak problemen op, omdat mensen zich beknot in hun vrijheid voelen. Door te rigide processen wordt de aanwezige en benodigde creativiteit niet benut. Zowel eindproduct als medewerker zijn de dupe.

Creativiteit

De andere kant van de medaille is dus het zoveel mogelijk vrijlaten van de experts om door middel van creatieve ontwikkelingsprocessen, geniale producten te ontwikkelen.

De uitdaging is dus het potentieel bij de medewerkers aan te boren.

Neem b.v. het reviewen en testen van ontwerp of architectuur of geïmplementeerd systeem.

Het testen van een complex systeem is een kunstvorm op zich. Zo dient niet alleen de gevraagde functionaliteit te worden getest. Ook dient er te worden nagegaan of het systeem bv niet méér doet dan afgesproken. Dit voorkomt dat de ontwikkeling langer duurt dan nodig en ook minder complex dan nodig.

Een leuk voorbeeld hiervan is de programmeur die in een bank applicatie de honderdste van centen liet overmaken naar zijn eigen rekening. Per handeling niet opwindend, maar bij miljoenen transacties…

Verder dient te worden nagegaan of de systemen de juiste input accepteerd. En zo zijn er nog meer vormen en onderwerpen van testen en reviews.

Binnen de beperkte tijd die voor reviews en testen wordt ingeruimd, dienen de testers dus al hun creativiteit aan te wenden voor een optimaal test resultaat (= het vinden van alle kritische geïntroduceerde fouten).

Waar ligt de balans tussen tijd, balans, functionaliteit en kwaliteit.

Oftewel, in welke mate dient hier te worden omgegaan met afgedwongen kaders en creativiteit?

Creativiteit voor kwaliteit begint al in de beginfase. In deze beginfase worden testscenario’s bedacht en geëvalueerd. Goede technieken zijn risico identificatie en doem-scenario’s. Beide doen feitelijk hetzelfde, namelijk de tester de vrije hand geven in het verzinnen van alle de mogelijke begintoestanden en vervolgtoestanden op basis van externe en interne invoer.

Door geld- en tijdgebrek echter, zijn creatieve testsessies uit den boze. De tester wordt meer aangesproken op de hoeveelheid testcases die zijn afgewerkt, dan op de diepgang en risico-eliminatie door de testen.

Deze 2 factoren, tijd en geld, hebben ook een rol gespeeld die leidde tot het Columbia Spaceshuttle ongeluk. Eerlijkheidshalve moet hier dan ook vermeld worden dat hier óók het niet volgen van de eigen procedures door NASA flight control een rol heeft gespeeld.

Creativiteit en openheid, het met een open visie naar een uitdaging kijken, leidt tot betere en snellere resultaten.

De uitdaging voor het sturende gedeelte van de organisatie, is hier een balans in te vinden met de uitvoerenden. Er zijn methoden die hier een nuttige bijdrage aan kunnen leveren. Naast de al genoemde risico georiënteerde manier van problemen vinden voordat ze zich voordoen, het uitwerken van scenario’s om alle mogelijk situaties te identificeren zijn er nog andere methoden. Zo kan systeem denken helpen complexe systemen beter te doorgronden om hiermee de meest kritische onderdelen te isoleren en verbeteren. Het Cynefin model van Cognitive Edge kan in de complexere wereld waar systeem denken ophoudt een uitkomst bieden.

Naast deze technische ondersteuning is echter de allerbelangrijkste tool die ons ter beschikking staat, de dialoog. Gratis en voor niets.

Het begint al met het spreken met de eindgebruiker, de klant. Wat wil die nu echt? Ben ik als leverancier in staat het probleem, waar ik een oplossing voor ga bouwen, echt door de ogen en gevoelens van de klant te ervaren? Vaak staan hier luister- en kijkfilters in de weg. De weg van de dialoog helpt hierbij.

Overigens niet alleen in gesprekken met de klant speelt dialoog een grote rol. Denk aan al die mensen die ergens in de productieketen een rol spelen. Hoe zou het helpen, wanneer deze mensen écht met elkaar spreken, in dialoog met elkaar zijn.

Toch mooi om te zien dat het oudste hulpmiddel die wij mensen kennen, ons in deze moderne tijd, nog altijd van pas komt om onze moderniteit nog beter en mooier te maken. Ook NASA heeft de dialoog herontdekt.