WMDE Engineering/Agile Processes

From mediawiki.org

Welcome to the Wikimedia Deutschland e.V. Engineering portal. Here you can find information about our engineering work, projects, processes and mentoring program. Everyone is invited to join our projects. The software development & engineering team and many volunteer developers are responsible for the features and projects listed on this portal.

Agile Software Development

[[File:WMDE SD&E Agile Process.svg|]]
  • We develop, use and support Free Software. Our aim is to improve our software with data driven decision making tools and iterative processes. Without our international community of volunteer developers this work would not be possible. We share the responsibility of developing our open source products with the volunteers equally.
  • The development of our software is driven by a community centered process which calls for corresponding interaction between the communities and the developer team.
  • Our department is structured using agile software development principles. The main focus is on product development. Everyone in the team is contributing to the products we're developing.

The agile principles are:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Software development cycle: By using agile software development principles, our development cycles are short and divided into so called sprints, during which the development team is achieving a product increment. At the end of each cycle a fully functional version of the product with incremented functionality is delivered. During a sprint the development team is working self-organized on tasks from the sprint backlog.

In our case a sprint typically runs for 14 days and has the following structure:

  • Day 1: Sprint Planning Meeting: Team decides what it will work on during the next sprint.
  • Day 1 - Day 14: Daily routine: Team works self-organized on the sprint backlog.
  • Day 8: Story Time Meeting: Team and Product Manager are discussing and creating future user stories in order to get a common understanding and make them ready for upcoming sprints.
  • Day 15 / Day 1: Sprint Review Meeting: Team reviews the past sprint and shows sprint results to the Product Manager.

Deployment to production: In general the deployment schedule is tight to our sprint cycle so that a new, improved version of the software is released once per sprint. Exceptions are security fixes and features that are taking several sprints to be completed.

UX Design

It is users who are using our software.

  • Our users are our customers. Instead of money, they invest their time into our products.
  • Still, software has the potential of creating monetary profit as good and usable software is surely increasing the likelihood of donations.
  • Users have expectations, wishes and requirements that do not necessarily match the ones of the developers, nor the personal opinion of product management.
  • Considering the users’ point of view means respecting the users instead being condescending to them.
  • More rewarding than users just using our software, is users enjoying to use our software.
  • Functionality is worthless without usability.
  • Each PM should have an own regular appointment with UX & Design that he/she may use for briefing or to acquire information about the current status of tasks.
  • PM can drop tasks to UX & Design whenever it is needed.
  • UX & Design applies the “Kanban” principle (tasks which have been started will be finished before a new tasks gets a higher prio).