Confessioni di un consulente IT

Progetto GTalk Bot #2

Posted in Geek Corner, Programmazione by pigreco314 on 29 aprile, 2009

Dopo aver migrato il sistema operativo della linux box adibita a server ftp (che spreco!) da Slackware a Ubuntu 8.1 sono ritornato sul vecchio progetto di realizzare un bot GTalk che mi consenta di accedere da qualunque client google talk a informazioni disponibili sollo dall’interno della nostra rete aziendale (posta, informazioni anagrafiche, numeri di telefono, ecc.).

E così, lo scorso fine settimana ho sviluppato un prima versione del bot che, collegandosi a Google Talk con un account opportunamente creato, aspetta che il suo padrone gli invii i comandi ai quali è stato addestrato a rispondere.

Uno di questi comandi, che ho chiamato dir, fa sì che il bot acceda al server aziendale LDAP e restituisca informazioni pubbliche relative dipendenti. La sintassi è:

dir keyword [attribute]

dove keyword identifica la chiave di ricerca nella directory (per esempio il nome e cognome di un utente aziendale o una sua sottostringa) e [attribute] è l’attributo cercato (manager,mobile, location, title, ecc.)

Per esempio, se voglio conoscere il numero di cellulare del collega Mario Rossi, è sufficiente che chieda al mio fido assistente:

dir "Mario Rossi" mobile

Nel caso voglia reperire tutte le informazioni pubbliche di Mario Rossi, basterà invece digitare:

dir "Mario Rossi"

Ovviamente questa piccola magia funziona su qualunque dispositivo che supporti Jabber (il protocollo di IM su cui Google Talk è basato) e io ho potuto provarlo su un iPod Touch (sul quale GTalk gira in modo nativo) e un Nokia E65 con Fring installato.

Dopo essermi baloccato un paio d’ore con pygtalkrobot che ho avuto qualche problema a usare mi sono imbattuto nel progetto python-jabberbot che fornisce praticamente tutto quello che serve.

Il modulo jabberbot.py fornisce una classe JabberBot di cui ho modificato il costruttore per consentire di passare come parametri il server Jabber e la porta di connessione. Nel caso di Google Talk il server è talk.google.com. Dato che dall’interno della nostra rete la connessione con il server gtalk funziona solo attraverso la porta 443 (e non la 5222) e non essendo riuscito a forzare l’uso di questa porta nelle istanze della classe JabberBot ho tagliato corto e consentito di specificarne il valore come parametro.

La classe JabberBot fornisce le primitive per connettersi al server nonché ricevere e inviare messaggi. Il vostro bot deve essere definito come classe ereditata da JabberBot ed esporre metodi aggiuntivi per il trattamento dei messaggi. Il nome del metodo deve essere denominato come bot_<parola_chiave> (bot_ è il prefisso comune a tutti i metodi).

Quando il bot riceve un messaggio in cui la prima parola è <parola_chiave> invocherà il metodo corrispondente per il trattamento del messaggio.  Per esempio, per implementare un comando che restituisca il timestamp del server si può usare qualcosa del tipo:

def bot_time( self, mess, args):
"""Displays current server time"""
return str(datetime.datetime.now())

che verrà invocato digitando “time” nella chat con il vostro bot.

Pygtalkrobot usa un approccio simile ma i comandi sono definiti come espressioni regolari. In linea di principio questo approccio è più potente e flessibile ma per i miei scopi l’ho trovato inutilmente complicato.

Per accedere a LDAP ho usato la relativa libreria python-ldap e qualche esempio di query reperito in rete.

Le due revisioni successive dovranno implementare due importanti aggiunte:

  • l’interrogazione del mio file di posta tramite l’interfaccia WebOutlook, gentilmente resa disponibile dopo la migrazione della nostra infrastruttura da Lotus Notes a Outlook. Per questo utilizzerò un altro progetto python: weboutlook che va modificato per supportare la Basic HTTP Authentication usata dall’interfaccia web del nostro nuovo server Exchange
  • l’esecuzione del bot come demone. Di nuovo mi appoggio sulle spalle dei giganti e mi servo della Chris’ Python Page

Ad maiora!

Citazione

Posted in Zeitgeist by pigreco314 on 23 aprile, 2009

Sto leggendo “Il Mondo è Piatto” di Thomas Friedman.

A pagina 283 della mia edizione c’è una frase che mi ha molto colpito. L’autore immagina di rivolgersi così alle sue figlie:

Ragazze, quando ero piccolo i miei genitori mi dicevano: “Tom, finisci quello che hai nel piatto; in Cina e in India la gente muore di fame”. A voi io dico: “Ragazze, finite i vostri compiti, perché in Cina e in India la gente è affamata dei vostri posti di lavoro”.

E in un mondo piatto possono benissimo accaparrarseli, perché lì non esiste più una cosa chiamata “lavoro americano”. Esiste semplicemente il lavoro, e nella stragrande maggioranza dei casi lo conquisterà chi è più bravo, più intelligente, più produttivo o più economico, in qualsiasi angolo del pianeta si trovi.

Non sono sicuro che la Gelmini (così come coloro che l’hanno preceduta) si renda ben conto di questa realtà.

Scrivere un executive summary

Posted in Management by pigreco314 on 20 aprile, 2009

Oggi ho chiesto a un paio dei miei di compilare un executive summary riguardo il tal progetto che da poco iniziato già sta andando in vacca.

Ovviamente la scena si svolge in Olanda dove a quanto pare occorrerà rivolgersi alla Human Resources per risolvere tensioni all’interno del team che stanno cominciando ad avere impatto negativo anche sulle performance nei progetti e le relazioni con i Clienti.

Oramai è chiaro che lassù non hanno alcuna capacità di agire come team: mi domando quanto questo atteggiamento sia legato a questioni culturali e storiche della civiltà olandese. Quel che è certo (almeno secondo Wikipedia) è che come nazionale di calcio, nonostante la quantità di talenti che sono stati capaci di mettere in campo, non hanno mai vinto un cacchio tranne un campionato europeo nel 1988.

Appena tornato da una settimana di ferie mi vedo quindi impegnato in una piccola sessione di coaching, andando a rispolverare un vecchio executive summary del 2005 con il quale informavo il management (R.C. e H.G., se ci ripenso…) della delicata situazione in cui versavano 7 progetti presso Clienti a cui avevamo avuto l’ardire di vendere il parto della mente malata del Product Dept. di allora. Un cosiddetto software in cui sono state convogliati 20M$ di ricerca e sviluppo per poi tirare la catena e ammirare il tutto finire giù per lo scarico. Nel tour svolto presso ciascuno di quegli sventurati Clienti fui coinvolto insieme al collega L.C. di cui parlai già qui.

Insomma, ho girato il documento ai cari P. e J. accompagnando il messaggio con alcune regole da seguire quando si scrive un executive summary, che, non dimentichiamolo, si presuppone venga letto da manager appartenenti al livello “director” o superiore ovvero con poco tempo da perdere, allergici ai dettagli, iper-impegnati, interessati solo al nocciolo della questione blah blah.

Eccole:

  • fate un bel respiro e tenete a bada le emozioni
  • adottate una struttura semplice, logica e sequenziale. Per esempio: Introduzione, Background, Stato Attuale, Raccomandazioni/Opzioni
  • rimanete ancorati ai fatti, presentando solo quelli rilevanti per il caso che state presentando
  • evidenziate rischi e le opportunità legate al dominio decisionale dell’executive manager. Per esempio: budget, margini di guadagno, disponibilità delle risorse, impatti organizzativi, strategia
  • evitate i particolarismi e le affermazioni che possano rivelare conflitti personali. Caso tipico: la dialettica venditore / tecnico
  • se presentate cifre usate tabelle semplici con al massimo 3-4 colonne, evidenziando il KPI di interesse per l’executive manager
  • usate il controllore grammaticale
  • fate stare tutto in una o al massimo due pagine A4

Che ne è stato del mio Executive Summary del 2005?

Ah, saperlo! Il dato di fatto è che di quei sette progetti ne sopravvisse solo uno e ancora mi domando come potemmo sopravvivere noi.

Tagged with: ,

BABOK v2.0

Posted in Business Analysis by pigreco314 on 4 aprile, 2009

Il 31 Marzo 2009 è stata rilasciata la BABOK (Business Analysis Book Of Knowledge) v2.0. I membri della IIBA la possono scaricare gratuitamente dal sito dell’associazione mentre i non iscritti possono acquistarla per 29.95 USD.

iiba_member1L’esame per la certificazione CBAP (Certified Business Analyst Professional) continuerà a essere basato sulla BABOK v1.6 fino al 31 Luglio 2009, dopodiché seguirà la versione 2.0.

La presentazione SlideShare qui sotto vi spiega quali sono i passaggi necessari per candidarsi all’esame CBAP.

Un trimestre disastroso

Posted in Progetti, Storie Aziendali by pigreco314 on 3 aprile, 2009
Fire: Disaster in the city © millzero.com

Fire: Disaster in the city © millzero.com

Il primo trimestre fiscale dell’anno si è chiuso l’altro giorno in modo disastroso con risultati che definirei estivi, anzi balneari: nel senso che di solito fatturiamo queste cifre tra luglio e settembre quando molti dei nostri clienti chiudono per ferie, i consulenti sono in vacanza ecc.

Quasi quasi inauguro la nuova categoria del “Perché mi rattristro” per i post.

Pur nell’ecatombe finanziaria che abbiamo sperimentato possiamo tuttavia trovare qualche motivo di consolazione. Infatti, le cause del tracollo sono essenzialmente legate ai mancati introiti di due soli progetti che se avessimo potuto fatturare ci avrebbero portato molto vicino al piano finanziario del trimestre.

La storia di uno di questo due progetti era nota da circa due mesi, quando un impedimento circa le condizioni contrattuali che stavamo negoziando (mentre il progetto, per accelerare i tempi e adempiere alle necessità del Cliente, era già iniziato) ci ha fatto realizzare che non avremmo visto i soldi derivanti dalle attività di consulenza fino a Giugno 2009: stornati circa 200K dal forecast. Boom.

Come definireste la decisione di mantenere le risorse impegnate su questo progetto anche a fronte di un deferimento imprevisto dei pagamenti? Probabilmente in molti modi: uno di questi è che si è trattato di una decisione strategica motivata dalla necessità di accontentare un Cliente chiave per il nostro business e non solo. Ok. Sottoscrivo.

Il secondo progetto (un grosso Cliente petrolchimico) attendeva di vedere riconosciute attività eseguite sin dal 2008 che per una storia iper-contorta di allocazione di budget, riduzione e storno del medesimo, stato confusionale di alcuni decision makers erano state svolte senza la copertura di un ordine. L’obiettivo era quindi di far emettere l’ordine da parte del Cliente, registrarlo  e immediatamente richiedere la firma per approvazione delle attività pregresse in modo da fatturare subito dopo.

Cosa è andato storto in questo caso?

Come si sia potuti arrivare al 30 Marzo 2009 senza avere l’emissione di un ordine che mancava dal 2008 è cosa che trascende le mie facoltà intellettive.La cosa divertente qui è che giustappunto il 30 Marzo l’ordine siamo riusciti ad ottenerlo, dopo averlo quasi prelevato fisicamente all’ufficio acquisti. Ci restava quindi un giorno per poter conseguire le firme sulle attività svolte. Peccato che la persona preposta alla firma, il 31 Marzo era irreperibile, in trasferta da qualche parte in Liguria. Anche in questa situazione abbiamo deciso scientemente di svolgere un discreto volume di attività (80K circa) senza avere l’ordine da parte del cliente, pur contando di ottenerlo prima della fine del trimestre. Il fatto che alla fine non si arrivato ha avuto quindi un impatto piuttosto pesante e imprevisto sul forecast.

Imprevisto.

Se l’ordine fosse arrivato due mesi prima, un mese prima, due settimane prima della fine del trimestre, la mancata fatturazione si sarebbe potuta considerare uno spiacevole imprevisto. Ma se ci trastulliamo con il dannato ordine fino a quasi l’ultimo giorno utile concedendo solo 8 ore lavorative per le restanti formalità necessarie a fatturare, un esito positivo della vicenda avrebbe quasi del miracoloso.

Insomma: in entrambe le situazioni che hanno fatto la differenza tra il successo e il tracollo di questo trimestre, direi che poco ha a che fare con l’inaspettato o l’accidentale e molto con la decisione strategica di consentire, dato il tipo di relazione che vogliamo mantenere e sviluppare con il Cliente, l’esecuzione di attività di consulenza sapendo che la fatturazione sarebbe stata a rischio. Decisione che come ho detto posso anche sottoscrivere.

Ecco perché il giorno 31 Marzo 2009 poco prima di mezzogiorno, quando tre dei quattro responsabili del business europeo si ritrovano in una stanza a discutere su come presentare la situazione al Senior Management e uno dei tre se ne esce con una roba del tipo: “Dirò che non sono arrivati alcuni sign-off dei progetti”, mi incazzo.

Alcuni sign-off?!

Perché cercare ancora di nascondere la polvere sotto il tappeto? Perché non spiegare che questi risultati derivano da decisioni dolorose ma consapevoli che non pregiudicano il nostro livello di controllo del business?

Una posizione del genere la sottoscrivo. La solita scusa del bambino che ha fatto la marachella, no.

Pensavo che questi retaggi dell’era R.C. ce li fossimo lasciati alle spalle e invece vedo che c’è ancora il complesso della stanza dei bottoni e della solitudine della leadership.

Probabilmente è la nostra Azienda che non ha mai instillato nei manager una cultura della collegialità e delle decisioni condivise.

La vera notizia in realtà è un’altra: il silenzio assordante del mio capo che a quanto pare è poco interessato a temi così aridi come i risultati finanziari.

Blog Chart #3

Posted in Blog Charts, Musica by pigreco314 on 1 aprile, 2009
a r t i s t a  -  b r a n o  -  a l b u m

Loquat – Swingset Chain –  It’s Yours To Keep (2004): una delle più belle canzoni che mi sia capitato di ascoltare di recente

Pelle Carlberg – Riverbank – Everything. Now! (2005)

Lucky Soul – One Kiss Don’t Make A Summer -The Great Unwanted (2007)

Voxtrot – Long Haul – Raised By The Wolves (2005)

Airliner – Everything That’s You – The Last Days Of August (2002)