{"id":7278,"date":"2018-03-07T16:31:48","date_gmt":"2018-03-07T19:31:48","guid":{"rendered":"http:\/\/blog.plataformatec.com.br\/?p=7278"},"modified":"2018-03-07T16:31:48","modified_gmt":"2018-03-07T19:31:48","slug":"a-importancia-do-processo-de-refining-em-um-projeto","status":"publish","type":"post","link":"https:\/\/blog.plataformatec.com.br\/2018\/03\/a-importancia-do-processo-de-refining-em-um-projeto\/","title":{"rendered":"A import\u00e2ncia do processo de refining em um projeto"},"content":{"rendered":"

Durante um projeto de desenvolvimento de software, independente da metodologia ou framework que est\u00e1 sendo utilizada, n\u00e3o \u00e9 raro que existam pontos de controle onde paramos e olhamos para o futuro, seja breve (dia, semana ou sprint) ou um futuro mais distante (release ou final do projeto). Nesse momento, usualmente planejamos quais os pr\u00f3ximos passos de constru\u00e7\u00e3o do produto. Geralmente isso ocorre no planejamento ou replenishment.<\/span><\/p>\n

Em alguns processos, durante o planejamento, replenishing ou outro momento de se organizar para o futuro, tende a ocorrer (tende, n\u00e3o \u00e9 uma regra) a discuss\u00e3o sobre as user stories que precisam ser desenvolvidas. O refining ou grooming (esse \u00faltimo vem entrando em desuso, inclusive o <\/span>Scrum Guide<\/span><\/a> abandonou o uso da palavra em 2013). Ainda que algumas pessoas realizem tal processo, percebo que em muitos times ainda n\u00e3o est\u00e1 t\u00e3o clara a sua import\u00e2ncia dentro de um projeto.<\/span><\/p>\n

Inclusive em alguns locais, n\u00e3o h\u00e1 sequer o conhecimento do que seja o refining. Isso \u00e9 problema? Claro que n\u00e3o! Ado\u00e7\u00e3o da agilidade \u00e9 incremental, ningu\u00e9m \u00e9 obrigado a saber todas suas nuances. Ent\u00e3o, caso voc\u00ea n\u00e3o conhe\u00e7a o processo, relaxe! Vou ajud\u00e1-lo!<\/span><\/p>\n

“Come with me if you wanna live the refining!”<\/strong><\/h3>\n

Refining \u00e9 o processo pelo qual realizamos o levantamento e escrita dos cards, de forma a deix\u00e1-lo pronto para desenvolvimento. Neste processo, s\u00e3o levantados uma s\u00e9rie de questionamentos acerca de neg\u00f3cio, c\u00f3digo, crit\u00e9rios de aceite e quaisquer outras informa\u00e7\u00f5es que sejam relevantes para a constru\u00e7\u00e3o daquele incremento de produto. O processo de refining \u00e9 respons\u00e1vel por criar um acordo do que ser\u00e1 constru\u00eddo entre os envolvidos. Definindo o escopo das user stories (o que ser\u00e1 feito e tamb\u00e9m o que n\u00e3o ser\u00e1 feito).<\/span><\/p>\n

J\u00e1 ouvi o seguinte argumento:<\/span><\/p>\n

“Ah, mas j\u00e1 fazemos isso durante o planning na etapa de estimativa! Ent\u00e3o o refining \u00e9 desnecess\u00e1rio!”<\/span><\/em><\/p>\n

O que acontece \u00e9 que durante a etapa de estimativa geralmente ocorre uma discuss\u00e3o acerca da user story, para saber se todos entenderam o que est\u00e1 escrito e a\u00ed sim estimar. Entretanto essa discuss\u00e3o aborda somente o card j\u00e1 escrito. E como fica o preparo? Caso o time utilize o momento da estimativa para escrever tudo o que deve estar contido na user story e tamb\u00e9m estimar, o evento ter\u00e1 uma dura\u00e7\u00e3o elevada.<\/span><\/p>\n

Legal, mas qual o momento para essa escrita ent\u00e3o? \u00c9 justamente durante o processo de refining, que acredito deve ser iniciado antes do planning, por exemplo. Para que neste momento a user story j\u00e1 chegue com mais informa\u00e7\u00f5es para a discuss\u00e3o.<\/span><\/p>\n

O refining n\u00e3o garante, mas aumenta consideravelmente as chances de uma user story estar bem escrita. E user stories bem escritas s\u00e3o importantes para evitar incertezas no desenvolvimento, evitando interrup\u00e7\u00f5es durante a escrita de c\u00f3digo, reduzindo o <\/span>leadtime<\/a><\/em><\/strong> e aumentando a efici\u00eancia do time.<\/span><\/p>\n

Os benef\u00edcios para o time e para o processo podem ser facilmente identificados. Alguns percept\u00edveis de forma mais r\u00e1pida s\u00e3o:<\/span><\/p>\n