Miercuri, 30 iulie 2008

Sfântul Graal - Dezvoltarea aplicațiilor fără dezvoltatori

Dacă ați ajuns până aici, vă pot spune că titlul este limba-în-obraz. Fără aruncări de lucruri asupra mea sau dezabonare (reducându-mi astfel cititorii în jumătate).

hurwitz

De-a lungul carierei mele, am văzut încercări pe diverse proiecte pentru a elimina necesitatea implicării continue a dezvoltatorilor în întreținerea sistemului. Argumentul este cam așa: Dacă am putea construi un motor flexibil de reguli de afaceri, nu ar trebui să apelăm dezvoltatorii de fiecare dată când trebuie să ne actualizăm FILL IN THE BLANK.

Nu mă înțelege greșit. există cu siguranță un timp și un loc pentru configurabilitatea aplicației. Doar că proprietarii de afaceri (solicitați de dezvoltatorii care caută o provocare bună) tind să extindă în exces conceptul. De exemplu, acestea pot încuraja crearea unui nou micro-limbaj pentru definirea regulilor de stabilire a prețurilor. Ceva asemănător cu:

DACĂ ($ PRET $> 100) $ PRET $ * .90 -> $ PRICE $ ALTE $ $ PRET $

Având în vedere că eu personal îi cunosc pe ambele persoane care îmi citesc blogul, știu că ați putea implementa analizorul pentru a aplica această regulă de afaceri. De ce nu? Acum, proprietarii afacerii mele pot controla complet regulile lor de preț! Nu vorbim doar despre câteva reguli consacrate. Nu, mă refer la puterea autonomă, neînfrânată, stăpânul propriului univers!

Dar există câteva capturi. Ce se întâmplă atunci când proprietarului afacerii mele îi lipsește o paranteză închisă? Ei bine, a revenit la planșă pentru a scrie un verificator de sintaxă ușor de utilizat (alias compilator). Dar apoi uită simbolul pentru costul producătorului și se plâng (care este, desigur, $ MFG_COST $). Ei bine, probabil că este timpul pentru documentare (specificații de limbă) și macro-constructor (IDE). Următoarea reclamație pe care o primiți este „Regulile mele de stabilire a prețurilor devin foarte greu de îmbunătățit fără a le încurca”. Ei bine, de data aceasta (din nou, pentru că știu cine sunt cititorii mei), îți dai seama că va trebui să implementezi un cadru de testare unitară și să-ți educi proprietarii de afaceri cu privire la dezvoltarea testată.

Până acum, însă, concertul a început. Nu știți cum să implementați un cadru de testare unitară pentru noua limbă, POOP (Pricing Open Operation Protocol). Cu toate acestea, acum ați petrecut 20% din carieră dezvoltându-l, compilatorul, specificațiile lingvistice și IDE-ul său. Sunteți foarte investiți - nu este momentul să abandonați POOP acum!

Tu forge pe. Începeți să strângeți cerințele de stabilire a prețurilor de la proprietarul afacerii dvs. (dacă ați putea doar să programați toată ziua), să le implementați și să le demonstrați pentru acceptare. Doar că tu ești viața este mai grea decât înainte. Obișnuiai să ai un limbaj puternic, expresiv (C #), documentație completă (MSDN), instrumente de dezvoltare whiz-bang (Visual Studio & Resharper) și cadru de testare a unității (NUnit). Acum tocmai ai POOP.