ia: Benvenite! In mi blog io scribe in interlingua, italiano e anglese.

it: Benvenuti! Nel mio blog scrivo in interlingua, italiano e inglese.

en: Welcome! In my blog I write in Interlingua, Italian and English.

Performance reviews

It happened a few times during my career, that I found myself in a team with a colleague whose productivity was close to zero. In most of these cases it was simply a matter of people who hadn't the skills and happened to choose the wrong career path, and in one case it was actually an excellent developer, but just slacking off. Regardless of the case, in many of these occasions it looked like the team manager hadn't noticed the poor performance of the individual in question, whereas this was rather obvious to the rest of the team. I'm not sure why the managers didn't notice the black sheep, but the point is that none of the other developers did raise the issue either: why would I report a fellow colleague, who might risk losing his job because of my evil tongue?

So, Scrum to the rescue? Not quite. As a matter of fact, while it is true that an underperformer could be easily spotted by seeing how often he fails to complete his stories in the timeframe suggested by the story points, this information is generally accessible to the product owner, whereas the line manager might not attend the Scrum meetings at all (as was the case in a previous project of mine, where the line manager was completely detached from the project); and even if the line manager had this information, it's not a given that he'd make use of it — as a matter of fact, I cannot say with certainty that the line managers did not notice those underperforming colleagues of mine; maybe they noticed, but failed to intervene for some reason?

It sounds like this might be 360 material. Unfortunately, in my experience the 360 reviews are a waste of time for the most part, but that might be because they had been badly implemented in the companies where I worked in. In these reviews I get to rate my colleagues using a set of predefined statements which generally look positive, such as “Often delivers more than expected” or “Always meets the expectations”, but each of which imply a very different rating. I can see that the reason why the system uses this kind of sentences is because no one wants to explicitly assign a bad rating to a colleague, so all the possible answers have a “positive” feeling. The problem with this is that the shades of meaning in these sentences is not obvious at all, so one risks ending up picking sentences almost at random.

A system that would allow a company to get a honest feedback, without requiring employees to say bad things about their colleagues, could be based on the idea that your colleagues have usually a good sense of how well you are doing. To me, it would make more sense if the performance review consisted of a question like this:

Please make a list of those colleagues that in your opinion are more valuable to your team or to the company in general.

Then the company should sum up these lists and have a look at who is not there, or whose name appears way too few times in relation to the number of people who have worked with him or her. Then this information would not only be available to the direct line manager, but also to upper line managers, who might be willing to judge the situation with more objectivity and be able to decide to move the person to another team.

The presentation of this question could indeed be very different from what I've suggested here, for example it could be something like “Make a list of colleagues you'd be most happy to work (or continue working) with”, or it could include some personal feedback: in that way, if the only good thing that people have to say about a developer is “He's a very nice guy”, well, you could imagine that we are not dealing with a strong developer after all.

On the opposite side of the spectrum, the people whose names appear more often in the star colleagues lists are probably the employees that the company should cherish and try hard not to lose. Salary increases, bonuses and all other gratifications that can help in retaining them should be primarily connected to the colleagues' direct feedback, rather than to semi-obscure metrics which might not capture their real value.

MiTubo 1.4 adds feed folders

Exactly one month has passed since the previous release, just the right time needed to complete the feafure I've been working on since several weeks and to fix a few bugfixes introduced with the previous release. So it's time a new release of MiTubo:

I realized that I'm not that good at making release videos, but the point of the video above is to show that you can organize your feeds into folders. When clicking on a folder, a page opens with the folder's contents; but you can also directly click on a feed, as long as its preview is visible in the folder's delegate, and then the feeds open directly. This means that if you organize the feeds inside your folders so that the favourite ones are at the top, they'll also be visible in the folder preview and you'll be able to jump to them in just one click.

Maybe I'm not that good with textual explanations either, so why don't you check it out for yourself? ☺ Get it at mardy.it/mitubo (builds for Linux, Ubuntu Touch, Windows and macOS are available)!

MiTubo 1.3: sorting of QML ListView via Drag&Drop

One feature that I've been asked to add to MiTubo, and that indeed becomes more and more important as the number of subscriptions increases, is the ability to group subscriptions into folders. I've spent a good amount of time implementing the needed support in the C++ backend, which is now able to handle nested folders too, but given that building the UI parts was not a quick task and seeing how much time has passed since the last release, I thought of releasing a partial implementation of the whole feature, consisting only of the ability to manually sort the subscriptions via drag&drop (that, is no folder support). It turns out this is already not a trivial work!

I found a nice tutorial on ListView DnD sorting by the great Aurélien Gâteau which I found very inspiring, and while I didn't actually reuse the same code (mostly because I was already halfway through with my implementation, which I started before finding his tutorial), it was helpful to have it as a reference. I added a few animations to make it look more pleasant, and I'm rather satisfied with the result:

I'm not showing you the code yet (though, indeed, you can find it in the DraggableListView and DraggableDelegate items in the source repository) because it's not yet in a shape where it's generally reusable in other projects, but if I happen to need the same feature elsewhere I'll eventually try to turn it into a couple fully reusable components.

Anyway, here's what's new in this latest MiTubo release:

  • Subscriptions can be sorted by means of Drag&drop
  • For systems with python 3.5 or older (such as Ubuntu Touch), use the daily builds of youtube-dl instead of the official releases
  • Implement PeerTube search (this should reserve a post of its own!)

You can get it at the usual place. This time there are only Linux and Windows builds as I'm a bit lazy to make a macOS version, but should you need it, don't hesitate to ask!

Auronzo - Bivacco Tiziano - Bivacco Musatti

La giornata di ieri ha visto me e Yulia protagonisti di un paio di insuccessi escursionistici, ma ci tengo comunque a buttar giù due note a riguardo, perché mi riprometto di ritentare almeno una delle due imprese in un futuro prossimo.

L'obiettivo iniziale era quello di visitare il rifugio-bivacco Tiziano, sul gruppo montuoso delle Marmarole, a quota 2246 metri, partendo dalla Casa Alpina D. Savio (sulla strada Auronzo - Misurina), a circa 1000 metri di altitudine.

Il sentiero da seguire è il numero 260, che ci è parso da subito poco segnato: non era ovvio il punto dove andava imboccato e, una volta trovatolo, dopo alcune centinaia di metri l'abbiamo perso e ci siamo ritrovati in mezzo a una radura che, se non fosse stato per il nostro desiderio di ricongiungerci al sentiero, sarebbe stata paradisiaca: una distesa di piante di lamponi e fragoline di bosco, dei cui frutti abbiamo goduto mentre ci facevamo strada verso il sentiero principale.

La nostra passeggiata:
  1. La “radura dei lamponi”
  2. Il punto più alto che abbiamo raggiunto del sentiero verso il bivacco Tiziano
  3. La pista ciclo-pedonale lungo l'Ansiei
  4. Il punto dove inizia la fune ferrata nel sentiero verso il Musatti

Ritrovata la via maestra, abbiamo proceduto la salita, prima nel bosco e poi su un ghiaione che, pur non presentando particolari difficoltà, ci faceva preoccupare per il ritorno. Una volta completato, abbiamo incontrato un altro escursionista che stava scendendo, avendo riunciato alla salita. Alla nostra offerta di proseguire la passeggiata insieme ha riconsiderato la sua risoluzione e si è rimesso in cammino dietro di noi. Il sentiero era parecchio ripido, proseguendo a serpentina stretta, senza presentare spiazzi per soste o viste panoramiche. Dopo un po', il nostro accompagnatore si è fermato ancora una volta ed ha deciso di tornare indietro. Noi abbiamo proseguito fino ad una quota di poco superiore ai 1500 metri, quando abbiamo incontrato un lastrone di pietra poco invitante: il fatto che mancassero ancora circa 700 metri di dislivello da coprire, e la paura di incontrare ancora parecchi di questi lastroni, che ci facevano paura soprattutto in vista del cammino di ritorno, ci hanno persuasi ad abbandonare la missione e a tornare a valle. Lungo il ritorno, abbiamo incontrato un paio di gruppi di escursionisti che stavano salendo al bivacco, ed abbiamo iniziato a dubitare della bontà della nostra decisione. Poi, incontrato il ghiaione e avendolo sceso senza difficoltà alcuna, ci siamo decisamente pentiti di essere tornati indietro e ci siamo riproposti di riaffrontare la salita un altro giorno.

Un agghiacciante ritrovamento durante la discesa!

Ritornati all'inizio del sentiero, abbiamo seguito la pista ciclabile lungo il torrente Ansiei in direzione Misurina, con l'intenzione di consolarci passeggiando un po' lungo il fiume, ma una volta incontrate le tabelle che segnalavano l'inizio dei sentieri 226 e 279 abbiamo deciso di seguire quest'ultimo, prefissandoci un tempo limite di 1 ora (ed essendo ben coscienti che in un tale lasso di tempo mai avremmo potuto raggiungere il bivacco Musatti).

La bellezza del sentiero, tuttavia, ci ha indotto a seguirlo più a lungo: la parte iniziale si snoda interamente nel bosco, su terreno morbido coperto di aghi di pini e foglie secche, abbastanza ripido e a tratti esposto (non alla roccia, ma una caduta laterale di diversi metri può far male comunque, anche se il terreno è superficialmente soffice!). Nel complesso, decisamente gradevole.

A quota 1300 circa si arriva a un piccolo promontorio sul quale si può riposare e che offre una discreta veduta panoramica.

Proseguendo, il sentiero continua ad essere ripido, e diventa impervio dopo quota 1600, dove abbiamo incontrato la fune metallica che aiuta a salire i punti più difficili. A quel punto abbiamo rinunciato alla salita, ma questa volta senza troppi rammarici, in quanto già lo scendere quei pochi metri di roccia che avevamo scalato ci è sembrata un'impresa non facile. Sicuramente i bastoni che avevamo non erano di aiuto, in quanto è opportuno avere entrambe le mani libere per proseguire su questi passaggi; magari, se ci daremo un po' di coraggio, anque questo percorso potremo riaffrontarlo in futuro.