Tag: Thoughts

About developers users and freebies

20.06.2012 18:56 ·  Notes  ·  thoughts

Inspired by some forum topics and the general attitude of some users (observed in IRC, bugtracker, mailing lists and personal emails). I actually wrote a bit about this a few months ago. One more time and that’s it, I won’t go back to it.

The random user is perplexed and outraged because the developers refuse to implement the feature (which gradually becomes a set of loosely connected features) that the user needs for his specific task. Really, why? First of all, the requested functionality looks strange not only to the developers, but also to many other users who, by the way, have a certain weight and influence in the community (more on this below). This means that the importance and necessity of the requested functionality are highly questionable. The second point that the user persistently ignores is the existence of a third-party plugin that does virtually everything they need. It is enough to make a minimal modification to the plugin yourself or to contact the author (an adequate and responsive person who responds promptly to comments and polite, reasoned requests).

The software is made for everyone, there is a roadmap and a vision for future development. And it makes no sense to add something to the core that only a single user needs, especially if there is a plugin with similar functionality. If the feature is really important and should be in the core — justify it. Developers cannot physically know and foresee everything, so if you can explain to them why it should be this way and not that way, changes will be made. After all, they want the program to be convenient and useful. Just remember that reasons along the lines of “I use your software in my company, so you have to…” look silly as an argument.

Another user complains that developers “resist when bugs are clearly pointed out to them”. Obviously, resistance should be understood as a polite request to describe the nature of the problem and the proposed solution in more detail. By the way, it is at least not nice to reply to a stranger with “wise will understand”. It may well turn out that this person is much wiser than you are.

It’s not unreasonable to repeat a few very simple things here:

Also don’t resent the fact that some bugs are fixed when

the problem will “hit” one of the developers or people who have influence over them

It’s expected and normal. Let me try to explain why this happens.

The reason people get into development is almost always the same: they need a convenient tool to solve their problems. As a result, people first work on what they need/are interested in. In other words, people make software for themselves. It is logical that the bugs that hinder the developer personally will be fixed first. The same goes for adding new features.

Furthermore, in any relatively large project, each developer has their own area of responsibility. Some developers are responsible for one subsystem, others for two or three. And no one is going to dive into someone else’s code without a real need: it takes time. And as I have already mentioned, developers tend to be enthusiasts and spend their own free time on it. Do you think there will be many people willing to dig into someone else’s code, with a vague description of the problem and no way to reproduce the bug, instead of doing something more interesting?

Now about “people who have influence over them”. Usually, these are not just some abstract John or Jane. Developers are influenced by people who are recognised in a field, who have knowledge and authority, and who are doing something useful. Both recognition and influence do not just appear, they are well-earned. These people have already proven that their opinions count for something; they not only take from the community but also support it (not necessarily financially, though it can be financial support too). Of course, we shouldn’t ignore the factor of personal sympathy: I don’t think anyone would argue that people are more likely to help their friends than complete strangers.

All of the above applies to “volunteer-based” development. If you are not satisfied with such an arrangement — find your own way to motivate people. When the canton of Solothurn needed annotations, they didn’t moan “Do it for us, we use QGIS”. Instead, they approached Marco, described the problem, got him interested, and soon got what they wanted. When Andreas finds a bug, he reports it with a detailed description and a test dataset. In urgent cases, he always finds a developer willing to help solve the problem. And these are not isolated examples.

Perhaps you should reconsider your attitude to opensource?

Automonous bugtracker

07.05.2009 16:19 ·  Notes  ·  thoughts

I’ve been working on several projects lately. Of course, from time to time bugs are found or users ask for additional features… All this should be written down somewhere, because there is a very high probability that you will forget some of the features/bugs by the time you can start working on them.

In this case, the most logical and convenient solution is a bug tracker. The problem is that all the options I’m aware of are web-based, but I don’t want to install Apache and MySQL and have them running all the time just for the sake of a seldom-used system. Also, I need to use it both at home and at work - so there is a need to synchronise tracker instances. So I started looking for an “offline autonomous bug tracker”, but I haven’t found anything yet.

But why? Is it really such an exotic option? It seems to me that this kind of software would be in high demand among developers working on small projects and those who, for whatever reason, can’t or don’t want to install a web server.

About programming

02.05.2009 09:45 ·  Notes  ·  thoughts

Programming has always fascinated me. When I was a kid, I was introduced to programming, first with Basics (I wrote programs to draw snowmen, cars, and other stuff), then Pascal, and on and on it went. One thing led to another, and after Pascal I learned C. After all that, playing computer games was no fun at all. This is probably one of the reasons why, for me, a computer is first and foremost a tool and not a game console, as it was for most of my friends and classmates.

Anyway, I never became a professional programmer, although I did get a second degree in the subject. The reasons for this are a topic for another post.

However, I did not give up programming. During my work in the regional branch of the State Land Cadastre Centre, I developed a system for maintaining a cadastral plan based on ArcView 3.2. Later, I tried (unsuccessfully) several times to present my own program — an automated system for the cadastre — to my superiors. I also write some small programs from time to time, both for work and for myself. And recently I made and sent a patch to the developers of the free file manager DoubleCommander. Not a big deal, just a small improvement, but the fact that it (the patch) was approved and included in the main tree is still pleasant. Almost at the same time, I had an idea for another improvement, which I plan to implement in code in the near future.

What is happening to me is, on the one hand, joyful. It’s experience, it’s practice, it’s growth. But on the other hand… I never noticed this before. Well, I wrote a small utility to automate some tasks, then I wrote another one… But there was no stable and constant desire to dig into the sources, fix something, add new functionality, make patches, follow the tracker. Am I sick?