One thing about software development is that you need to stay organized. A big part of that is tracking your todos, features, bugs, etc. (tasks.) For the longest time I was just using a text editor like notepad++. It worked. The problem with going text only is that sorting the list of tasks is very manual and can get tedious. Plus when tasks require a lot more information then a single line of text, the text file starts to be really inadequate. So the tediousness, the manual nature, and whatever extra that needs to happen when tasks becomes more involved than a single description line, this solution will waste a lot of time.
A slightly better solution over a simple text file and text editor would be a spread sheet program. You now can place all your tasks in a table form, which I was doing anyway, and be able to sort them on one or more columns. Plus modern spread sheet programs can put a lot of text into a cell and show it. The pain point here would still be data entry. It is not tailored to the job. You can enhance it all with forms an scripts, and I have tried, but the end result is still a bit lacking. Sort the list is doable but multiple clicks of the mouse is needed.
Since I am a programmer, I have tried my hand at writing my own. My last attempt was writing a web based solution using Python. Why? Python has a web server built in so it was relatively easy and an HTML display is fairly quick to get something reasonably nice looking. I have tried doing a console application, an actual desktop application, web base application using PHP and Java script (a few times this trying to figure out how best to do it, there is no good way as far as I can tell.) With Python, there it no dependency on having to have a web server running. Just run the Python program and you are done. I do not mind the console being visible in the background. It is only a personal solution so it does not need to be pretty. It does what I want for now. Simple and quick data entry. Simple and quick project creation, simple and quick task creation, quick sorting of tasks, quick filtering of tasks by project, quick setting task priority and effort. What is serious lacking is the ability to add more information to a task beyond a single line of text. I could quickly hack something on and I might just do that but I though I might try another solution. Mean, stop reinventing the wheel.
So before I continue down that rabbit hole of improving my own task tracker and wasting more time, I figured I should look at what is out there and see if there is not a better way. At my day job we use JIRA. As bug trackers go, it is easily top 10. But it is not free. Or it is free if you are small, which, I currently am, sole developer and all, but I have an issue with it. I will have to be online to access it. And sometimes, I know, I will not be online. So I would ideally like something that will work offline.
An offline bug tracker can be a bit tricky. A lot of them require a web server, MySQL (or similar), some for of internet interpreted language etc. And the last few days I have been trying desperately to get any of them to work.
First up, Mantis Bug Tracker. This is an option on my NAS device. I can easily get it working on the NAS but I will not have access to that service when I am away from home so that isn’t really an option. I had serious high hopes for this one. It requires a web server, MySQL, and a fairly new PHP. Started using XAMPP but noticed the current directory for where the MySQL was to be stored was in the XAMPP folder. I want all data to be on a cloud backed up folder so that when I move to another computer, I will have the lasted there too once all the data is synched. And as long as I had a chance to sync with the cloud I should not have a problem with working with the latest database for the task tracker.
This brought me down another rabbit hole. I update the configuration of MySQL on XAMPP to be a folder on the cloud folder and, MySQL will refuse to start up. I could not figure it out. My Google Fu failed me as well. I tried to look at other solutions similar to XAMPP an they too had issued with moving the MySQL data to somewhere else other than the folder where that package was installed. Annoying. The solution, install XAMPP or whatever I was using in the cloud folder. Ok that problem solved although that installation eats away a decent chunk of my cloud storage allotment. After a good day or more of googling and futzing with at least 5 different solutions. Plus other issues with MySQL. Too many installs and uninstalls, I got too tired of that and picked one that worked.
Back to Mantis, go through the install steps and then get stuck. Something about a crypto hash needing to be 16 characters or more. Ok, do the recommended change and… Same error. More Google Fu and nothing more explained. I have a low tolerance when things do not “just work” and this error just killed any forward momentum since I could not ever get to the normal ui for Mantis. Flip the table. What else is there.
I remember before we went to JIRA at work we were using Bugzilla. Nail in the coffin there is the need for PERL language dependency. XAMPP can install it but I also looked at some of the steps involved with Bugzilla set up and figured, there has got to be something simpler.
So on to phpBugTracker, I was having really high hopes for this one. I could not get it to install because it required an older PHP than the default one on XAMPP. Ok, if they are not keeping up with the times then they are probably not really well supported. I am not downgrading the PHP version.
Took a look at RedMine which seems to be rather popular, only to discover it requires the Ruby language. In my opinion, this is even worse than PERL as I would have to now figure out how to install Ruby and then have Apache web server configured as well. My time is too limited. Next…
Had a thought, there has got to be something that does not need a web server. And there is. Python has one. Trac. Brilliant! Pip install trac and so forth. Got it to the point where I could see it in the browser but then, I couldn’t do anything. Trac needs a very basic authorization system in place and the stand alone tracd executable on windows is a peculiar case. The instructions are not clear and none of them worked for me. I even had to refer to something on the ‘way back machine’ to install something from trac-hacks.org just to get it to display the admin menu. But even then, the instructions are saying to click on one of two things on the admin meny that I did not appear in my implementation. Sigh, stuck again… Oh there is a bitnami stack (premade virtual machine)! Cool!… Not cool, apparently it no longer exists. So I got stuck again. I am getting a bit annoyed.
Came across a comment about python ’roundup’. Alright, let’s give it a whirl, although I am now thinking I am starting to walk into the less travelled part of the problem. pip install roundup. CPU fan goes crazy and it just seems like that command hangs. I am only guessing from what I have seen, I would need to downgrade python to make this work. So again another project that has not kept up with the times. Plus there was a step or two requiring easy_intall.exe and for the life of me, I cannot find it or install it. This is a dead path.
Maybe there is a program that does what I need. Well there was, I guess. DevProject Management program was developed by someone but apparently it has been abandoned. I managed to find the exe somewhere and gave it a look. I cannot say I liked the experience just out of the box. It was not exactly immediately obvious and it seemed to have a lot of stuff I did not need.
I thought about virtual machines. However that thing I hate about them is that they generally have a very large virtual file system file to represent that machine. Synching that on the cloud might be over the top. They would be better as a server on a machine that everyone accesses but in my case that is not what I am aiming for.
I cannot remember what else I looked at but it would appear that my desire to have an existing solution to work offline is not going to happen. And I am pretty sure at least one or two should have worked above but did not. Stalled at one point or another. Trac came so close and I spent a lot of time trying to figure it out. I just could not move forward to get to the, let us create a new ticket phase.
Maybe I will just have to settle for the online issue trackers. I did play with ClickUp recently and it was actually fairly simple to get it to a config for my needs. Not exactly 1-1 with what my simple home built python solution but it has the fields I need and I can do the same things, just slightly differently. Otherwise, I will have to spend some more time on my python program.
Software development and system administration… They both can be very frustrating and suck the life out of you. Things should just work and sometimes, they do not. In my opinion, do not waste your life on bad software.