Què és una «software factory» i per què una empresa de quinze persones no n'hauria de comprar cap
«Busquem una software factory.» Sento la frase unes quantes vegades l'any, de compradors d'Espanya i de Llatinoamèrica, i abans de començar la conversa ja em diu dues coses: que han comprat desenvolupament externalitzat abans, i que el va comprar el departament de compres. Perquè una fàbrica és el que demanes quan penses en el programari com a unitats lliurades contra una especificació, i és lògic pensar-ho així si l'últim proveïdor t'ho va vendre d'aquesta manera.
Vull prendre'm la frase seriosament, perquè té al darrere una història i un model reals, i després explicar per què aquest model no encaixa amb l'empresa que més sovint me'l demana.
L'expressió té cinquanta anys i mai no es va pensar per a startups
«Software factory» no és cap invent de màrqueting. Ve dels anys setanta i vuitanta, quan les grans electròniques japoneses —Hitachi, Toshiba, NEC, Fujitsu— van organitzar la producció de programari a imatge de les seves plantes industrials: processos estandarditzats, components reutilitzables, productivitat mesurada i milers d'enginyers sobre sistemes de vida llarga. Michael Cusumano ho va documentar a Japan's Software Factories (1991), i la idea va viatjar: als contractistes de defensa nord-americans, als models de maduresa CMM i, al final, a la indústria de l'outsourcing, on «fàbrica» va passar a voler dir una gran organització de lliurament que converteix especificacions en codi a un cost per unitat previsible.
A Espanya i a Llatinoamèrica el terme va arrelar més que enlloc. Fábrica de software és com els grans integradors anomenen els seus centres de lliurament offshore i nearshore, i és com els compren les corporacions: contracte marc, tarifa per seniority, procés de peticions de canvi i acord de nivell de servei sobre defectes. El model de fàbrica optimitza la previsibilitat i el volum al llarg de molts projectes, a costa del criteri en cadascun. No és cap defecte. És el que necessita un banc amb quaranta projectes en paral·lel.
Què ven una fàbrica i què no ven
Sense la marca, una software factory ven quatre coses:
- Capacitat sota demanda: desenes o centenars d'enginyers que es poden assignar al teu projecte i reassignar quan s'acaba.
- Un procés repetible: entren requisits, surten estimacions, es lliura contra un pla i els defectes es fan seguir contra un SLA.
- Cost previsible: una tarifa, sovint barrejada entre seniorities, i preu tancat per a la feina ben especificada.
- Traspàs del risc organitzatiu: un contracte, un responsable de compte, un sol coll a estrènyer.
El que no ven, i no pot vendre a aquesta escala, és el que una empresa petita més necessita: algú sènior que decideixi què construir i respongui que la decisió sigui l'encertada. Una fàbrica executa una especificació. Quan l'especificació és errònia —i amb dues a quinze persones l'especificació sempre és en part errònia, perquè l'empresa encara està descobrint què és—, el procés de la fàbrica lliura a temps el que no tocava i després factura una petició de canvi per arreglar-ho. La tarifa barrejada ho empitjora: l'enginyer que t'hauria pogut dir la primera setmana que l'especificació estava malament és el sènior, i una tarifa barrejada és la manera de no pagar-lo.
On la fàbrica és la compra encertada
Reconeixeré al model el que li toca, perquè l'objecció més forta a aquest article és «tu vens squads, és clar que no t'agraden les fàbriques». Tres casos en què la fàbrica és l'opció correcta:
- Volum amb una especificació estable. Migrar quatre-centes pantalles d'un framework a un altre. Mantenir un sistema de back-office regulat amb un ritme de canvi conegut. Feina en què el criteri ja s'ha exercit i el que queda és execució.
- Compra dirigida per procurement. Una corporació amb normes de compra que exigeixen proveïdor homologat, SLA i tarifa barrejada no pot contractar un squad de cinc persones per bo que sigui.
- Molts projectes petits alhora. A una empresa amb vint eines internes en marxa li rendeix més un procés comú per a totes que l'excel·lència en una de sola.
Si ets un d'aquests, compra la fàbrica, i compra-la a un dels grans integradors que fa dècades que treballen amb el model. Per això existeixen.
Per què una empresa de quinze persones obté pitjor producte d'una fàbrica que de cinc persones
Ara l'empresa que m'ho demana de debò. De dues a quinze persones, un fundador o dos, un producte amb els primers clients i una idea de la següent versió encertada més o menys en un seixanta per cent. Això és el que el model de fàbrica li fa a aquesta empresa, en l'ordre en què passa:
La fase d'especificació dura sis setmanes i produeix un document que el fundador signa sense entendre'l del tot, perquè el document és un artefacte de la fàbrica, no seu. Els enginyers assignats són els que hi ha disponibles, que amb tarifa barrejada vol dir sobretot perfils intermedis, més un «arquitecte» sènior que apareix al comitè de seguiment. El primer lliurament coincideix amb el document i no amb el mercat, perquè el mercat s'ha mogut durant aquelles sis setmanes i ningú del costat del lliurament tenia autoritat per dir-ho. Comencen les peticions de canvi. Al sisè mes l'empresa ha pagat dos productes i en té un: el del document.
L'alternativa no és «contractar en plantilla», que amb quinze persones és lent i car. És un equip sènior petit —quatre o cinc persones amb un Tech Lead que respon de l'arquitectura— treballant dins del repositori de l'empresa amb retainer mensual, amb el fundador a la daily i una demo cada dues setmanes. Aquest equip costa més per hora que una tarifa barrejada de fàbrica i menys al mes que la fàbrica, perquè necessita menys hores per construir el que toca. I, sobretot, et pot dir la segona setmana que l'especificació està malament, i cobra per fer-ho. És el model que dirigeixo, i vaig deixar el procés per escrit perquè es pugui comprovar en comptes de creure.
Com saber quina de les dues t'estan venent
Els proveïdors a Espanya ja fan servir «software factory», «squad», «equip dedicat» i «partner» com a sinònims, de manera que l'etiqueta no et diu res. Quatre preguntes sí:
- «Qui, del vostre costat, em pot dir que la meva especificació està malament, i és al projecte cada dia?» Una fàbrica respon amb un rol en un comitè. Un squad respon amb un nom i un usuari de Slack.
- «Quina és la barreja de seniority de les persones assignades de debò?» La tarifa barrejada l'amaga. Demana els noms i la seva trajectòria en sistemes com el teu.
- «Què passa si l'abast canvia la tercera setmana?» Una petició de canvi amb preu és la resposta de fàbrica. Un backlog reprioritzat a la següent planificació és la resposta de squad. Totes dues són legítimes; només una encaixa amb una empresa que encara descobreix el seu producte.
- «Com s'acaba el contracte?» Els contractes marc tenen clàusules de sortida mesurades en trimestres. Un retainer amb preavís de 30 dies s'acaba quan deixa de ser útil.
La versió curta
Una software factory és un model industrial de fa cinquanta anys per produir programari en volum contra una especificació estable, i funciona per a les corporacions per a les quals es va dissenyar. Una empresa de dues a quinze persones no té una especificació estable; té una hipòtesi, i el que necessita són unes quantes persones sènior capaces de canviar la hipòtesi mentre la construeixen. Això és un taller, no una fàbrica. Compra la que correspongui a la mida de l'aposta que estàs fent.
Si estàs intentant esbrinar quina de les dues necessites, t'ho diem en una trucada de 30 minuts, també quan la resposta sigui la fàbrica.


