Managing IT Projects in a Text Mode (…and More)
On the market, there are many useful (and useless) tools for project management. It’s quite essential to use them when you work on any project, regardless of size.
When it comes to managing the IT projects, we have the Jira system, full package of Atlassian products, and also Trello, Redmine, Asana, and apart from them, Microsoft Project (including the server version) and other,virtually endless possibilities at our disposal. In the following article, I’d like to present an alternative approach to the topic of managing the projects, namely — the use of console tools operating in the Linux GNU environment.
Each of the options mentioned above has its own pros and cons. Frankly, I haven’t yet met a user of one particular tool, who would be fully satisfied with it and who wouldn’t have any reservations towards it. For instance, Jira is highly valued for its flexibility (comfortable searching interface, among other features), however it’s often criticized for its complexity and its creators’ arbitrary decisions that aren’t fully in accordance with the user’s’ intuition. On the other hand, Microsoft Project (like the most of visual tools) is very convenient when it comes to manually creating the project’s diagram, but it becomes problematic in cases when more serious changes are being introduced to the schedule.
Here, I’d like to present how to use console tools operating in the Linux GNU environment for managing IT projects. In my mind, I can now picture the three capital letters “WTF?!” that some of you would exclaim when you start thinking of abandoning the sliding colored squares in favor of programming or quasi-programming in a text terminal. But I’m not going to persuade you. I’ll just present the tools and mechanisms I’ve used for years, which I really appreciate and which I haven’t abandoned so far, despite several attempts (unsuccessful, surely) to migrate to a more popular software. You can call this approach an alternative one (because hardly anyone uses it), retro (for a text console is a piece of history), a technophile one (if the hordes of green letters on a black background excite you), ideological (because I use the free software), minimalist (due to an ascetic user interface), or simply stupid (because everyone is entitled to their own opinion).
To tell you the truth, from the tools I will be describing below, only the TaskJuggler is the one specifically designed for project management. The remaining ones are just great appliances, which you can use not only at work. Let’s get to the point and start with the essentials.
I’ve chosen the Debian GNU Linux for myself- it’s a very convenient and safe operating system (there’s virtually no viruses for it) and it’s equipped with everything I need; another plus it that it has no limits proper to proprietary systems. In the case of any problems, I can always check what’s going on (through the logs), instead of stupidly staring at the message that doesn’t tell me anything and suggests restarting the computer over and over again, or to use the assistance system where I won’t find anything useful regarding the problem that has occurred to me. I tried using Windows, but it’s nearly impossible to do so. And MacOS? I haven’t tried it yet, and I’m not planning to in the near future. I used FreeBSD and I was satisfied with it, although it lacked a large part of packages that I normally need at work (though, perhaps the situation has now changed).
I will quote the main page of my favorite email client, called mutt:
All mail clients suck. This one just sucks less.
The quote comes from 1995, but it’s still not outdated. The worst experiences that I have ever had were with these email clients that try to be smart in a way that is impossible (or very difficult) to be verified by the user. For example, both Outlook and Gmail tend to label good emails as spam. Additionally, Outlook is very susceptible to viruses. In turn, Google Inbox tries to guess which emails are important to me and which are not. Furthermore, its inbox looks really colorful, but it isn’t readable at all for me.
In turn, this is what an email about cucumber soup looks like on mutt:
As you can see, mutt’s interface is really simple and clear. Shortcuts and commands are intuitive and allow for rapid execution of daily work, such as filtering, sorting and searching through emails. Another useful function is the ability to create macros. For a more complex search you can use Notmuch, which perfectly integrates with mutt:
I haven’t found a GUI email client that will let me have the level of configurability I have with mutt such as the ability to tie specific sigs (and whether to top or bottom post the sig) based on whom I’m sending an email to or the email folder I’m in. Plus mutt is fast. I like to joke that I can open mutt, check mail, and close it before another mail client loads. — Kyle Rankin
Apart from an email client, one of the most frequently used tools in the work of any manager is task-organizing software — it’s best if it’s also merged with a calendar. Of course, there are many options here — the easiest way is to use the Google calendar or Google task manager. A minus of this variant is that we entrust our valuable information to an external company, and this could be used in a way unfathomable by us .
Thus, we’re looking for another option. The main priorities are as follows:
- easy & fast accessibility
- data security
- transparent UI
- possibility of simple data sharing between different platforms.
For a long time, I’ve been using a simple text file to manage the task lists. It had a disadvantage though — my file was getting bigger and bigger like a snowball rolling from a steep hill. Apart from this , it became so large that it was unclear to the point that I couldn’t get myself to use it anymore (you know what I mean).
Todo.txt proved to be an interesting option that complemented the above method. It provides such options as priorities and tags, and has a structure that works brilliantly on mobile devices. What’s more, you can use it on Linux with the Emacs GNU editor. I highly recommend this solution, even though I decided to use another alternative, namely Org mode. This is an ingenious software, which I use to manage both my professional and private stuff, as well as to do notes from various meetings. It has many other uses too, according to its motto: “Your Life in Plain Text”. It works in Emacs, as well as in VIM, so both camps could find something for themselves.
Org mode can serve to operate according to the GTD (Getting Things Done)method, although from my point of view, GTD is a little too fixated on tasks, too technical and lacks the space to sense and then select what is really important — both in work as in life.
“When will it be done, Mr. Gantt?”
An inevitable question from the business waiting for the implementation of a new functionality or the whole system is “When will it be done?”. Here, theGantt chart is very useful: as a result we can (even initially) assign people to tasks, estimate the time-consumption of every task, define relationships and develop an approximate date of the completion of a project. It is also a good basis for work optimization, e.g. by managing with the critical path method.
In this case, TaskJuggler is irreplaceable. At the beginning, we introduce all the necessary information: what developers we have, how much time they can dedicate to the project and then we create tasks, which has their own time, priority, conditions, owner, etc.
We compile all the data… and the result is a Gantt chart and a couple of other charts, which give us the opportunity to look at the project from different perspectives — personal, timely, and other ones. TaskJuggler is very flexible and we can basically do anything that fits within reasonable limits.
TaskJuggler collaborates well with Org mode. With a little perseverance, you can also automate the process of updating the chart on the basis of the progress of work sent by the developers via email to a dedicated address.
Sometimes, even often, there is a need to create a document that is not a plain text, but which also requires to be enriched with some graphics, complex tables, navigation, etc. Of course, you can try to use tools such as WYSIWYG, e.g. Open/Libre Office, but anyone who ever created a larger and more complex document knows what’s going to happen. There are recurring problems with formatting when you want to divide a text into sections, subsections etc. In the end, the final result together with the typography usually isn’t fully satisfactory. Professor Donald Knuth faced the same dilemma in 1977, when he was planning to publish his monumental work The Art of Computer Programming. He was unhappy with the composition of the book, so decided to write his own typesetting system, which he planned to complete within half a year. It nearly worked out — the system in question isTeX and it was ready almost ten years later. At first, the system gained wide recognition in the academic community (it was brilliantly suited to describing mathematical formulas), and it eventually became popular among other users. A curio, showing how the reliability of the system, is that the author pays for every found error; it seems, though, that this idea didn’t cost him much. As for the quality of generated documents, the best proof of its high level is the praise I got from the staff at the Tax Office — I heard that my document was the most aesthetically written ever; the lady even asked me how I did it. Personally, I use mainly LaTeX, which is one from many other TeX extension. The hallmarks of TeX and TeX-derived systems are: flexibility, precision, reliability, and aesthetics.
And here you have an example of a simple shape filled with text generated in LaTeX with one command (\heartpar):
Advanced Tool for Shared Space of Ideas’ Visualization
We use it at PIXERS to make notes during our SCRUM meetings. It looks like this:
Yes, it’s a common board — and it’s surprisingly functional!
Advanced Tool for Managing the Kanban Board
Another similar tool — a wall covered with washable paint, with a board where we have columns with the statuses of tasks (To Do, Implementation Process, Testing, Done), and we have rows with people responsible for the tasks. At the intersection, there are notes with the tasks numbers in Jira.
I could make the above list even longer. There could be such tools as, for instance, KeePass CLI — a passwords manager console client, GNU RCS — that allows local management of the files versions, or Irssi — an IRC client.
I will conclude with a tool, which isn’t a text tool, but which is useful enough that it’s also worth mentioning here. I have ScreenSHU in mind: it allows for taking screenshots quickly, marking selected fragments on it and sending it with a short link to another person, whom we want to show something particularly interesting on a website or in the game we’ve just played:
Summing up: in my article, I wanted to show selected tools that I use myself for various reasons — both pragmatic (ease of use, flexibility, good incorporation of the Linux GNU ecosystem) and for ideological ones (most of the programs mentioned above are available as free software). Perhaps, some of you will find one suited for your needs among them- and maybe you will be lucky enough to find a company such as PIXERS that allows for the free choice of work tools in the IT department. :)