Jump to content

Wikimedia Blog/Drafts/Managing Agile Development & Engineering: Phragile: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Created blog draft: "Managing Agile Development & Engineering: Phragile"
 
Explained ''agile''
Line 9: Line 9:
==Body==
==Body==


=== Agile Development & Engineering: Phragile ===
=== Agile Development & Engineering with Phragile ===
[[File:Great Pyramid of Giza edge.jpg|thumb|Average core blocks of the Great Pyramid weigh about 1.5 tons each, and the granite blocks used to roof the burial chambers are estimated to weigh up to 80 tons each.]]
[[File:Phragile burnup wikidata.png|thumb|Phragile showing a burnup chart of a sprint]]
A long time ago, writing software was not unlike building a pyramid in Ancient Egypt. There was a plan and a monumental goal and it was carried out to the end, never taking a detour from what was planned. But as software has more and more become a part of all days of life, it became apparent that not all software projects should be treated like pyramids. Sometimes you don't understand that what you really want is not a pyramid but rather something else until you start building. Sometimes there are new requirements from those who actually commissioned the building that make you refocus. For today's challenges in software development, teams of experts that actively collaborate are much liklier to produce meaningful results than being commanded to carry out a grand plan as an unskilled worker. And last, not least, wouldn't it be nice to have a report on the tasks for this week instead hoping that after years of hard labor the pyramid will finally come together? In software development, we call methods that deal with collaboration in a potentially rapidly changing world agile. [https://en.wikipedia.org/wiki/Agile_software_development ''Agile software development''] is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.


[[File:Phragile burnup wikidata.png|thumb|Phragile showing a burnup chart of a sprint]]
When we started to develop Wikidata in April 2012, it was clear from the very beginning that we were going to follow agile principles. We had a whiteboard as scrum board in our office and we maintained stories and epics in a wiki. Bugs and tasks were maintained in [https://www.bugzilla.org/ Bugzilla]. That was not the optimal way, so we were continuously looking for alternatives to better manage our agile processes.
When we started to develop Wikidata in April 2012, it was clear from the very beginning that we were going to follow agile principles. We had a whiteboard as scrum board in our office and we maintained stories and epics in a wiki. Bugs and tasks were maintained in [https://www.bugzilla.org/ Bugzilla]. That was not the optimal way, so we were continuously looking for alternatives to better manage our agile processes.
That’s how we discovered [https://github.com/mozilla/scrumbugz Scrumbugz] and – after some struggles with the confusing setup – started using it for burndown charts and reports. When the Wikimedia Foundation replaced Bugzilla with [https://phabricator.wikimedia.org/maniphest/ Phabricator Maniphest] in late 2014, we needed to think again about how we could best visualize our sprints and how to automatically generate burndown charts from the sprint boards in Phabricator. That’s how [https://github.com/wmde/phragile Phragile] got started.
That’s how we discovered [https://github.com/mozilla/scrumbugz Scrumbugz] and – after some struggles with the confusing setup – started using it for burndown charts and reports. When the Wikimedia Foundation replaced Bugzilla with [https://phabricator.wikimedia.org/maniphest/ Phabricator Maniphest] in late 2014, we needed to think again about how we could best visualize our sprints and how to automatically generate burndown charts from the sprint boards in Phabricator. That’s how [https://github.com/wmde/phragile Phragile] got started.
Line 28: Line 30:
Phragile is under active development and will further evolve over the next year. One big upcoming feature would be to support and visualize user stories. An overview of Phragile’s currently supported features can be found on [https://github.com/wmde/phragile/blob/master/RELEASE-NOTES.md GitHub] and a roadmap of upcoming features is available on [https://phabricator.wikimedia.org/project/board/1266/ Phabricator].
Phragile is under active development and will further evolve over the next year. One big upcoming feature would be to support and visualize user stories. An overview of Phragile’s currently supported features can be found on [https://github.com/wmde/phragile/blob/master/RELEASE-NOTES.md GitHub] and a roadmap of upcoming features is available on [https://phabricator.wikimedia.org/project/board/1266/ Phabricator].


''[[User:Tobias_Gritschacher_(WMDE)|Tobias Gritschacher (WMDE)]]'',
''[[User:Jakob_Warkotsch_(WMDE)|Jakob Warkotsch (WMDE)]]'',
''[[User:Jens Ohlig (WMDE)|Jens Ohlig (WMDE)]], Wikimedia Deutschland''
''[[User:Jens Ohlig (WMDE)|Jens Ohlig (WMDE)]], Wikimedia Deutschland''
== Notes ==
== Notes ==

Revision as of 14:00, 24 November 2015

Title ideas

  • Agile Development & Engineering: Phragile

Summary

Phragile is a tool that generates burn down charts, burn up charts and sprint oberviews for the Phabricator boards of agile software projects. It supports scrum masters, product managers, and agile software development teams in their daily work. We'd like to explain the initial idea that lead to the development of the tool, and how we at Wikimedia Deutschland worked together with the Wikimedia Foundation during the requirement analysis.

Body

Agile Development & Engineering with Phragile

Average core blocks of the Great Pyramid weigh about 1.5 tons each, and the granite blocks used to roof the burial chambers are estimated to weigh up to 80 tons each.

A long time ago, writing software was not unlike building a pyramid in Ancient Egypt. There was a plan and a monumental goal and it was carried out to the end, never taking a detour from what was planned. But as software has more and more become a part of all days of life, it became apparent that not all software projects should be treated like pyramids. Sometimes you don't understand that what you really want is not a pyramid but rather something else until you start building. Sometimes there are new requirements from those who actually commissioned the building that make you refocus. For today's challenges in software development, teams of experts that actively collaborate are much liklier to produce meaningful results than being commanded to carry out a grand plan as an unskilled worker. And last, not least, wouldn't it be nice to have a report on the tasks for this week instead hoping that after years of hard labor the pyramid will finally come together? In software development, we call methods that deal with collaboration in a potentially rapidly changing world agile. Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.

Phragile showing a burnup chart of a sprint

When we started to develop Wikidata in April 2012, it was clear from the very beginning that we were going to follow agile principles. We had a whiteboard as scrum board in our office and we maintained stories and epics in a wiki. Bugs and tasks were maintained in Bugzilla. That was not the optimal way, so we were continuously looking for alternatives to better manage our agile processes. That’s how we discovered Scrumbugz and – after some struggles with the confusing setup – started using it for burndown charts and reports. When the Wikimedia Foundation replaced Bugzilla with Phabricator Maniphest in late 2014, we needed to think again about how we could best visualize our sprints and how to automatically generate burndown charts from the sprint boards in Phabricator. That’s how Phragile got started.

Phragile’s main goal is to add a visualization and aggregation layer on top of Phabricator. It dynamically generates sprint overviews including burnup, burndown and status distribution charts for Phabricator projects.

Create a new sprint directly on Phragile

Phragile was initially developed by Jakob Warkotsch as a bachelor thesis project at Freie Universität Berlin in cooperation with the software engineering department of Wikimedia Deutschland. During the initial development phase, Jakob was advised by Abraham Taherivand (Head of Software Engineering) and Tobias Gritschacher (Scrum Master). Later the project was taken over by a software development team at Wikimedia Deutschland. After the demo of the first working prototype in March 2015 the Wikimedia Foundation and Wikimedia Deutschland worked together on a shared vision of Phragile and came up with a roadmap of features that would fulfill the additional requirements of the WMF. A lot of valuable feedback was gathered during the MediaWiki Hackathon in Lyon in May which allowed both parties to sit together in person to discuss and hack on new Phragile features. The collaboration resulted in several great additions like burnup charts, chart data export, automatic snapshots of chart data and automated deployments on Wikimedia Labs.

Connect Phragile with a Phabricator project

Currently Phragile is deployed on Wikimedia Labs and is used by the product management and the Scrum Master of Wikimedia Deutschland in several software projects such as Wikidata and by the team that works on the technical wishes list. Also the Wikimedia Foundation requested to enable several projects on Phragile such as Wikipedia-iOS-App or WikidataQueryService.

Phragile is under active development and will further evolve over the next year. One big upcoming feature would be to support and visualize user stories. An overview of Phragile’s currently supported features can be found on GitHub and a roadmap of upcoming features is available on Phabricator.

Tobias Gritschacher (WMDE), Jakob Warkotsch (WMDE), Jens Ohlig (WMDE), Wikimedia Deutschland

Notes

Ideas for social media messages promoting the published post:

Twitter (@wikimedia/@wikipedia):

(Tweet text goes here - max 117 characters)
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|------/

Facebook/Google+

  • ...