Gli strumenti del 2016

In passato ho scritto del diario di lavoro che tengo oramai da due anni e mezzo. Mi è venuta la curiosità di fare un'analisi di quanto ho scritto con un software di text processing per capire su che cosa ho lavorato nel 2016 e come si sta modificando il mio ruolo.

Per il text processing non mi sono dato grandi obiettivi, solo avere la lista delle parole più utilizzate. Con l'aiuto di textblob ho fatto un piccolo script per stampare le parole in ordine di occorrenza:

from textblob import TextBlob

with open('/tmp/2016.md') as f:  
  text = unicode(f.read(), 'utf-8')
blob = TextBlob(text)  
wc = blob.word_counts  
iwc = {}  
for w, c in wc.items():  
  if c in iwc:
    iwc[c].append(w)
  else:
    iwc[c] = [w]
print len(blob.words)  
for i in range(1,1000):  
  print i, ", ".join(iwc.get(i, []))

Sono quindi andato a fare un po' di pulizia manuale per togliere le parole di uso comune e lasciare solamente software, servizi e termini informatici. Ho escluso i software sviluppati internamente dall'azienda per cui lavoro o quelli sviluppati da esterni esclusivamente per noi. Ho escluso i fornitori, tranne nei casi in cui il fornitore si identifica con il servizio che offre. Ho escluso strumenti informatici di uso comune, come l'email. Ho tenuto gli aspetti tecnologici ma ho tolto i termini relativi al dominio applicativo (come pubblicità o pubbliredazionale). Ho tolto le parole che probabilmente fanno parte di un comando (come checkout), tranne quando si tratta anche del nome del software (git). Ho tenuto pratiche e concetti informatici. Infine ho escluso quelli che hanno una sola occorrenza.

Ecco la lista, con a fianco il numero di occorrenze, estratta da un totale di 42555 parole scritte:

Nel 2015 invece queste erano le parole più usate su 35693 parole totali:

  • userspike 153
  • script 70
  • polopoly 67
  • documentazione 62
  • database 56
  • feed 47
  • celery 42
  • template 41
  • django 40
  • wiki 39

Ed ecco la variazione dal 2015 al 2016 delle parole più usate nel 2015:

  • polopoly 67 -> 125
  • deis 0 -> 123
  • docker 0 -> 109
  • deploy 33 -> 104
  • api 15 -> 87
  • convox 0 -> 76
  • cache 6 -> 57
  • endpoint 1 -> 55
  • mockserver 0 -> 50
  • mobile 18 -> 49

Altre parole del 2015 scomparse nel 2016: magento, mongo, angular, asana, fabric, balsamiq, camel, flask.

In retrospettiva, la cosa più notevole è l'attenzione dedicata al mondo PaaS. Il nuovo sito adotta infatti una strutta a microservices con API costruite intorno al CMS, Polopoly. I servizi sono inseriti in container Docker su AWS, utilizzando Convox come piattaforma di gestione dei rack Amazon. Prima di scegliere Convox abbiamo studiato altre soluzioni, in particolare Deis, ma siamo rimasti convinti dall'approccio "integration over invention" e dal supporto di Convox.

Come conseguenza della svolta microservices, l'attività di sviluppo si è spostata dal classico stack basato su Django con deploy tramite Fabric, a framework più leggeri e orientati all'I/O, come aiohttp basato su asyncio di python3. Parallelamente, al grande lavoro fatto con Celery nel 2015 si sostituisce il semplicissimo rq.

Lato frontend, per non farsi mancare nulla, abbiamo i primi tentativi con AMP e un non completo impiego di SPF di youtube. Comincia nel 2016 anche la mia esperienza on call. Infine, a supportare il nostro scrum, Pivotal Tracker prende il posto di Asana.


Cover by Darlene Hildebrandt, some rights reserved