Effective programming practices for economists
9. More on teamwork with Redmine
Hans-Martin von Gaudecker
Department of Economics, Universit¨at Mannheim
Redmine features
I Online repository browser is only one feature . . .
I We’ll look at the issue tracker in the rest of this lecture.
I And a bit at Gantt charts.
I Other features:
Activity List activity in the project – great to see what has happened last.
News Announcements.
Forums Discuss and document posts.
Wiki Useful place for project description, ways forward, etc.. – alternative to such a document among the source files.
Documents Upload documents.
Files Upload files.
Time track. Useful for some third party funded projects.
I Clean up the menu bar by unchecking functionality in Settings → Modules
The issue tracker
I Often called bug tracker, since it was originally designed to document software errors.
I Find an error, report it to the tracker.
I Assign it to somebody, gather more data, find a strategy to fix it.
I Fix it and report it as closed.
I But it really is a shared to-do list.
I Same workflow for new software features (here: model features . . . ).
I Backbone of software development portals like sourceforge.net, bugzilla, etc..
Creating a new issue
Creating a new issue
Creating a new issue
Updating an issue
Updating an issue
Updating an issue
Listing all issues
You could change the status manually . . .
I Click on update again, pick one of . . .
New Nobody is working on it.
In Progress Someone’s taking care of it.
Closed Somebody took care of it, no more relevant.
Rejected It was a false alarm of some kind, does not apply anymore, feature not wanted after all, etc..
. . . or close it with the commit message
Syntax: (fixes|closes) #ID, where ID is the issue identifier (note they are site-wide, so don’t be surprised by high
numbers.)
. . . or close it with the commit message
. . . or close it with the commit message
. . . or close it with the commit message
Recommended workflow
I Always put the next steps you need to take as enhancementes into the issue tracker.
I Paper you need to cite, code you need to write, . . .
I Try to be relatively fine-grained, but you’ll have to find out the optimal content quantity for yourself.
I When you come back to the project, first look through the issues.
I Even after two days.
I Amazing with how many ideas I come up twice . . .
I Try to put any non-trivial bug or strange-looking behaviour into the tracker.
I Especially if you cannot fix it immediately.
I Just writing down the description often helps.
I Useful information later on – many bugs pop up in different disguises later on.
I Use it even when you’re by yourself.
Gantt charts
I Illustrate project schedule – what task you plan to do when.
I Useful when you are in a “hot” phase of a project.
I Clear deadlines are a prerequisite.
I If this is so, use both start/end dates in issue description.
I Gantt chart filled up automatically.
Gantt charts
Gantt charts
Effective Programming ...
2010-10
40 41 42 43
F S S M T W T F S S M T W T F S S M T W T F S S M T W T F S S Feature 14: Grade exercises New 60%
Feature 11: RegEx operators and patterns. New 30% Feature 10: Finish slides for Redmine lecture. New 0% Feature 12: RegEx finite state machine. New 0% Feature 8: Read relevant parts of Arbuckle10 New 0% Feature 9: Slides for first example on testing New 0%
Feature 15: Finish slides for testing. New 0% Feature 16: Come up with homework on testing. New 0%
10/18/2010 1/1
News / Discussion
I Use these instead of eMails wherever you can.
I Documentation in a central place is a major advantage.
I You find stuff easier when you need it.
I News for announcements.
I Forums for discussions.
Acknowledgements and revision number
I This course is designed after and borrows a lot from the Software Carpentry course designed by Greg Wilson for scientists and engineers.
I The Software Carpentry course material is made available under a Creative Commons Attribution License, as is this course’s material.
I Last changed revision: 281
I Last changed date: 2010-12-06 18:43:03 +0100 (Mon, 06 Dec 2010)
License for the course material
[Links to the full legal text and the source text for this page.] You are free:
I to Share to copy, distribute and transmit the work
I to Remix to adapt the work Under the following conditions:
I Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
With the understanding that:
I Waiver Any of the above conditions can be waived if you get permission from the copyright holder.
I Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license.
I Other Rights In no way are any of the following rights affected by the license:
I Your fair dealing or fair use rights, or other applicable copyright exceptions and
limitations;
I The author’s moral rights;
I Rights other persons may have either in the work itself or in how the work is
used, such as publicity or privacy rights.
Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.