Os entraves à implantação do modelo Agile

Os entraves à implantação do modelo Agile

Muitas empre­sas, com o intu­ito de se tornarem mais adap­ta­ti­vas, apres­saram-se a imple­men­tar o desen­volvi­men­to de soft­ware Agile, porém grande parte delas acabou per­den­do agili­dade dev­i­do à for­ma de con­dução desse proces­so. O gan­ho de agili­dade ocor­reu ape­nas em teo­ria, já que, em muitos casos, o pro­ced­i­men­to ado­ta­do afe­ta a moti­vação e a pro­du­tivi­dade da engen­haria de soft­ware.

Desenvolvimento de software Agile

Os frame­works de desen­volvi­men­to de soft­ware adap­ta­ti­vo, tais como o mod­e­lo Agile, já exis­tem há muito tem­po em várias imple­men­tações. No entan­to, a maio­r­ia deles gira em torno de dois con­ceitos cen­trais: a elab­o­ração de hipóte­ses (p. ex., o propósi­to de deter­mi­na­da fun­cional­i­dade), e o tra­bal­ho colab­o­ra­ti­vo de todas as áreas de espe­cial­iza­ção na real­iza­ção de práti­cas, sem­pre com o intu­ito de pro­por­cionar o apren­diza­do sem tril­har cam­in­hos que acabam por mostrar-se equiv­o­ca­dos.

Quan­do surgiu o mod­e­lo Agile, em 2001, estru­tu­raram-se qua­tro princí­pios bási­cos des­ti­na­dos a poten­cializar o desen­volvi­men­to de soft­ware e aumen­tar a moti­vação dos gestores de desen­volvi­men­to e pro­dução:

  1. Pes­soas e inter­ações aci­ma de proces­sos e fer­ra­men­tas
  2. A fun­cional­i­dade do soft­ware aci­ma da ampli­tude da doc­u­men­tação
  3. A colab­o­ração com o cliente aci­ma das nego­ci­ações do con­tra­to
  4. A respos­ta às mudanças aci­ma da observân­cia do plane­ja­men­to

Durante nos­sa pesquisa sobre moti­vação, nos últi­mos três anos, anal­isamos as ativi­dades de desen­volve­dores de mais de 500 empre­sas por meio de uma com­bi­nação de abor­da­gens baseadas tan­to em lev­an­ta­men­tos quan­to em exper­i­men­tos. Con­stata­mos uma enorme dis­crepân­cia entre a práti­ca e os princí­pios men­ciona­dos.

Por exem­p­lo, no dia a dia, o tra­bal­ho está volta­do a proces­sos e fer­ra­men­tas, em vez de pes­soas e inter­ações. Em uma grande empre­sa da lista For­tune 100, o chefe de pro­du­tos dig­i­tais rev­el­ou: “não temos per­mis­são de ques­tionar o proces­so Agile”. Já em out­ra, que figu­ra na For­tune 500, os ger­entes e téc­ni­cos de pro­du­tos só se comu­ni­cam por meio de fer­ra­men­tas, uti­lizadas sobre­tu­do para a trans­mis­são de ordens de super­vi­sores a sub­or­di­na­dos.

Da mes­ma for­ma, cos­tu­ma-se priv­i­le­giar a doc­u­men­tação em vez da fun­cional­i­dade do soft­ware. Em uma grande empre­sa de tec­nolo­gia, a equipe de pro­du­tos des­ti­na­va muito tem­po, logo de antemão, para escr­ev­er pequenos req­ui­si­tos (denom­i­na­dos “relatos do usuário”), que eram orde­na­dos em uma sequên­cia de tare­fas para o próx­i­mo desen­volve­dor disponív­el. Os entrav­es à con­tinuidade do tra­bal­ho atin­gi­ram tal pro­porção que o proces­so acabou por tornar-se mais uma das peque­nas eta­pas de um “mod­e­lo em cas­ca­ta”, no qual as tare­fas pas­sam do depar­ta­men­to de pro­du­tos para os design­ers e, por fim, para o desen­volvi­men­to. A final­i­dade do Agile era jus­ta­mente a elim­i­nação de tal mod­e­lo. Assim sendo, não cau­sou sur­pre­sa a afir­mação do dire­tor téc­ni­co da própria empre­sa de que “meus desen­volve­dores se sen­tem como coz­in­heiros de lan­chonete”.

Já a pri­or­i­dade da “respos­ta às mudanças em relação à observân­cia do plane­ja­men­to” é, com fre­quên­cia, um con­ceito enten­di­do com uma recomen­dação de sim­ples­mente “não seguir uma pro­gra­mação prévia”. Por exem­p­lo, em uma empre­sa de tec­nolo­gia em ráp­i­da ascen­são, as equipes envolvi­das com o mod­e­lo Agile não bus­caram com­preen­der a estraté­gia mais ampla da com­pan­hia, de for­ma que as iter­ações acabaram focadas em fun­cional­i­dades de baixo val­or agre­ga­do ou sem importân­cia. Sem um plano, não será pos­sív­el nem pri­orizar as tare­fas, nem nelas inve­stir de maneira respon­sáv­el. Com base no princí­pio em questão, os desen­volve­dores chegaram até mes­mo a pen­sar que não deve haver time­box­es e obje­tivos especí­fi­cos a alcançar.

Se o emprego incor­re­to dos princí­pios aci­ma dis­crim­i­na­dos acabasse geran­do uma mel­ho­ra da moti­vação e desem­pen­ho, seria até jus­ti­ficáv­el. Entre­tan­to, na práti­ca, ver­i­fi­camos que ocorre o con­trário. O mod­e­lo Agile, se apli­ca­do con­forme se descreveu, diminui o empen­ho em ger­al dos desen­volve­dores, que, sem poderem exper­i­men­tar, geren­ciar o próprio tra­bal­ho e se conec­tar com o cliente, per­dem grande parte da per­cepção do aspec­to lúdi­co e do propósi­to de sua ativi­dade, bem como do poten­cial. Pelo con­trário, sen­tem a pressão emo­cional ou econômi­ca pelo suces­so, ou uma inér­cia, por con­seguinte, deix­am de adap­tar-se, de apren­der, e de dar o mel­hor de si ao tra­bal­ho.

Por exem­p­lo, um de nos­sos par­ceiros investi­dores falou-nos de uma empre­sa de desen­volvi­men­to de jogos eletrôni­cos que, con­tra a opinião de todos os seus desen­volve­dores de que deter­mi­na­do pro­du­to não ger­a­va inter­esse, deu con­tinuidade ao pro­je­to por um ano, só então dan­do con­ta de que havia des­perdiça­do tem­po e din­heiro.

Os proces­sos Agile per­dem a eficá­cia sem­pre que as empre­sas, ao alme­jar um alto rendi­men­to, tor­nam-se ou táti­cas demais (com mui­ta pre­ocu­pação com proces­sos e microgeren­ci­a­men­to) ou adap­ta­ti­vas em exces­so (sem foco em metas de lon­go pra­zo, crono­gra­mas ou colab­o­ração mul­ti­fun­cional).

A solução é o equi­líbrio entre o desem­pen­ho táti­co e o adap­ta­ti­vo. Tan­to para desen­volve­dores quan­to para ger­entes de pro­du­tos, seguem algu­mas sug­estões de mudanças com vista a atin­gir esse obje­ti­vo, mel­ho­rar a moti­vação e o desem­pen­ho da equipe de desen­volvi­men­to (ou de qual­quer out­ra área).

  1. O desen­volvi­men­to de soft­ware deve ser um proces­so colab­o­ra­ti­vo, nun­ca basea­do na sim­ples trans­fer­ên­cia de tare­fas.

Em vez de uma sequên­cia de eta­pas estanques, em que alguém esta­b­elece um req­ui­si­to (ain­da que de peque­na importân­cia) para out­ro exe­cutá-lo, sem um nortea­men­to estratégi­co bási­co, a equipe real­mente empen­ha­da na bus­ca da agili­dade deve ado­tar um proces­so em que não haja meras “pas­sagens de bastão” (os chama­dos hand­offs), ou seja, em que os dois profis­sion­ais aci­ma men­ciona­dos não atuem de maneira iso­la­da. Assim sendo, o ger­ente de pro­du­tos e os desen­volve­dores (bem como quais­quer out­ros envolvi­dos) são par­ceiros colab­o­ra­tivos, do iní­cio ao fim, no pro­je­to de deter­mi­na­da fun­cional­i­dade.

Em primeiro lugar, a equipe, inclu­sive os gestores, delineiam os “desafios” estratégi­cos, na for­ma de per­gun­tas, sem­pre visan­do à ger­ação de mel­hores resul­ta­dos para o cliente. Pode-se diz­er que se tra­ta de uma descrição por­menoriza­da da mis­são da equipe, na for­ma inter­rog­a­ti­va, visan­do a des­en­cadear uma reflexão mais ampla. Os desafios são desen­volvi­dos e reanal­isa­dos pela equipe em con­jun­to, que inclui clientes e investi­dores, sendo que qual­quer mem­bro dela (bem como de out­ra) poderá dar ideias com relação a cada um dos pon­tos definidos, sem­pre que quis­er.

Por exem­p­lo, em um ban­co, um dos desafios era: “como podemos aju­dar o cliente a prepara-se para even­tu­ais choques finan­ceiros?”. Out­ro era: “como tornar mais agradáv­el e menos ente­di­ante para o cliente a manutenção de hábitos finan­ceiros pru­dentes?”. A par­tir daí, sur­gi­ram dezenas de ideias vin­das ofer­e­ci­das por muitas pes­soas com per­fis bem dis­tin­tos.

Com isso, em vez de alguém elab­o­rar os req­ui­si­tos a serem cumpri­dos por out­ro, a equipe desen­volve e amadurece uma ideia de for­ma colab­o­ra­ti­va, do esboço à for­mu­lação de con­clusões sól­i­das.

  1. A equipe deve ter, como parâmetro de resul­ta­dos, a práti­ca basea­da em critérios mín­i­mos de via­bil­i­dade

Para muitas equipes, perde-se tem­po com o exces­so de ade­quações. Para que isso não acon­teça, devem-se não só for­mu­lar as ideias para deter­mi­na­do desafio estratégi­co, mas tam­bém testá-las na práti­ca, por meio de breves exper­i­men­tos, com o úni­co propósi­to de desco­brir o que pro­duz bons resul­ta­dos para o cliente. Ou seja, deve-se otimizar a bus­car “saber a ver­dade” o mais rápi­do pos­sív­el.

Para evi­tar o tra­bal­ho per­di­do e ampli­ar o dire­ito decisório da equipe, ess­es testes dev­erão ser de cur­ta duração, sem exced­er uma sem­ana, se pos­sív­el.

Oca­sion­al­mente, esse pra­zo exige que se reduza deter­mi­na­da fun­cional­i­dade ao mín­i­mo necessário para pôr à pro­va sua pre­mis­sa menos sól­i­da. Out­ras vezes, nem se chega à cod­i­fi­cação, mas real­iza-se um exper­i­men­to “offline” por meio de pesquisas.

  1. A abor­dagem da equipe deve ser volta­da ao cliente.

O desen­volvi­men­to de soft­ware (mes­mo para uso inter­no) deve, sem a menor som­bra de dúvi­da, cen­trar-se no cliente.

Nesse sen­ti­do, os princí­pios bási­cos são:

  • Os “desafios” sem­pre se definem em ter­mos de impacto para o cliente.
  • As reuniões para res­olução de prob­le­mas sem­pre começam com últi­mas infor­mações a respeito do cliente, e, em muitos casos, os rep­re­sen­tantes da lin­ha de frente par­tic­i­pam dessas tais dis­cussões.
  • Todo exper­i­men­to gira em torno de uma hipótese rela­ciona­da ao cliente. Assim, a equipe tem condições de assumir a respon­s­abil­i­dade quan­to ao resul­ta­do esper­a­do.

Entre­tan­to, é mais impor­tante ain­da que os desen­volve­dores observem com os próprios olhos como o cliente uti­liza o pro­du­to, o que exige que a lin­ha de frente tra­bal­he dire­ta­mente com ess­es profis­sion­ais, para garan­tir que o pro­du­to este­ja geran­do impacto para o usuário.

  1. Devem-se uti­lizar time­boxes para dire­cionar a exper­i­men­tação e evi­tar des­perdí­cios.

Curiosa­mente, o desen­volvi­men­to de soft­ware adap­ta­ti­vo prop­i­cia a uti­liza­ção das time­box com vista a garan­tir o inves­ti­men­to ade­qua­do a cada exper­i­men­to e indicar o nív­el aceitáv­el de qual­i­dade das fun­cional­i­dades. Por out­ro lado, a maio­r­ia dos profis­sion­ais do mod­e­lo Agile evi­ta crono­gra­mas e pra­zos, que podem dar ense­jo a pressões emo­cionais. Para os desen­volve­dores, uma das piores sen­sações é a de ter-se ded­i­ca­do por meses a algo que veio a ser inútil, resul­tan­do nesse sen­ti­men­to (“Decep­cionei todo o mun­do”), além de uma impressão de inér­cia (“Estou fazen­do isso para quê?”).

É por isso que é fun­da­men­tal deixar claro até que pon­to o desen­volve­dor deve seguir em frente sem a certeza de estar na direção cer­ta. Quan­to mais dúvi­das a respeito da hipótese da equipe e maior o risco, menor o espaço de explo­ração de pos­si­bil­i­dades. Nesse sen­ti­do, as time­box­es não rep­re­sen­tam pra­zos, mas lim­ites des­ti­na­dos a ori­en­tar o nív­el de pro­fun­di­dade e a qual­i­dade do exper­i­men­to antes de um teste efe­ti­vo, servin­do como meio de estim­u­lar a moti­vação em ger­al.

  1. A orga­ni­za­ção da equipe deve prop­i­ciar a colab­o­ração

Para garan­tir que o proces­so não ten­ha hand­off e estim­u­lar a colab­o­ração, todas as partes inter­es­sadas dev­erão agir como uma úni­ca equipe mul­ti­fun­cional, tam­bém con­heci­da como pod, ou célu­la, cada uma das quais deve con­tar com a par­tic­i­pação de todos os espe­cial­is­tas necessários para desen­volver um pro­du­to de grande qual­i­dade, inclu­sive dire­tores exec­u­tivos. Por exem­p­lo, pode haver um ger­ente de pro­je­tos, um desen­volve­dor do lado do cliente (front-end), um do lado do servi­dor (back-end), um design­er, um engen­heiro de qual­i­dade, rep­re­sen­tantes do atendi­men­to ao cliente e um dire­tor.

Em muitas empre­sas, há claros sinais da existên­cia de “pseudocélu­las” — equipes que se auto­de­nom­i­nam célu­las mas na ver­dade não tra­bal­ham como dev­e­ri­am, entre os quais:

  • Os espe­cial­is­tas estão alo­ca­dos em equipes difer­entes, mas “alin­hadas”, por exem­p­lo, uma equipe de pro­du­tos tem desen­volve­dores ded­i­ca­dos exclu­si­va­mente aos “cic­los sprint”. Isso não é uma célu­la.
  • Uti­lizam-se recur­sos que impe­dem a colab­o­ração efe­ti­va. Por exem­p­lo, ques­tion­a­da por que havia escol­hi­do as fer­ra­men­tas de soft­ware Agile em questão, uma equipe de desen­volvi­men­to respon­deu: “com elas os exec­u­tivos não poderão envolver-se com tra­bal­ho.” Isso só per­pet­ua um ciclo de descon­fi­ança.
  • As metas das funções desen­volvi­men­to e de pro­du­to não são as mes­mas que as dos níveis hierárquicos mais ele­va­dos. Os exec­u­tivos dessas áreas uti­lizam-se do poder do car­go para que os sub­or­di­na­dos pri­or­izem os obje­tivos da função, em detri­men­to de todos os out­ros, inclu­sive os da própria célu­la. Ess­es con­fli­tos acar­retam desavenças entre as equipes de tra­bal­ho, o que impede coop­er­ação legí­ti­ma.
  • A gestão de tal­en­tos basea­da em proces­sos com forte ênfase na hier­ar­quia, tais como avali­ações de desem­pen­ho, títu­los de car­go, pressão por pro­moções, e sis­temas “ou sobe ou cai fora” (up-or-out) impede a coop­er­ação essen­cial para o bom fun­ciona­men­to das célu­las. Com isso, os mem­bros da equipe ou se com­pro­m­e­tem mais com o chefe do que com o próprio cliente, ou se tor­nam con­cor­rentes. Qual­quer que seja o caso, não fun­cionam como um time.

Pos­to de out­ra for­ma, quan­to mais a empre­sa oper­ar com base em “cer­ca­dos” iso­la­dos uns dos out­ros, mais pes­soas cuidarão das neces­si­dades de seu próprio can­to, em vez de aten­der às da equipe, difi­cul­ta muito a colab­o­ração e o con­sen­so sem ape­los con­stantes aos níveis hierárquicos mais altos.

  1. A equipe deve ques­tionar o proces­so de tra­bal­ho de maneira con­tínua.

Uma das grandes máx­i­mas da área de engi­neer­ing design é con­heci­da como Lei de Con­way, segun­do a qual “a estru­tu­ra do pro­je­to de qual­quer sis­tema é inevi­tavel­mente uma cópia da estru­tu­ra de comu­ni­cação da empre­sa que o real­i­zou”. Em out­ras palavras, se a com­pan­hia é monolíti­ca, assim será o pro­je­to. Se estiv­er orga­ni­za­da por seg­men­tos de usuários, seu pro­du­to será otimiza­do dessa for­ma.

Para des­men­tir a Lei de Con­way, a mel­hor estraté­gia é a bus­ca con­stante de uma ade­quação, ao prob­le­ma do momen­to, tan­to da estru­tu­ra quan­to dos proces­sos para se ade­quar ao prob­le­ma em questão, que dev­erão, por­tan­to, ser sim­ples e enx­u­tos, para que as equipes pos­sam sem­pre ques­tioná-los e apri­morá-los.

Assim sendo, em con­trapon­to ao con­ceito de “Agile” como uma religião inques­tionáv­el, as equipes téc­ni­cas devem estar habit­u­adas ao diag­nós­ti­co e à iter­ação con­tínua do próprio mod­e­lo opera­cional. Con­forme obser­va­mos todo mês mel­hores exem­p­los, após ess­es pro­ced­i­men­tos, decide-se se há neces­si­dade de alter­ações para alcançar um pro­du­to mel­hor.

Na área de pro­du­tos dig­i­tais, a capaci­dade de atrair, inspi­rar e reter tal­en­tos vem-se tor­nan­do um fator críti­co para as empre­sas. A maior parte delas foi víti­ma de uma men­sagem sim­plista: a implan­tação do mod­e­lo Agile como uma série de cer­imô­nias e mel­ho­ras em todos os sen­ti­dos. Infe­liz­mente, isso não cos­tu­ma ocor­rer quan­do se descon­sid­era o fator humano. Com o retorno aos princí­pios bási­cos da moti­vação e do desem­pen­ho adap­ta­ti­vo, é pos­sív­el cri­ar uma empre­sa ver­dadeira­mente ágil.

Por Lind­say McGre­gor  e Neel Doshi 

Posts Similares