Add Continuous Planning to your CD 3.0 pipeline

A Continuous Planning platform supports the development and management of an Agile portfolio. It consists of an Agile portfolio that is continuously managed and visualized to stakeholders. In this post we show the setup of Redmine as open source alternative for Jira. Redmine is completely free and flexible with many plugins.

Redmine is part of our Continuous Delivery 3.0 platform that supports the complete Agile software development lifecycle, from concept to cash. The platform enables delivery of features from design to released to production in minutes. The video below presents the full platform, zooms in on Continuous Planning and then the tool Redmine.

 

 

 

 

As mentioned in the video Redmine runs on an Ubuntu 17.04 platform with Ruby, mysql, Passenger and Nginx. The installation procedure:
1. Ubuntu 17.04 VM with 1 CPU. Port 8080 and dependency installation
2. Install Ruby and configure MySQL
3. Install Phusion Passenger and Nginx
4. Contigure Nginx
5. Install Redmine and run Redmin
6. Install and run Redhopper plugin
7. Install and run Redmine Agile plugin
8. Demonstrate the final result

After performing the complete procedure Redmine runs on the VM and is accessible via the url., as shown in the video below.

 
 

Below you find the video series of the detailed installation and configuration. The video's are intended for reference as we have the detailed installation script available.

Feel free to contact us if you would like to receive the script or would like to receive  more information regarding our Continuous Delivery 3.0 platform.

 

 

Step 1: Google Cloud, Ubuntu 17.04 and Dependency installation

Step 2: Install Ruby and configure MySQL

 
 

Step 3: Install Phusion Passenger and Nginx (boring)

Step 4: Contigure Nginx

 
 

Step 5: Install and run Redmine

The completes the installation of Redmine.

As bonus we also install the two plugins to add Agile features.

 
 

Step 6: Install and run Redhopper plugin

Step 7: Install and run Redmine Agile plugin

 
 



Kijk voor meer cursusinformatie op onze cursuspagina

Build your Continuous Integration Pipeline with Google Cloud Platform

In this blog we demonstrate the creation of a Continuous Integration pipeline based on Google Cloud Platform. The blog includes a video showing the step-by-step setup from scratch.

Continuous Integration is one of the corner stones of the Continuous Delivery 3.0 pipeline. Continuous Integration needs orchestration to perform a number of actions: fetch the source code from the repository, build the code, do code quality checks, run unit tests and store the target files in a component repository.

The video below shows how the orchestrator is installed on Google Cloud Platform. Google Cloud offers IaaS and PaaS as cloud solution for the pipeline.

In the video the following steps are processed:
1. Login onto https://cloud.google.com
2. Start compute engine
3. Create the Linux based Virtual Machine, accessed by open SSH
4. Install the Java Runtime Environment : sudo apt-get install default-jre
5. Install jenkins
    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update
    sudo apt-get install jenkins
    sudo /etc/init.d/jenkins start
6. After installation a few check commands
    curl -vvv jenkins:8080
    curl -vvv <public ip>:8080
    browser <public ip>:8080

The video was shot once in real-time, so without editing and fuzz:

 

 

 



Kijk voor meer cursusinformatie op onze cursuspagina

Snelstart gastspreker op start cursus Continuous Delivery 3.0

27 september 2017 is een belangrijk moment op de campus van Universiteit Utrecht . De start van de post-doctorale najaarscursus Continuous Delivery 3.0.

In de cursus leer je hoe je een state-of-the-art Continuous Delivery 3.0 pipeline opzet. Een Agile platform om software in hoog tempo te ontwikkelen. Een platform met een mix van open-source producten en cloud-platformen. Een platform dat het gebruik analyseert en rapporteert, voor bijvoorbeeld Product Owners, zodat IT teams de juiste software gaan ontwikkelen.

In bijna elk cursusdeel hebben we een uitstekende gastspreker uit de software-industrie. De gastspreker in het eerste cursusdeel is de software architect van SnelStart. SnelStart is een prachtig Nederlands bedrijf dat op een zeer Agile wijze software ontwikkelt met een ver ontwikkeld Continuous Delivery 3.0 platform.

We kijken uit naar de komst en danken onze collega's in de industrie.

 
Henry_Been_ContinuousDelivery.jpg
 
"Namens SnelStart zal ik vertellen over onze groei en de bijbehorende verbeterslagen door de IT-afdeling. In die jaren hebben wij een "continu leveren" cultuur gerealiseerd. In korte cycli, van soms minder dan een dag, gaan we van "idee" naar "geleverd". Intussen werken we al aan het plannen van de volgende wijziging. Plannen, leveren, testen en daarvan leren lopen vol-continue, parallel aan elkaar en er is een constante feedback loop tussen alle activiteiten.
In een uur zal ik de deelnemers inspireren met de reis van SnelStart. Daarbij komen ook de onderwerpen continuous planning en continuous intelligence uitgebreid aan de orde. Dit zijn de onderwerpen welke het niet gewoon continuous delivery... maar continuous delivery 3.0 make. Het zijn precies de onderwerpen die op dit moment vol onze aandacht hebben."

Meer informatie over de cursus is hier te vinden. Inschrijven is nog mogelijk.



Kijk voor meer cursusinformatie op onze cursuspagina

Continuous Intelligence: ook zonder Cookies inzicht in het gebruik van je software

Continuous Intelligence is een van de vijf pijlers van Continuous Delivery 3.0. Continuous Intelligence geeft je inzicht in het gebruik van je software. 

Bij Continuous Intelligence doorloop je telkens drie stappen. Stap 1: het verzamelen van gegevens over het gebruik van de software, Stap 2: het uitvoeren van intelligente analyses op de gegevens. Stap 3: het maken van overzichtelijke rapportages voor de Product Owner of Software Product Manager.

 
 

Verzamelen van gegevens
Een van de bekende manieren is het verzamelen van IP-adressen; welke IP-adressen maakt gebruik van de software. Daarnaast worden Cookies nog steeds veel gebruikt. Een Cookie is een klein tekstbestandje dat door de software wordt opgeslagen bij de webcliënt (lees: webbrowser).  Hierdoor ziet de software of een webcliënt terugkeert. En kan de software bij het tweede bezoek andere informatie tonen. Een webcliënt kan ook worden gevraagd om gegevens over de cliënt (lees: device) te sturen. Hiermee kan de software voor dat device de presentatie optimaliseren.

Combineren van gegevensbronnen
Als gegevensverzamelingen gecombineerd worden, dan nemen de mogelijkheden exponentieel toe. Bijvoorbeeld met het combineren van Facebook, nieuwsbrieven en log-files kan je conversie meten over leeftijd en geografie. Zo bouw je een veel nauwkeuriger beeld op van het gebruik van je software.

Selecteren van gegevens
Weet wat je wilt weten en rapporteren. Op basis daarvan kun je de juiste gegevens verzamelen, analyseren en rapporteren. Het kan bijvoorbeeld zinvol zijn om te analyseren hoe gebruikers de frond-end gebruiken. Hiertoe worden met een script muisbewegingen verzameld. Het programma Hotjar geeft zo in een heatmap weer langs welke paden de muis over het scherm beweegt. Hieronder zie je een voorbeeld hiervan:

Samenvattend
Met Continuous Intelligence kan informatie online, verzameld, geanalyseerd en gerapporteerd worden. Product Owners of Software Product Managers houden zo overzicht over waar het Agile team het beste aan kan werken. Als je meer wilt weten over Continuous Intelligence dan is de Continuous Intelligence sessie van de cursus Continuous Delivery 3.0 van het NISI een goede optie. Hier leer je analyse-technieken te integreren in je eigen software, zodat je niet afhankelijk bent van gegevens die bij een derde-partij worden opgeslagen.

Je leest regelmatig meer over Continuous Delivery en Continuous Intelligence op het blog.

 



Kijk voor meer cursusinformatie op onze cursuspagina

Overwin de beperkingen van Continuous Delivery

Met Continuous Delivery kun je software geautomatiseerd opleveren, in plaats van handmatig. Continuous Delivery stelt Agile development teams in staat om software kort-cyclisch te leveren. Maar als je maximale waarde aan je klanten wilt leveren dan vul je Continuous Delivery aan met Continuous Intelligence en Continuous Planning.

Waaruit bestaat Continuous Delivery?
Continuous Delivery kun je indelen in drie hoofdgebieden,

  • Continuous Integration
  • Continuous Testing
  • Continuous Deployment

Continuous Integration betreft het continue integreren van source code onderdelen in de code base. Continuous Testing omvat het continue testen van de code, componenten en systemen. Continuous Deployment is het continue uitrollen (lees: installeren) van code, componenten en systemen op (virtuele) omgevingen. Samen vormen het de Continuous Delivery pipeline. Hieronder zie je een plaatje van zo'n Continuous Delivery pipeline:

 
 

Breidt Continuous Delivery uit met Continuous Intelligence & Planning!
Eigenlijk is Continuous Delivery maar de helft van het verhaal. De drie gebieden ondersteunen immers alleen het proces van coderen tot en met uitrol. Automatiseren van het werk voorafgaand aan coderen ontbreekt. Toevoegen van Continuous Intelligence en Continuous Planning vult dit gat. Samen vormt het dan de vijf hoofdgebieden van Continuous Delivery 3.0. Hieronder zie je de vijf gebieden dat het Agile team ondersteunt grafisch weergegeven:

 
 

Noot: recent is de term Continuous Tracking vervangen door Continuous Intelligence omdat Intelligence de lading van het concept beter dekt.

Wat levert Continuous Delivery 3.0 op?
Continuous Delivery 3.0 automatiseert de lifecycle van concept tot cash. Vanaf inzicht in het gebruik van de software t/m de uitrol van nieuwe softwareversies. Met Continuous Intelligence creer je dit inzicht en met Continuous Planning kies je de functies die de meeste klantwaarde toevoegen. Het team ontwikkelt functionaliteit dat de meeste waarde toevoegt voor de gebruiker. Het team wordt kosten-effectiever en krijgt een hogere klantwaardering.

Continuous Delivery 3.0 platform
Bij het NISI is begin 2017 een Continuous Delivery 3.0 platform ontwikkelt waarmee demonstraties worden gegeven. Ook wordt dit platform gebruikt om inzicht te krijgen in het gebruik van onze dienstverlening. Zo hebben we een App ontwikkeld om realtime te rapporteren over het gebruik van de website.

Samenvatting
In deze blog hebben we inzicht gegeven in de vijf hoofdgebieden van Continuous Delivery 3.0. Vind je deze informatie waardevol? De vijf gebieden hanteren we als basis bij de cursus Continuous Delivery 3.0 gegeven door het Nederlands Instituut voor de Software Industrie. Deze praktische cursussen geven je handvatten die je direct in de praktijk kunt toepassen, zo geven onze vorige cursisten veelvuldig aan. En ook de Continuous Delivery 3.0 workshops bij NederlandICT zijn een leuke manier om kennis te maken met Continuous Delivery 3.0. 



Kijk voor meer cursusinformatie op onze cursuspagina

De 5 uitdagingen van een Product Owner in het scrum team

Auteur: Jan Vlietland

Werken met scrum is al lang niet meer beperkt tot de IT afdeling. De methode bracht explosieve groei teweeg bij software start-ups en vond zo zijn weg binnen het hele bedrijfsleven. Met de toename van scrum in traditionele organisaties en andere disciplines dan ICT, groeit ook het aantal teleurstellingen. Scrum blijkt niet altijd de Heilige Graal te zijn waar iedereen op hoopt. De key to success of falen ligt vaak in handen van de Product Owner.

De 5 uitdagingen van de Product Owner

  1. Inzicht in de markt
  2. Productkennis
  3. Planning
  4. Het politieke speelveld
  5. Prioriteren

Inzicht in de markt

Onvoldoende inzicht in de markt. Een goede Product Owner ontwikkelt een visie op zijn markt. Als hij zich hierin onvoldoende verdiept, ontbreekt een goede basis om de juiste keuzes te maken. ‘Zonder inzicht geen uitzicht’.

Productkennis

Om goede prioriteiten te stellen is het belangrijk het product tot op detailniveau te kennen. Je moet immers weten waar het product nu staat en waar je het naar toe wil brengen. Ook is inhoudelijke kennis vereist om de haalbaarheid van de sprints te bediscussiëren met het team. Dan is een verregaande productkennis geen overbodige luxe.

Planning

Een ander veelvoorkomend probleem is het verdrinken in de waan van alledag. Een meeting hier, een standup daar, het specificeren van de user stories of het prioriteren van de backlog. Het speelveld van de Product Owner is breed. Hoe urgent sommige activiteiten ook lijken, de markt mag niet uit het oog worden verloren. Dit is de basis waarop de Product Owner functioneert. Een goede PO maakt dus tijd vrij voor marktanalyse.

Het politieke speelveld

Tot slot is er het probleem van verschillende belangen in de organisatie. De Product Owner bevindt zich in een lastig politiek speelveld. Hij fungeert als spil tussen de klant, het management en zijn scrumteam, waarbij hij als beslisser optreedt over wat prioriteit heeft. Een voorbeeld: al maandenlang is er die ene productbug. De doorn in het oog van de IT afdeling. Vanuit die kant groeit de druk om dit in de volgende sprint aan te pakken. Tegelijkertijd komen er alarmerende berichten vanuit de marketingafdeling; de klant lijkt een heel ander soort product te willen. Wat krijgt voorrang?

Prioriteren

Het navigeren in tegengestelde belangen speelt niet alleen bij verschillende disciplines, maar ook bij lijnmanagers en projectmanagers. In veel bedrijven is Agile werken nog niet in alle lagen van de organisatie geïmplementeerd, waardoor Agile en waterval methodes naast elkaar lopen. Vaak zien we dat Agile is geïmplementeerd op operationeel niveau, terwijl op tactisch niveau wordt gewerkt met lange-termijn planning. Deze ‘traditionele’ project- en lijnmanagers hebben te maken met harde deadlines en bijbehorend budget. Als er meerdere verzoeken binnenkomen en je kunt als scrumteam nog maar één project aanpakken, waar kies je dan voor? Uiteraard wil iedere partij zijn eigen belangen voor laten gaan. Wijs navigeren tussen deze (soms dwingende) belangen is een sleuteleigenschap van een goede Product Owner.

Product Ownership verder ontwikkelen?

De Product Owner is niet per definitie een technisch ingewikkelde rol. Maar hij heeft wel te maken met een breed speelveld en een complex, politiek krachtenveld. Het NISI organiseert in het najaar weer een 5-delige cursus Agile product ownership and product management voor Product Owners die zicht verder willen ontwikkelen in hun rol als Product Owner.



Kijk voor meer cursusinformatie op onze cursuspagina

Even voorstellen Sjaak Brinkkemper

Professor Sjaak Brinkkemper is hoogleraar Organisatie en Informatie aan de Universiteit Utrecht en één van de oprichters van het NISI.

Op welke manier ben je betrokken bij het NISI?

Het idee voor een kennisplatform voor de software-industrie en wetenschap speelde al een tijd. Ik ben blij dat we door een krachtenbundeling van het bedrijfsleven en de universiteit het NISI nu hebben opgericht. Als wetenschappers hebben we de industrie hard nodig om goed onderwijs te kunnen geven en goed onderzoek te kunnen doen. En anderzijds willen we onze kennis graag in de maatschappij inzetten. Via cursussen, certificering en congressen kunnen we nieuwe kennis beschikbaar maken.


Je bekleedt sinds 2004 de leerstoel Organisatie en Informatie aan de Universiteit Utrecht. Wat houdt deze leerstoel precies in?

Ik leg met name de focus op softwareproductie: het maken en leveren van standaardsoftware aan een brede markt.
Voor ons onderzoek kijken we zowel naar softwareontwikkeling op nationaal niveau als wereldwijd. Publicaties zijn hierdoor altijd Engelstalig. Ook onderhouden we informele samenwerkingsverbanden met andere software onderzoekscentra in bijvoorbeeld Italië, Spanje en Zweden.


In jouw carrière heb je een combinatie van ervaring in het bedrijfsleven en de wetenschap. Vind je dit een voordeel in je huidige functie?

De inspiratie voor mijn onderzoek, heb ik gehaald uit mijn industriële carrière. Ik heb gewerkt bij Baan en in die periode ben ik altijd blijven publiceren.  Ik zie ook nog vele witte vlekken op de kaart als het gaat over softwareproductie. Er is weinig bekend over de wijze hoe, op industriële schaal, software wordt ontwikkeld. Zowel qua product, maar ook wat betreft het proces. En het wordt nog interessanter door de huidige ontwikkelingen van software in de cloud en allerlei apps op smartphones en tablets.
 

Welke onderzoeken vinden op dit moment plaats om dat onontgonnen gebied beter in kaart te brengen?

Als manager van de onderzoeksgroep zijn er ongeveer 35 medewerkers en promovendi binnen ons vakgebied bezig om verschillende aspecten van softwareproductie te onderzoeken. Bijvoorbeeld loopt er een promotieonderzoek naar user stories door Garm Lucassen. Het gaat hierbij om hoe je op een zo effectieve en efficiënte manier de verscheidenheid aan wensen van de klanten kunt verwoorden en omzetten naar taken die door software engineers worden opgepakt.

Een ander voorbeeld is het onderzoek naar energie consumptie door software. Hierover kregen we een specifieke vraag uit het bedrijfsleven: gebruikt software minder energie wanneer je het in the cloud plaatst of op eigen apparatuur? Dat hebben we zo goed als ontrafeld.

Hoezeer is de Nederlandse industrie betrokken bij je werk en de onderzoeken?

In tegenstelling tot andere wetenschappers hebben we geen lab om stellingen te testen. We zijn dus in grote mate afhankelijk van samenwerking met het bedrijfsleven voor het verrichten van bijvoorbeeld metingen in hun datacenter of onderzoek naar user stories in de praktijk. Zonder die data kunnen we simpelweg niets publiceren. Net zoals de medische wetenschap moet een theorie of therapie uiteindelijk getest worden met echte patiënten. Dit geldt ook exact zo voor ons onderzoek.

Gelukkig komt het initiatief voor samenwerking vaak van beide kanten. Vanuit de universiteit zelf komen ideeën, maar een concrete vraag van een bedrijf kan ook aanleiding zijn voor onderzoek.  Het onderzoek naar energie consumptie van software word bijvoorbeeld gefinancierd door Centric.

freemodeling-NISI

Welke trends zie je de komende jaren in de software industrie, waar zowel de wetenschap als het bedrijfsleven baat bij hebben?

Continuous architecting vind ik een belangrijk onderwerp voor de komende jaren. Om de kennis en basisconstructie van software te waarborgen doen we onderzoek naar een functioneel architectuurmodel. De architectuur van software is vaak complex en om dit in één tekening te vatten is niet mogelijk. Daarom zijn we nu bezig dit dynamisch weer te geven op een groot scherm, een videowall van 2 bij 1 meter. Als we op goede manier de software-architect weten te ondersteunen kunnen we echt een belangrijke bijdrage leveren aan de software industrie.



Kijk voor meer cursusinformatie op onze cursuspagina

The Google vision on No-Ops platform

Last week Google gave a presentation and demonstration during the NISI Continuous Delivery 3.0 course. In this update we summarize the brief highlights.

Even with a PaaS based Continuous Delivery 3.0 platform server maintenance work is required to keep the platform up and running. Google shared their vision to move to a Serverless / NoOps  platform

One of the key topics is the Google Container Engine (GKE), with Kubernetes (K8s)
 

google-container-engine.jpg

Continuous Integration and Continuous Deployment is then achieved as presented in the following slide

continuous-delivery-container

Next week we move from Continuous Delivery to Continuous Delivery 3.0 by covering Continuous Tracking of users. We help the course participants to advance their data collection, data analytics and reporting techniques.

Interested in the Continuous Delivery 3.0 course? See more information about the course and the next available dates.



Kijk voor meer cursusinformatie op onze cursuspagina

Continuous Delivery 3.0. platform

Tijdens de cursus Continuous Delivery 3.0 wordt gebruik gemaakt van een Continuous Delivery 3.0 platform. Het platform is ontwikkeld vanuit een samenwerkingsverband van het NISI, Search4Solutions en Universiteit Utrecht. Alle elementen van Continuous Delivery 3.0 zijn verwerkt in het platform. Ewan Klomp studeert informatiekunde aan de Universiteit Utrecht en is tevens software developer bij het NISI. Hij is de drijvende kracht achter het Continuous Delivery 3.0 platform.

Welke functie vervult het Continuous Delivery Platform?

De belangrijkste processen van het continue integreren, testen en uitrollen van software. Daarnaast bevat het platform morgelijkheden om gebruikersfeedback te verzamelen, te analyseren en te rapporteren. Ook bevat het platform mogelijkheden om de resultaten te verwerken in Agile planningen en roadmaps.

Wat leren cursisten over Continuous Delivery tijdens de cursus?

Tijdens de cursus Continuous Delivery (CD) 3.0 leren cursisten wat een Continuous Delivery 3.0 platform is en hoe je dit opzet en verder ontwikkelt. Daarbij leren ze hoe je gebruikersfeedback genereert en hoe je dit verwerkt in Agile roadmaps.

Na de cursus kunnen cursisten zelf een Continuous Delivery pipeline ontwikkelen en implementeren, passend bij het IT landschap van het bedrijf waarin ze werken. Tijdens CD 3.0 demonstraties laten we zien hoe je dit zelf doet.

Wat wordt er behandelt tijdens de demonstratie?

Het demonstratie platform bestaat uit 2 delen, de front-end (app) en de backend (webapplicatie). Het normale Continuous delivery traject wordt behandeld in de demo aan de hand van de webapplicatie. Met name het tracken en plannen wordt behandeld door middel van een Mobile App.

Bekijk de korte video’s met demo van de Front end pipeline in Xamarin

Welke tools zijn er gebruikt voor het Continuous Delivery 3.0 platform?

Er is vooral gebruik gemaakt van open source software. Meerdere. Jenkins instances worden gebruikt voor de orchestratie van het Continuous Delivery proces. De webapplicatie is geschreven in Java en maakt gebruik van Spring Boot voor de REST API. Maven wordt gebruikt om de applicatie te bouwen. De Spotify plugin zorgt voor het aanmaken van de Docker images. De uitgerolde Docker images vormen de backend voor de Mobile Apps. De Mobile App worden geschreven in Xamarin, een omgeving om Apps mee te ontwikkelen in Visual Studio en C#. Deze Apps worden vervolgens gepubliceerd via de bekende Google en Apple Mobile App stores.

Bekijk de korte video van de User Acceptance test

Cursus Continuous Delivery 3.0

De cursus Continuous Delivery 3.0 wordt in het najaar herhaald. De achtdelige cursus is ontwikkeld in samenwerking met de Universiteit Utrecht. De lessen worden voor een deel verzorgt door sprekers van softwarebedrijven zoals Google en Microsoft. Lees meer informatie over de cursus of stuur een mail om op de hoogte te blijven van nieuwe cursusdata.



Kijk voor meer cursusinformatie op onze cursuspagina