Web-Based Project Management System: February 2009
Web-Based Project Management System: February 2009
net/publication/261858984
CITATIONS READS
4 10,050
3 authors:
A. Napieralski
Lodz University of Technology
723 PUBLICATIONS 4,321 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Wojciech Zabierowski on 04 June 2014.
starts an issue to communicate and document that there is a an answer to the question “who's the boss?” (and agreeably
problem and to find someone to solve it. say that the answer is “Chuck Norris”), we can do that in at
most three lines of code.
V. MANAGEMENT AND KNOWLEDGE – RELATED
FEATURES Method overriding is possible even in the same class that
contains original method definition. Class body is an
Every project manager needs to know what is going on in executable code (not a set of declarations), so if a method is
their project and calculate some metrics to help them make defined that has the same name as other method, it simply
decisions. Atma Groupware supports a minimal set of project overrides the previous definition. This feature allows many
management metrics, including mean time of resolving issues useful idioms, such as customization of core classes
or mean value of issues per project milestone. functionality (e.g. if one wants to record every created number
Atma Groupware is designed to hold data on multiple in a database table, it's easily achievable), or redefining
projects, so knowledge gained during one project can be method by itself (we can make our blow_yourself_up! method
reused in another. Engineers that have problems may look at do it's work and instantly morph itself into a new method by
past projects in order to check if there weren't similar the same name that throws ICantDoThatAgain exception
problems in any of them, see how they were handled and every time it is called).
eventually come up with their own solution. Another example Metaprogramming is most often referred to as a technique
is an archive of conferences available for browsing in case to “write code that writes code”. This feature is more or less
someone wants to check whether any arrangements were supported by most dynamic languages, but Ruby is
made during particular conference. outstanding in this field. Nearly everything can be
VI. PROGRESS TRACKING – RELATED FEATURES parameterized, generated, and added to a class or method at
runtime.
There are several mechanisms that allow progress tracking
in Atma Groupware: VIII. THE USE OF RUBY ON RAILS WEB
APPLICATION FRAMEWORK
Milestones, sometimes called “gates”, are breakthrough
moments of project development. They are set before Atma Groupware is written using Ruby on Rails
development begins and their completion status is most basic framework. Ruby on Rails was precursor of the light web
information that lets management orient whether the project is framework concept. These kind of frameworks are most often
going according to schedule or not. written in dynamic languages, support MVC
(Model - View - Controller, [3]) or MTV
Issue tracking is a classic way of dealing with problems in
(Model - Template - View, [4]) strategy, and emphasize such
software projects using groupware. A participant can submit
principles as DRY (Don't Repeat Yourself, [5] and [6]) and
an issue (for example that there is a bug in the code or a
COC (Conventions Over Configuration, [7]). Today this
requirement is out of date), and then someone is assigned to
concept has its representatives in almost all popular dynamic
deal with the issue. Other participants may also help by
languages, including perl (Catalyst, [8]), python (Django, [9]),
inputting their comments. The participant assigned to issue
PHP (CakePHP, [10], or PHP on Trax, [11]) and Groovy
sets its status according to his progress in resolving it, and,
(Grails [12]).
when finished, closes the issue. For managers, knowledge on
how many issues are still open, how many have been fixed As we stated earlier in this text, Rails is a web application
and how long it usually takes to resolve an issue is helpful for framework based on the MVC strategy. In Java terminology, a
planning releases and schedules. web implementation of MVC is called Model 2 (as opposed to
Model 1, which does not use MVC), defined in [13]. The way
Activities are a little different than issues. For example
MVC works in Rails is presented on Fig 2.
there are applications that take few hours to build and more
hours to test. This kind of actions is out of scope of issue The MVC pattern requires three tiers present in the
tracking, but they take time in project schedule and omitting application's architecture: model tier, view tier and controller
them may create a false image of project's progress. tier.
VII. THE USE OF RUBY PROGRAMMING LANGUAGE Model in Rails is handled by dedicated ORM (Object -
Relational Mapping, [15]) sub-framework, named
Atma Groupware has been written in Ruby language, using ActiveRecord. ActiveRecord is an implementation of Martin
Ruby on Rails framework. Fowler's Active Record design pattern [16]. In Active Record
Ruby is a dynamic, object-oriented programming language pattern, a class is mapped to a database table (with such
with features borrowed for such languages as Smalltalk, C++, features as finding or updating rows in the table) and an object
perl, python or Lisp. Few of these features are relevant to this is mapped to a table row.
article.
Class definition reopening allows reopening any class
definition (even one of the core library classes) and defining a
new method that will be propagated down in the class
hierarchy. So if we want to make sure that every object knows