Valorizzare il dissenso


Quelli che non sono d’accordo con noi sono più importanti di quelli che lo sono.

Circondarsi di persone che sono solo d’accordo con noi è il miglior modo per vivere e prendere decisioni con un paraocchi.

Il ruolo del “devil’s advocate” è fondamentale in ogni decisione, e in un gruppo di persone se tale figura è assente è importante cercare di crearla, magari anche in maniera fittizia, perché stimolare il dissenso è importantissimo per garantire che il processo decisionale sia di qualità.

Sempre per quella storia dei no-manager, nell’accezione tradizionale e negativa del termine: un manager tende a circondarsi di consenso, è un ottimo modo per consolidare una posizione di potere, posizione che sarebbe o potrebbe essere minata dal dissenso, un leader invece non ha il problema del dover mantenere una posizione di potere.

author: Mauro Servienti | posted @ lunedì 30 maggio 2016 8.08 | Feedback (2)

Badass!


Investire un'oretta del nostro preziosissimo tempo in questo video è tempo speso in maniera perfetta:

Kathy Sierra: Building the minimum Badass User, Business of Software 2012 from The BLN & Business of Software on Vimeo.

Il punto che espone Kathy è decisamente intrigante ed è la massimizzazione dell’approccio user-centrico, tutto gira intorno all’utente, è orientato all’utente, e non solo. Insomma guardatelo Smile

author: Mauro Servienti | posted @ venerdì 27 maggio 2016 15.08 | Feedback (0)

Da OneDrive a Dropbox…ma soprattutto: perché?


Sono stato per anni un accanito utente di OneDrive, di SkyDrive prima e di LiveMesh prima ancora (di cui ho fatto anche tutta la fase di beta testing).

Ho documenti per circa 41Gb e non ho mai avuto il benché minimo problema, poi tutto iniziò con: https://blog.onedrive.com/onedrive_changes/, che in realtà non mi toccava neanche di striscio, mi infastidiva molto ma essere infastidito non è un buon motivo in questo caso.

Di palo in frasca…

Ho un abbonamento MSDN (Visual Studio Enterprise with MSDN) personale come MVP e uno come azienda, bene. Ho un abbonamento Office 365 Personal, ho 3 licenze Office 365 qualcosa d’altro (quello che vi da la posta), ho anche Microsoft Office Home & Business 2016

Questo mi fa incazzare, sinceramente: è Topo Gigio che decide il nome dei prodotti? no, perché non si capisce nulla, ti arrivano le fatture e devi fare le capriole per capire cosa stai pagando.

Ma anche questo è solo parte del problema. Sta di fatto che scade Office 365 Personal e mi sono detto che sinceramente non ne vale la pena rinnovarlo, va bene tutto ma regalare soldi per qualcosa che non uso anche no, l’effetto collaterale è che ovviamente lo spazio a disposizione su OneDrive passa immediatamente da 1Tb a 15Gb (i 5 di default + Camera Roll), account bloccato in read-only (e ci sta).

Quindi?

Quindi ti chiedi: cha faccio adesso? Opzioni:

  1. pago OneDrive per avere più spazio
  2. provo ad usare OneDrive for Business (altro genio del marketing)
  3. cerco altrove

La [2] la scartiamo a priori, quando hanno distribuito la qualità quelli di OneDrive for Business erano nascosti molto bene, ciao.

Restavo a questo punto con pago OneDrive pago qualcun altro, pagare per pagare a questo punto si va alla ricerca della qualità, e questo scambio su Twitter direi che riassume bene le mie scelte:

image

Ma ancor di più il “dettaglio” che tutte quelle feature sono richieste da secoli, se-co-li. Millantano che ci saranno e ad ogni nuova versione del client cambiano un sacco di cose, in meglio o in peggio, ma di cose importanti nulla, il feature-set quello è e quello resta.

A questo punto visto che Dropbox mi da quello che mi serve la scelta mi sembra scontata.

author: Mauro Servienti | posted @ mercoledì 25 maggio 2016 9.03 | Feedback (0)

Letture estive e non solo.


Mi sono fatto ri-prendere dallo shopping compulsivo di libri, è sempre stata una mia debolezza.

IMG_20160516_142803

Non solo, siccome la passione per la gestione dei team e dei prodotti/progetti è sempre forte e il modello aziendale in cui vivo è decisamente complesso mi sono iscritto al corso di Kanban di Brando sono curioso di capire se posso trarne qualche spunto lavorativo interessante.

author: Mauro Servienti | posted @ martedì 24 maggio 2016 8.44 | Feedback (0)

Sempre per quella storia del non c’è nulla di sbagliato…


Agli inizi del 2000, se ricordo bene, viene da me la Banca del Tempo di Treviglio che sapeva che il sottoscritto smanettava con i computer e mi chiede come poter realizzare una sorta di agenda che visualizzasse:

  • una serie di eventi pianificati per la settimana corrente
  • una serie di eventi pianificati per la settimana successiva

Ovviamente dovevano poter inserire eventi a piacimento e il sistema avrebbe in automatico scelto cosa far vedere, con quale livello di dettaglio e quando.

Quella qui di seguito è una foto dell’applicazione che gira ancora oggi, la stessa fatta con ASP Classic, un browser in full screen con 2 IFrame con un meta-refresh che richiamano se stessi mettendo in query string la data giusta per eseguire un filtro su un database Access, in cui da un “back-office”, sempre in ASP Classic, è possibile inserire e manipolare eventi.

IMG_20160507_181604

È li, che funziona imperterrita, da almeno 14 anni. Il monitor è l’unica cosa diversa Smile

author: Mauro Servienti | posted @ mercoledì 18 maggio 2016 6.46 | Feedback (0)

Non c’è nulla di sbagliato in…


…un approccio tradizionale basato su una banalissima CRUD, come non c’è nulla di sbagliato nei DataSet o in un servizio WCF.

L’architettura non deve essere guidata dalle scelte tecnologiche, tanto quanto le scelte tecnologiche non devono essere guidate dall’hype del momento. Scegliere quindi di prendere un’applicazione esistente, farne un massiccio refactoring per trasformare il monolite in qualcosa basato su microservices senza che vi sia una validissima motivazione di business e senza che i pro e contro siano stati valutati cum grano salis è semplicemente folle.

Allo stesso modo scegliere in un nuovo progetto una tecnologia o un’architettura semplicemente perché il nostro vicino di casa ci ha detto che funziona o perché sono la figata sulla bocca di tutti del momento è altrettanto folle.

Lasciatevelo dire ancora

È quasi certo che il monolite che oggi funziona anche se magari ci da tanti grattacapi diventi un insieme di monoliti che oltre a non funzionare più come prima ci danno molti più grattacapi esattamente allo stesso modo quando decidiamo, senza nessun buon motivo di business, di prendere una chiamata diretta al database e mediarla attraverso un servizio WCF: è colpa di WCF o gli storditi siamo noi?

La tecnologia in se e per se non è ne giusta ne sbagliata è l’uso che ne facciamo che è giusto, sbagliato o disastroso. E se non c’`e un buon motivo di business e/o un’attenta valutazione di pro e contro e dell’impatto economico siamo degli irresponsabili.

author: Mauro Servienti | posted @ lunedì 16 maggio 2016 9.33 | Feedback (2)

Lavoro da remoto - strumenti: Waffle.io


Come in parte abbiamo già detto tutto il nostro sapere sta su GitHub, in una serie di repository pubblici e in una serie ben più ampia di repository privati.

GitHub fa tante belle cose lo ammetto ma devo anche dire che la gestione degli “issue” fa letteralmente acqua da tutte le parti, sono lontani dal minimo sindacale necessario per poterli definire uno strumento in qualche modo utile per la gestione di un progetto. (fine dello sfogo)

GitHub per tanti buoni motivi resta comunque il centro del nostro mondo e per una questione di sanità mentale di tutti noi è necessario che oltre ad essere il centro sia anche la sola ed unica “single source of truth”; vogliamo evitare come la peste che le informazioni siano accidentalmente duplicate producendo, in particolare in una realtà dispersed, ben più problemi di quelli che vogliamo.

Board: waffle.io

Una delle cose che ci mancano è la gestione di una io più board per organizzare in maniera visuale un gruppo di issue. Waffle.io ad oggi ha dimostrato di essere la soluzione ideale in una realtà come la nostra, inoltre il team è responsivo alle nostre richieste di implementazione di nuove feature.

image

Quella che vedete è la board pubblica di Radical, le nostre purtroppo non ve le posso far vedere.

La cosa interessante di Waffle.io è che non mantiene in nessun modo nessuno stato lato Waffle.io, quindi la single source of truth è GitHub, tutto sta li. Fino a poco tempo fa usavamo HuBoard che ha qualche funzionalità in più ma che ha un suo stato per gestire queste funzionalità in più, cosa che vi obbliga ad usare sempre e solo la board perché toccando direttamente gli issue rischiate di disallineare le due cose, cosa che con Waffle.io non può succedere e che soprattutto voi non volete che succeda.

author: Mauro Servienti | posted @ venerdì 13 maggio 2016 9.32 | Feedback (2)

Electron


image

Electron ha il suo perché, non c’è che dire. Per chi non lo sapesse Electron è sostanzialmente una piattaforma di sviluppo per applicazioni “desktop” che vi consente di realizzare applicazioni cross-platform (Windows, OSX, Linux) utilizzando JavaScript, HTML, and CSS. Quindi ad esempio vi permette di realizzare un’applicazione desktop usando AngularJs e Bootstrap.

Quello che Electron fa è fornirvi una shell ad hoc per ogni piattaforma e le API unificate per consentirvi di dialogare in maniera uniforme ed agnostica alla piattaforma che vi ospita. Non è molto diverso da quello che Cordova fa nel mondo mobile.

La vera differenza, per quel poco di esperienza che ho con Cordova, è quello che avete sotto il culo (perdonate il francesismo). Oggigiorno la potenza di un PC è tale da rendere pressoché insignificante, per moltissimi scenari, il dettaglio che l’applicazione non è un’applicazione nativa, ma nel caso di Electron basata su Chromium e Node.js.

Una buona dimostrazione di questo sono la pletora di applicazioni, anche non banali, che ad oggi ne fanno largo uso. Applicazioni che per inciso funzionano abbastanza bene anche su quel posa pentole del mio Surface 3 non Pro (per gli amici detto Poor).

author: Mauro Servienti | posted @ giovedì 12 maggio 2016 9.35 | Feedback (0)

Reliability, Throughput, Latency (RTL)


Quando parliamo di sistemi distribuiti di solito uno dei dogmi fondanti è il cosiddetto CAP Theorem, internamente ne abbiamo coniato un altro, per certi versi simile: RTL.

Reliability, Throughput, Latency

Mentre CAP descrive una caratteristica intrinseca del sistema, RTL vuole principalmente descrivere una caratteristica dell’output del sistema, o se vogliamo vederla in un modo diverso di quali sono le aspettative che l’utente può avere e che desidera vengano rispettate.

Come per CAP, Reliability, Throughput e Latency non posso tutte e e tre essere massimizzate contemporaneamente. Devo fare delle scelte e sacrificarne almeno una, o una parte di essa in favore di una delle altre due. Se mi aspetto un sistema altamente responsivo, ergo con Throughput altissimo e Latency bassissima, forse ma forse devo accettare che perdermi per strada qualche pezzo è possibile altrimenti devo sacrificare una delle due a favore della Reliability.

Questo introduce un interessante aspetto sia dal punto di vista architetturale, che di modellazione, che di scelta tecnologica: fare una scelta uniforme e consistente in un sistema distribuito nella maggior parte dei casi non è la strada ideale.

I modelli di cui stiamo discutendo potrebbero avere requisiti, in termini di RTL, radicalmente diversi, ergo le scelte architetturali e tecnologiche di uno potrebbero essere sbagliate per un altro.

author: Mauro Servienti | posted @ mercoledì 11 maggio 2016 10.30 | Feedback (0)

Date di consegna, pianificazione e perché no gestione delle persone


Sono reduce da un’esperienza alquanto interessante in merito alla gestione di un progetto lungo, complesso e molto faticoso. Ho raccolto una parte delle mie impressioni e alcune considerazioni nel mio blog in inglese:

Deadlines: are they a good thing? The acting and directing metaphor.

You might already know that for living I work in the software industry. It has been my primary job for the last 16 years or so. You might not know that my secret dream is to be an artist.

I studied classical dance when I was young and I always enjoyed being on stage. When it comes to dancing (classical dance in particular) getting older doesn’t really help, so in the last few years my hobby moved from pure dancing to acting, singing and dancing in an amateur dramatics company.

Our current show is a reworked and simplified version of the awesome, Mamma Mia.

Se voleste approfondire: http://milestone.topics.it/2016/05/02/deadlines-acting-metaphor.html

author: Mauro Servienti | posted @ martedì 10 maggio 2016 11.21 | Feedback (0)