Try Harder

I have found this little gem in PragPub, May 2011:

A depressing theme with many of today’s software shops is the need to only make two kinds of hires. The first is a developer. After all, a developer codes, and that makes money! The second hire is an MBA-style manager. This manager is an HR-type who handles budgets, spreadsheets, and politics.

Is Your Software Project in the Trenches? (Image via Wikipedia)

Then someone like me comes along. I’ve got a development background and I’ve managed as well, but today I don’t do either. Instead I work with a team to see where the problems are. I sit with them and look for the areas that have become blind spots, and then find ways to solve those problems. I’ve saved large organizations substantial amounts of money by improving how their teams work. But I’ve usually done this by hiring in as a developer or manager. It’s a rare company that hires someone to improve their process. They’d much rather sit in the trenches and inspire their soldiers to leap out in the face of concertina wire and machine guns, sure that with the right mix of courage and moral fiber, this time they’ll finally ship that product!

As we look around, this attitude seems so… stupid. They seem to think that by trying harder they’ll succeed. How many of our favorite sports teams don’t have coaches, but ask their professional athletes to try harder?

From “Is Your Software Project in the Trenches?” by Jared Richardson

I link della settimana

Best Quote

Il mondo è un posto pericoloso, non a causa di chi compie azioni malvagie ma per quelli che osservano senza dire nulla.

Albert Einstein

Privacy

Python

Sicurezza

Ruby

Web

Varie

Agile

Algoritmi

Libri

I link della settimana

Best Quote

  • @caludio: “Undocumented and overengineered code have the same evil root :(

Python

  • Read the docs – un servizio che raccoglie documentazione in reStructuredText (un formato popolare nel mondo Python), rendendola facilmente cercabile. Si integra con Mercurial, Git, Subversion e Bazaar per aggiornare la documentazione al commit.
  • dana – Distributed (Asynchronous) Numerical Adaptive computing framework. Un framework, basato su numpy e scipy, per costruire simulazioni numeriche distribuite. Le applicazioni princinpali sono nel campo delle neuroscienze computazionali e nelle reti neurali artificiali.
  • ladon – uno framework per rendere metodi python accessibili in vari protocolli, più che altro orientati al web. Può essere utile per implementare web services multiprotocollo.
  • Python 3 Wall of Shame – lista di progetti da PyPy che supportano o meno la nuova versione del linguaggio. I creatori di Python hanno una roadmap che prevede l’adozione della nuova versione in cinque anni, ora siamo a metà. Non siamo messi male come appare da questa pagina. Molti progetti, come ad esempio Django, supporteranno Python 3 già dai prossimi rilasci previsti quest’anno.
  • flake8 – Pyflakes + pep8 insieme. Un code checker per python.
  • zfecerasure codec in Python, Haskell e C. Può servire in tutti i casi in cui si vuole costruire un sistema ridondante, come il RAID-5, che sia in grado di resistere alla perdita di parte dei dati.

Agile

  • Riflessioni su 10 anni di agile. Si spera che si supereranno le etichette ed i particolarismi, inglobando l’agile nella disciplina informatica fino a smetterne di parlarne un po’ come è successo con la programmazione ad oggetti. Non più come una cosa esotica, ma come humus su cui far crescere qualcosa di nuovo.

Javascript

Conferenze e Talks

  • Voglio assistere a REST in peace al Codemotion 2011. La conferenza si annuncia enorme, con sei tracks contemporanee. Sarebbe stato meglio spezzarla in più giorni.
  • (auto-promozione) Il 16 febbraio, farò una breve introduzione a GIT, alle 19:00 in MedMedia, via Salvemini 4, Jesi (AN). E’ un evento dell’XPUG marche, ma l’ingresso è libero.

NoSQL

  • CouchOne e Membase si fondono. Sono rispettivamente lo sponsor di CouchDB e quello di Memcached. Non sapevo che esistesse Mobile Couchbase per iOS, ne potrei far proprio buon uso.
  • Tre modi diversi di usare Riak, un database NoSQL.
  • Google rilascia un paper su Megastore, il database di AppEngine. Analisi interessanti qui e qui. Interessante l’uso di un algoritmo basato su Paxos per il raggiungimento del consenso ed il fatto che possa essere configurato in modo più o meno affidabile, un po’ come si può fare anche con Cassandra.
  • Quando usare NoSQL? Qualcuno sta compilando una lista di casi d’uso.

Altro

Educazione

Dopo il Campo Scuola sui Metodi Agili, Fabriano 2010

Torno da tre giorni di campo scuola sui metodi agili, organizzato dall’XPUG delle Marche.

Luogo. Ci siamo incontrati alla Casa di Campagna, un agriturismo immerso nelle splendide campagne marchigiane a cinque minuti da Fabriano (AN). Il posto è molto bello, la cucina poi è fantastica. L’unica pecca è stata la connessione ad Internet che andava a singhiozzo, che se da un lato ci ha reso più complesso affrontare alcune attività dall’altro ci ha spinto ad immergerci completamente in ciò che stavamo facendo. Il primo giorno a cena durante una portata e l’altra, da veri nerd, tutti stavano spippolando sui rispettivi cellulari. Il secondo giorno, ormai assorbiti nello spirito agreste, nessuno li ha toccati.

La Casa in Campagna

Il Rosso Piceno concilia l'apprendimento

Coach e partecipanti. Non è facile gestire un corso con dodici persone di diversa estrazione e differenti competenze, dalla consulente freelance di User Experience (UX) al programmatore di una grande azienda. Jacopo se l’è cavata egregiamente, dimostrando grandi doti di oratore e di facilitatore.

I partecipanti

Il vero coach di questi tre giorni in compagnia di un passante con un buffo cappello

L'esperta di UX studia la user experience dell'agriturismo

Organizzazione. Abbiamo suddiviso il lavoro in sessioni di un’ora e mezza, separate da una pausa di mezz’ora. Per le attività pratiche, ci siamo affidati al timeboxing con la tecnica del pomodoro.

Teoria

Pratica

  • Primo giorno: arrivo e questioni logistiche, user stories, planning game.
  • Secondo giorno: release planning, iteration planning, sviluppo e pair programming, total quality.
  • Terzo giorno: code dojo su TDD e refactoring, come presentare preventivi per progetti agili, radiatori d’informazione, retrospettiva.