• No results found

Implement agile project management with Taiga

In document Linux Tips, Tricks, Apps and Hacks (Page 76-78)

Software has found its application in almost everything we use in our daily lives. But

software development has its problems, a major one being measurement – its intangible outputs prove diffi cult to manage. A task may seem easy but it’s hard to judge what issues you may face when coding, especially if it’s a distributed architecture with several components. So, how can you overcome this?

This question was answered with the advent of agile development methodology. Agile methodology focuses on the end product, but

there is a dearth of good open source, agile- focussed tools – most of them are old, simply tweaked to support agile. That was until Taiga. Taiga is an open source, agile-based PM tool. Named after a forest biome, it aims to be at the centre of an ecosystem – your projects and your team – with its new UI and agile-based layout.

Let’s start this tutorial with its installation on Ubuntu 14.04 and then go on to see its internals. The installation here is for a development server. There is a different production server installation process on the Taiga website.

Click on the sprint task board or sprint name to view the task status. Add tasks related to a user story in the task board You can add user stories one

by one or in bulk. Add stories to the current sprint with the ’Move to current sprint’ button All of the major options

like backlog, wiki, issue and admin options are available in this sidebar

This chart displays the work left (in terms of project points) versus time (number of sprints)

Resources

Taiga home page

taiga.io

01

Installation

Taiga has three main components that need to be installed separately.

• Taiga-back: The backend part (also supports the APIs).

• Taiga-front: The frontend part.

• Taiga-events: Web sockets gateway. Completely optional and not required for general project management purposes. We’ll skip this section. Before we get going with the web frontend, we need the backend running. Taiga’s backend has several dependencies like development headers, C compiler and other packages. First, run the below commands to install all the dependencies: sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg- dev

sudo apt-get install -y libfreetype6- dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev

sudo apt-get install -y automake libtool libffi-dev curl git tmux

Taiga uses PostgreSQL 9.3+ as the database, so install the database:

sudo apt-get install -y postgresql-9.3 postgresql-contrib-9.3

sudo apt-get install -y postgresql- doc-9.3 postgresql-server-dev-9.3

02

Taiga-back installation

Now let’s set up the Python environment. You also need to install virtualenvwrapper – a set of extensions that make sure your system isn’t clogged with third party libraries by running them in an isolated virtual environment.

Run the following commands to install Python and virtualenvwrapper. Then restart your shell to reload the bash with the virtualenvwrapper variables and functions.

sudo apt-get install -y python3 python3- pip python-dev python3-dev python-pip virtualenvwrapper

sudo apt-get install libxml2-dev libxslt- dev

Download the Taiga backend code from GitHub and run the commands below. The current directory will change to ’taiga-back’.

cd ~

git clone https://github.com/taigaio/taiga- back.git taiga-back

cd taiga-back git checkout stable

Now set up the initial user and database. This command will create a user called taiga and then a database name taiga under the user taiga: sudo -u postgres createuser taiga sudo -u postgres createdb taiga -O taiga

Create a new virtualenv called taiga using the following command:

mkvirtualenv -p /usr/bin/python3.4 taiga Then install dependencies for the backend: pip install -r requirements.txt

Next, populate the database with some sample data; this will also create a user admin with password 123123:

python manage.py migrate --noinput python manage.py loaddata initial_user python manage.py loaddata initial_ project_templates

python manage.py loaddata initial_role python manage.py collectstatic --noinput python manage.py sample_data

Now you will be able to run the server. Remember, however, that the workon command enables the taiga virtualenv:

workon taiga

python manage.py runserver

Once you’re done and have completed this step correctly, you should be able to view a JSON that will represent the complete list of endpoints via this address: http://localhost:8000/api/v1/.

02

Taiga-back installation

04

Create project and user stories

With Taiga now running in your browser, the next step is to create a project. We already have the admin user created with the password 123123, so log in to Taiga with the credentials and click on Create Project. Then select the Scrum template and click Next. Finally, fi ll in the relevant details (name and description) and click Create. This will take you to the Project Backlog page. On the upper half of the page you have the burn-down chart and the lower half has the user story list. On the right sidebar, you can see the Sprints section. As is generally done, let’s start with creating user stories, since the uninitiated, agile development methodology requires software features to be broken down into smaller units based on a user’s point of view. These units are called user stories in agile jargon.

05

Create sprints

Now that the user stories are available, let’s plan the sprints. As you may be aware, sprints are predefined time slots, usually two to three weeks. Before a sprint starts, developers commit a set of user stories to be finished by the end of the sprint. When the sprint is over, scrum master takes stock of the situation and decides the user stories for the next sprint, and this cycle continues.

To create a sprint in Taiga, just click the New Sprint button on the right sidebar. On the next page, fill in the name and the duration of the sprint. By default, sprints are of two weeks – the start and end date gets filled automatically. Since you have already added user stories, just go to the backlog page, select the relevant user stories and click the ‘Move to current sprint’ button. Thus you can have stories assigned to the sprint and the rest of the stories available as backlog. Once you have user stories assigned to sprints, you can further break it down to dependent tasks.

03

Taiga-front installation

For the next step, let’s complete the Taiga frontend installation. Taiga uses various programming languages other than the usual CSS/HTML/JavaScript in the frontend, so it really needs to be built before your browser can fully understand it.

Download Ruby and Gems. After setting the path with the last command, restart the shell with the following:

sudo apt-get install -y ruby

gem install --user-install sass scss-lint export PATH=~/.gem/ruby/1.9.1/bin:$PATH Now complete the NodeJS installation with: sudo apt-get install -y nodejs npm Then you will have to run the node command to check if the command is recognised. If this isn’t the case, you should run:

sudo ln -s /usr/bin/nodejs /usr/bin/node’. Now install gulp and bower:

sudo npm install -g gulp bower …then get the code and compile taiga-front: cd ~ git clone https://github.com/taigaio/ taiga-front.git taiga-front

cd taiga-front git checkout stable Compile using: npm install bower install Now run gulp: cd ~/taiga-front gulp

If you fi nd that you have npm errors while running gulp, clear the temp fi les and install all dependencies again.

rm -rf ~/.npm; rm -rf node_modules npm install

bower install gulp

If it is successful, you should now be able to see Taiga at http://localhost:9001.

To add a user story, just click ‘Add a new user story’ in the lower half of the page. On the next page, fi ll in the details. Note that you can assign project points to the user story via this page. You can also add several stories at once using the bulk insert button (next to the ‘Add a new user story’ button), and do not forget to change your admin password to something memorable!

04

Create project and user stories

Sprints have predefined time

In document Linux Tips, Tricks, Apps and Hacks (Page 76-78)