This website uses cookies to ensure you get the best experience. By clicking or navigating the site you agree to allow our collection of information through cookies. More info

Posted on Wednesday March 21, 2018

Agile methodology

Some of Europeana’s teams (like the ones who develop the APIs, Metis or Europeana Collections) use a method of working called ‘Agile methodology’. Here’s a brief explanation of how we apply it. Below that, a list of the teams that currently use it and who’s in them.

What is Agile methodology?

http://agilemanifesto.org

In short, following an Agile methodology means that we divide our development projects into short sprints of two to four weeks. For every sprint, tasks (e.g. resolve a bug, develop a new feature) are defined in Jira (our ticketing system), derived from ‘stories’ provided by the product owner and refined by the Scrum team. These tasks are then picked up by individual developers in order of priority.

Each sprint has a regular structure:

Refinement

Product owner explains the purpose and desired functionality of each story. The team needs to understand this well to be able to propose a solution. These stories become ‘well-defined’ and can be moved on to the planning stage.

Planning

A meeting where well-defined stories are drawn from the backlog. The effort they demand is estimated by the team and the commitment for the sprint (aka sprint backlog) is agreed upon.

Actual work

Almost every day starts with a short meeting (max. 15 minutes) where everyone reports on what they are working on, what they achieved the previous day, and if there are any blocking issues.  

Developers usually split off a new branch of code for every issue they work on. When they feel the code is ready to be tested, they issue a pull request: this means that someone else is asked to review the code and, if found OK, to merge it with the main development branch.  

The next step is that the issue is tested. Any remaining problems are reported on Jira and picked up by the developer. This cycle is repeated until the issue is considered ‘passed’ and moved to the acceptance branch, at which point the product owner can do their testing.

Retrospective

A meeting which concludes a sprint effort with the goal to look back and provide feedback about how it went.

Ideally, at the end of each sprint, a deliverable with a clear business value ought to be delivered. This often results in the release of a new version of a software product. Each such release is briefly documented in the form of release notes.

What is Scrum?

http://www.scrumguides.org/

‘Scrum is a framework for developing, delivering, and sustaining complex products.’

Scrum teams

‘The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master. Scrum Teams are self-organizing and cross-functional. Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team. Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity.’

How does Europeana do Scrum?

For the development of products

Europeana develops products according to the Agile methodology. It involves people from different teams who form product-specific teams. Each team has a product owner (PO), a Scrum Master (SM), and software developers. Chief Scrum Master (CSM), designers and testers spread their effort across multiple teams as do members of the R&D team. For each product we also have an internal main stakeholder - a Business Owner (BO) - to which the products are delivered.

Our Scrum principles

  • Sprints
  • Assembla/Jira
  • Sprint refinement
  • Sprint planning
  • Sprint retro
  • Sprint demo
  • Definition of ready
  • Definition of done

There's a lot of good stuff on Scrum & Europeana in the Collections Wiki:

https://europeanadev.assembla.com/spaces/europeana-npc/wiki/Our_Scrum_principles
https://europeanadev.assembla.com/spaces/europeana-npc/wiki/Definition_of_Ready
https://europeanadev.assembla.com/spaces/europeana-npc/wiki/Definition_of_Done

Europeana Scrum teams

Europeana Collections

  • Team product and goal: Maintain and develop main components of Europeana Collections - CMS, discovery, exhibitions, blog.
  • Team members: Product Owner - Ash; Developers - Richard, Andy, Lutz.

Europeana APIs and Search

  • Team product and goal: Maintain and develop the Europeana search engine and the APIs that we use to search, retrieve and annotate data about records and entities.
  • Team members: Product Owner - Hugo; Developers - Maike, Patrick, and Sergiu from the Austrian Institute of Technology (AIT).

Data Partner Services (aka Metis)

  • Team product and goal: Develop Metis and the data-processing services in Europeana Cloud that it needs to function. Maintain the Europeana and TEL UIMs and other current data ingestion components.
  • Team members: Product Owner - Valentine;  Developers - Mirjam, Simon, Sid, Jochen.

Europeana Cloud Infrastructure Services

  • Team product and goal: Develop a cloud-based storage and infrastructure system (IaaS) for use by Europeana and other organisations as the back-end of digital libraries.
  • Led and primarily run by our partners at the Poznan Super-Computing Centre (PSNC).
  • The Data Partner Services team is the in-house Europeana team that interacts the most with this team.
top