I have never been asked to create a Gantt chart using a spreadsheet before. I’ve rarely been asked to create anything using spreadsheets. Software engineers are in the business of automating mundane tasks. Use the right tool for the job. Right?
Modern software engineering creates or fixes software in tight cycles depending on the users’ needs. Users’ needs are described in issues, these are discussed and may become tasks. Many will represent a few hours work and hence will not be useful in a Gantt chart. The process is almost organic and so the waterfall approach is a poor fit.
I am currently involved with a company who is starting up a business that will rent out space in an app on Android and iOS. The business may look at PWAs later. In the app business, I am starting to understand, if the unique point of the app is not a must have the app must evolve over time. The features must improve and new ones be added. It is not good enough that the software is updated once a year. Add to this that security issues must be fixed as and when they are discovered we have another reason why we should not describe our project’s effort using a waterfall methodology.
In this relationship, there are gaps on both sides. I do not have a lot of experience with spreadsheets. To some this is odd but I have always used tools or created them to avoid the overhead of maintaining a spreadsheet. My colleagues are new to software/app development and maintenance. However, they are used to project management where waterfall methods do work. They have insisted that I create a Gannt chart.
My first attempt to do this quickly used GanttLab which uses the GitLab API to pull out details of a project to produce the chart. The result is not very friendly and this attempt to tick a box did not go down very well.
This week I have been learning how to colour in cells in a spreadsheet but still to automate the process. The following is version 1.
How to create a Gantt chart from GitLab
The spreadsheet will take issues/tasks against Milestones in GitLab and create a Gantt chart from them.
I have GitLab installed in a Docker container. This is how I retrieve the issues:
- $ docker exec -i -t gitlab_web_1 bash
- $ gitlab-psql -d gitlabhq_production
- $ Copy (select issues.iid, m.title, issues.title, issues.description, time_estimate, issues.due_date from issues, milestones as m where issues.state = ‘opened’ and issues.time_estimate > 0 and issues.milestone_id = m.id ORDER BY issues.due_date ASC) To ‘/tmp/issues.csv’ With CSV DELIMITER ‘;’;
Back at the host:
- docker cp gitlab_web_1:/tmp/issues.csv .
I then delete everything in the “issues” sheet of the spreadsheet and make sure there is a row at the top that can say anything but I label them in bold:
- Due date
The Gantt sheet describes everything in a milestone that has an estimate greater than zero.
You can get the spreadsheet from GitHub.