Nowadays Agile methodologies are considered the most adaptable to constant emergence of new technologies, to new development tools and to more changeable customer’s requirements. Flexibility is obtaining special importance due to the general tendencies of the information system development – global mass online services, Web 2.0, the switch from software solutions to SaaS services, the popularity of SOA architecture, etc.

In the modern world it is impossible to imagine a software development project planned for 2-3 years and performed with ‘hard’ non-flexible technologies since nobody can predict how the world will change (and consequently, the requirements to the project or applied technologies) within this period. There’s another problem – present day customers who order IT projects very seldom imagine what exactly they need. They can’t clearly formulate their requirements to the software. Moreover, new innovative technologies appear practically every year and they require fast implementation because of fierce market competition.

In such conditions Agile is probably the best solution as it allows starting the project as quickly as possible, introducing details in the course of its realization. The development is carried out within small iterations (1-4 weeks) and at the end of each iteration the customer gets a valuable application (or its part) which can already be used for business process management.

Moreover, Agile can be used in various projects — from small students’ start-ups to serious industrial projects with thousands of man-hours developed by a large software development company. It’s rather difficult to find another approach or methodology with the same scope of application.

The flexibility of Agile methodology is one of the solutions for high efficiency of a software development process. Software companies also have a variety of tools to leverage in order to improve significantly their performance and productivity. Modern project management is impossible without planning and task tracking. Let’s have a look at some of them which, in my opinion, are the best solutions at present.

Basecamp is an online project management system developed by the 37signals company. The functionality of this system is huge and the possibilities are varied. Here are the most prominent features of this system:

  • Viewing the general information on clients and projects on one screen
  • Task setting and task tracking
  • Uploading, categorizing and tracking of different versions of files
  • Forums for discussing problems and tasks
  • Milestone management
  • Time tracking
  • Adding comments and messages
  • Compatibility with other applications, widgets and programs

Most companies make use of Basecamp as their primary collaboration/task management tool since it has an intuitive interface and can be used even by nonqualified users.

Redmine is a flexible system for project management based on the web application framework RoR (Ruby on Rails). The possibilities of the program include:

  • Several projects support in one database
  • Flexible system of adjusting user access rights
  • Flexible system of tickets and tasks
  • Gantt chart support
  • Built-in system of forums on the project
  • Simple time tracking system
  • LDAP authorization support
  • Multilanguage support
  • Various database support
  • Integration with version control systems (SVN, CVS, Mercurial, Bazaar and Darcs)

Comindware Tracker is a web application for managing business processes and tracking the elements with integrated functions of task management and collaborative work. Comindware solutions are based on the ultra flexible technology ElasticData™, which allows users to manage business processes with extraordinary flexibility and adapt to the existing business processes.

Comindware Tracker includes free Comindware Task Management and the technology ConnectStep that allows automating the process of generating tasks for the next step and optimizing their execution practically for all business processes within one or several departments.

This list is not complete. Every software development company makes use of their own favorite tools and techniques. The choice is yours. But one thing is universal – all such tools can improve significantly your competitiveness and thus should be implemented.