ABONAMENTE VIDEO REDACȚIA
RO
EN
Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 20
Abonament PDF

Software Craftsmanship și Lean Startup

Alexandru Bolboacă
Agile Coach and Trainer, with a focus on technical practices
@Mozaic Works



MANAGEMENT

În lumea startup-urilor, mișcarea Lean Startup a fost o revoluție deși a pornit de la o observație simplă. Modelul standard de creare a unui startup era până de curând "Build, Measure, Learn" adică:

Problema acestui model este că la momentul la care produsul poate trece testul pieței, el a fost deja construit, deci s-au investit bani și efort în el. Din punct de vedere tehnic, se întâmplă adesea ca produsul să fi fost grăbit, programatorii să lucreze sub presiune și rezultatul să fie un cod greu de modificat și plin de bug-uri.

Steve Blank și Eric Ries au venit cu ideea de a inversa acest ciclu și de a folosi "Learn, Measure, Build", adică:

Experimentul poate include crearea unui prototip funcțional al unei aplicații, dar nu este neapărat necesar. Arta constă în a identifica minimul de investiție pentru a putea valida ipoteza. Experimentele cele mai întâlnite, în special pentru produsele online, sunt de tip "A/B testing": două posibilități sunt puse în competiție și "votate" de utilizatorii potențiali. Cea mai populară este de obicei aleasă ca fiind câștigătoare.

La nivel tehnic, Lean Startup presupune o agilitate foarte mare determinată de lucrul într-un mediu necunoscut și în curs de descoperire. Dacă în modelul standard de dezvoltare de produs presupunem că știm care este viziunea, care sunt funcționalitățile și care sunt următoarele cerințe, în modelul lean startupviziunea se poate modifica în funcție de piață (prin pivotare), funcționalitățile sunt descoperite pe parcurs, iar cerințele următoare pot fi extrem de surprinzătoare.

Un exemplu clasic este Flickr, serviciul de stocare de imagini care a fost cumpărat de yahoo. Inițial, viziunea produsului era de a face un joc numit "Game Neverending" în care adăugarea de fotografii era una dintre funcționalități. După un timp, echipa și-a dat seama că jocul nu era foarte bine primit, dar serviciul de stocare de poze era foarte interesant pentru utilizatori. Ca urmare, au decis să se concentreze pe flickr.com și să oprească dezvoltarea jocului.

Literatura de Lean Startup menționează doar în treacăt aspectele tehnice ale metodei. Motivele sunt două: revoluția trebuia făcută în primul rând la nivel business și presupunerea autorilor a fost că programatorii își vor da seama ce practici tehnice trebuie să folosească.

Imaginați-vă însă contextul în care lucrează multe din startup-urile online de azi. Multe dintre ele fac deployment al unei versiuni noi în producție de sute de ori pe zi. Fiecare deployment este fie un experiment de tip A/B testing, fie implementarea unei funcționalități deja validate.

Acest ritm de dezvoltare necesită abilități de programare precum:

În plus, aceste echipe folosesc fluxuri de lucru clare care includ adesea: monitorizare, revenirea la versiuni care funcționează corect în caz de bug-uri majore, porți de validare înainte de deployment.

Dar poate nu este nevoie de sute de puneri în producție pe zi. Poate ajunge ca ciclul de feed-back să fie de o săptămână sau câteva zile. Chiar și atunci, abilitățile necesare pentru programatorii care lucrează la produs sunt aceleași. Singura diferență este că își pot împărți munca în incremente mai mari.

Dacă legătura cu Software Craftsmanship nu este clară încă, o vom explora în continuare. După cum spuneam în articolul despre Software Craftsmanship, mișcarea a apărut pentru a permite reducerea costului de schimbare al codului prin aplicarea anumitor practici cunoscute și prin descoperirea altor practici noi. Câteva dintre practicile pe care le cunoaștem acum sunt:

Întrebarea care se pune este când merită investit în aceste practici într-un startup și când nu. Pentru cei care urmează modelul lean startup, răspunsul ar trebui să fie simplu: atât timp cât suntem la început și încercăm să dezvoltăm clienții prin experimente, nu are rost să investim mai mult decât este necesar. Cele mai bune experimente sunt cele care nu necesită cod scris. Dacă totuși trebuie scris cod, este important să îl scriem cât mai repede cu putință, chiar dacă pot scăpa greșeli.

Imediat ce o funcționalitate a fost validată, codul trebuie scris, sau rescris, astfel încât să poată fi ușor de modificat. Altfel, riscăm să nu putem beneficia îndeajuns de rapid de pe urma lucrurilor pe care le aflăm prin experimente.

Trebuie să menționăm că programatorii care au exersat îndeajuns aceste tehnici pot termina mai repede implementarea dacă le folosesc. Acesta este de fapt idealul Software Craftsmanship: a-ți dezvolta atât de bine abilitățile încât să devină modul implicit și cel mai rapid de lucru, mai ales atunci când viteza de implementare este extrem de importantă.

Concluzie

Lean Startup se bazează pe artizani software (craftsman). Experimentele cele mai bune sunt cele care nu necesită cod. Uneori, este nevoie și de implementarea unor experimente. Un artizan software va fi capabil să le implementeze rapid și fără a introduce probleme.

Dacă în faza de descoperire putem trăi și fără a aplica practici precum TDD, testare automată sau refactoring, faza de implementare are mare nevoie de ele pentru a permite punerea cât mai rapidă în producție a functionalităților validate de experimente. Cu cât sunt puse mai rapid în producție cu atât crește probabilitatea de a avea clienți plătitori, asigurând supraviețuirea startup-ului și crescându-i șansele de succes.

LANSAREA NUMĂRULUI 149

Marți, 26 Octombrie, ora 18:00

sediul Cognizant

Facebook Meetup StreamEvent YouTube

NUMĂRUL 147 - Automotive

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects