Pivotaltracker plugin: Importance of Integration test

When I developed the pivotaltracker plugin to extract our backlogs (here the post), instead of create a mock application to use it, I gave the library to my colleague so he could integrate it in the real application that my frontend application would have used to retrieve all the backlogs.

Everything went well until the application tried to parse the stories in the final contract, then the application crashed miserably.
I and my colleague worked side by side:
The first thing I did was to run my test: all passed.
So I checked the response of the pivotaltracker API, maybe they had changed something: nope, the response of the API was exactly what I expected to receive.
So what happened?
Why my test didn’t represent correctly the real situation?

Continue reading

Advertisements

Backlog Aggregator: Roadmap Feedback (part one)

In our weekly meeting with the boss, I showed my roadmap-preview to have feedback and improve it (here the first part and here the second part of the creation of the roadmap-preview).
The roadmap-preview had to be used in two different places: in a dashboard as part of a summary of a project and in a Roadmap page where was needed to show more detailes.

My roadmap-preview had been considered good-looking, but lacking of information.
It wasn’t clear the content and the month of a release: in the dashboard had to be possible to read the key features of a release clicking on the flag, but in the Roadmap page was considered more useful to view them immediatly.

I decided not to create two different roadmap-preview directives; I prefered to have something like:

<roadmap-preview
  roadmap="roadmap"
  show-detail="true"></roadmap-preview>

Continue reading

Backlog Aggregator: Roadmap preview (part two)

To solve the test I had to create my directive.
First of all I created the module that all my directives would have to use.

var directives = angular.module('backlogsReader.directives', []);

And then I wrote my roadmap-preview Directive.

var roadmapPreview = angular.module('backlogsReader.directives');
roadmapPreview
	.directive('roadmapPreview', function () {
		return {
			restrict: 'E',
			replace: true,
			scope: {
				roadmap: '=roadmap'
			},
			templateUrl: 'relativeToTheApplicationRootUrl/roadmapPreview.html'
		};
	});

Continue reading

Backlog Aggregator: Roadmap preview (part one)

A Roadmap is a concept a little bit harder than a backlog to be managed using external tools. Pivotaltracker or software like that are very handy to manage a lot of things, but sometimes a roadmap’s content doesn’t fit perfectly with the approach that other software impose to you.

So while my teammates were thinking of how to aggregate the data and where to save them, I made the frontend as a Single Page Application using AngularJs and Jasmine and using Chutzpah as test runner.

One of the things I most appreciate using angular are the Directives.

The goal was to have a preview of a roadmap to use it in a dashboard able to summarize all the projects and their statuses.
What I wanted was to create a roadmap easily, something like

<roadmap-preview roadmap="roadmapContract"></roadmap-preview>

and I expected to have a result like
roadmap-preview
Continue reading

Backlog Aggregator: Pivotaltracker Plugin (part one)

There we are.
The goal with this plugin was to give an easy way to get from a project the stories of the current iteration.
I usually prefer to work time boxed when I play on an exploration task, so I decided to give five hours to this task and then evaluate the results and possible efforts/costs to obtain an usable version of the plugin.

My team uses Pivotatracker so I already had  the credentials to use the API, but before to write any code, I started reading a few of documentation and making some test using my REST Client.
After one hour I was sure to have enough information to start.

Continue reading

Backlog Aggregator: how

Well, the idea was to have a website where to show, for every project, backlog and other informations more related at the Company and its workflow.

We decided to split the work, so I was in charge to develop the website and to give a help to develop the plugins able to get stories from pivotaltracker and easybacklog and able to map them in a common DTO.

The others two team members started to analize a repository and a backoffice to put other relevant information apart the backlogs.

Continue reading

Backlog Aggregator: why

Long story short : it is three years I am working in an agile team (two years as Scrum Master) . Initially, the team was supposed to be a pilot for the company and because of some results we brought, it was decided to migrate other teams in an agile approach .

In the spirit of the methodology, each team have had the possibility to self-organizing; after that, they chose which tools ( electronic or not) they could use to optimize their work.

Continue reading