{"id":260962,"date":"2023-03-02T06:48:00","date_gmt":"2023-03-02T03:48:00","guid":{"rendered":"https:\/\/inform.click\/como-avaliar-gerenciar-e-evitar-dividas-tecnicas\/"},"modified":"2023-03-02T07:08:00","modified_gmt":"2023-03-02T04:08:00","slug":"como-avaliar-gerenciar-e-evitar-dividas-tecnicas","status":"publish","type":"post","link":"https:\/\/inform.click\/pt-pt\/como-avaliar-gerenciar-e-evitar-dividas-tecnicas\/","title":{"rendered":"Como avaliar, gerenciar e evitar d\u00edvidas t\u00e9cnicas"},"content":{"rendered":"<p>\n  Se d\u00edvida t\u00e9cnica soa como algo retirado de um manual de finan\u00e7as, \u00e9 porque o termo est\u00e1 relacionado a finan\u00e7as. No entanto, no sentido real, a d\u00edvida t\u00e9cnica est\u00e1 relacionada \u00e0 programa\u00e7\u00e3o. \u00c9 a ideia de que durante o desenvolvimento de um projeto de software, certas etapas necess\u00e1rias s\u00e3o ignoradas ou simplesmente descartadas em uma tentativa de cumprir um prazo.\n<\/p>\n<p>\n  Em uma tentativa de desenvolver o aplicativo ou software perfeito, os desenvolvedores geralmente precisam de tempo &#8211; assim como qualquer pessoa aleat\u00f3ria realizando qualquer tarefa arbitr\u00e1ria. Assim, geralmente faz sentido ter algum tipo de compensa\u00e7\u00e3o entre entregar um produto perfeito com c\u00f3digo perfeito e maximizar o tempo.\n<\/p>\n<p>\n  A quest\u00e3o ent\u00e3o \u00e9: h\u00e1 um limite para esses trade-offs? Existem danos inerentes que podem resultar dessa troca? Finalmente, o desenvolvedor est\u00e1 realmente melhor a longo prazo? Neste artigo sobre d\u00edvidas t\u00e9cnicas, tentarei responder a todas essas perguntas.\n<\/p>\n<h5>\n  O que \u00e9 D\u00edvida T\u00e9cnica?<br \/>\n<\/h5>\n<p>\n  Ao definir a d\u00edvida t\u00e9cnica, teremos que nos referir ao homem creditado por ter gerado o termo em primeiro lugar: Ward Cunningham. De acordo com Cunningham, a d\u00edvida t\u00e9cnica refere-se ao trabalho extra de desenvolvimento necess\u00e1rio para programar um c\u00f3digo para compensar o d\u00e9ficit decorrente de program\u00e1-lo em um curto per\u00edodo.\n<\/p>\n<p>\n  Para torn\u00e1-lo mais gr\u00e1fico, imagine que voc\u00ea tem a tarefa de limpar uma sala bagun\u00e7ada e est\u00e1 atrasado para uma aula. Em uma tentativa de garantir que voc\u00ea cumpra as instru\u00e7\u00f5es e tamb\u00e9m chegue a tempo para sua aula, voc\u00ea faz uma limpeza r\u00e1pida, varrendo a maior parte dos detritos para debaixo do sof\u00e1. A consequ\u00eancia disso \u00e9 que, eventualmente, voc\u00ea ter\u00e1 que reservar um tempo para resolver a bagun\u00e7a. Para desenvolvimento de software, quando voc\u00ea pular as etapas necess\u00e1rias e seguir uma rota mais f\u00e1cil, com c\u00f3digos &#8216;n\u00e3o t\u00e3o limpos', ficar\u00e1 mais dif\u00edcil limpar o c\u00f3digo posteriormente no futuro. Existem v\u00e1rias fases encontradas nos domin\u00f3s do projeto de software e, quanto mais voc\u00ea ignora um problema existente, mais tempo leva para ser resolvido.\n<\/p>\n<p>\n  Tipos de D\u00edvidas T\u00e9cnicas\n<\/p>\n<p>\n  As d\u00edvidas t\u00e9cnicas s\u00e3o de diferentes tipos, incluindo:\n<\/p>\n<h5>\n  D\u00edvidas T\u00e9cnicas Planejadas<br \/>\n<\/h5>\n<p>\n  Isso ocorre em situa\u00e7\u00f5es em que as organiza\u00e7\u00f5es decidem deliberadamente contrair d\u00edvidas t\u00e9cnicas. Isso, como discutido anteriormente, geralmente \u00e9 para vencer os prazos estabelecidos e chegar a um objetivo espec\u00edfico. Ao se envolver em d\u00edvidas t\u00e9cnicas planejadas, a organiza\u00e7\u00e3o precisa ter clareza do que est\u00e1 disposta a abrir m\u00e3o e do que n\u00e3o pode. Voc\u00ea deve manter registros precisos, tendo em mente que eventualmente ter\u00e1 que retornar e corrigir os erros que voc\u00ea pulou no in\u00edcio.\n<\/p>\n<h5>\n  D\u00edvidas t\u00e9cnicas n\u00e3o intencionais<br \/>\n<\/h5>\n<p>\n  Esse tipo de d\u00edvida t\u00e9cnica \u00e9 o oposto direto do primeiro. Surge quando uma organiza\u00e7\u00e3o n\u00e3o prev\u00ea ou planeja a d\u00edvida t\u00e9cnica. A raz\u00e3o para isso \u00e9 tipicamente uma falha na comunica\u00e7\u00e3o entre as v\u00e1rias unidades da organiza\u00e7\u00e3o ou pr\u00e1ticas de trabalho ruins entre as unidades.\n<\/p>\n<h5>\n  D\u00edvidas T\u00e9cnicas Inevit\u00e1veis<br \/>\n<\/h5>\n<p>\n  Esse \u00e9 o tipo de d\u00edvida t\u00e9cnica que nenhuma a\u00e7\u00e3o por parte da organiza\u00e7\u00e3o poderia ter evitado. Por exemplo, com as r\u00e1pidas mudan\u00e7as experimentadas na tecnologia, faz sentido que alguns c\u00f3digos escritos no passado fiquem aqu\u00e9m dos padr\u00f5es atuais projetados.\n<\/p>\n<p>\n  Al\u00e9m disso, esse tipo de d\u00edvida t\u00e9cnica pode surgir quando as altera\u00e7\u00f5es s\u00e3o solicitadas quando o c\u00f3digo j\u00e1 est\u00e1 sendo escrito. Se no meio do projeto do software forem introduzidas algumas altera\u00e7\u00f5es, isso pode atrapalhar a din\u00e2mica, tornando o c\u00f3digo antigo obsoleto ou desnecess\u00e1rio.\n<\/p>\n<h3>\n  Causas da D\u00edvida T\u00e9cnica<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398b8ae14d.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398b8ae14d.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  Algumas das raz\u00f5es para a d\u00edvida t\u00e9cnica foram discutidas acima, mas vou apenas selecion\u00e1-las uma ap\u00f3s a outra para torn\u00e1-las mais claras.\n<\/p>\n<h5>\n  Pressa<br \/>\n<\/h5>\n<p>\n  A causa mais frequente de d\u00edvida t\u00e9cnica \u00e9 a pressa. Os desenvolvedores geralmente t\u00eam prazos rigorosos, alguns dos quais incluem prazos para o lan\u00e7amento de determinado software. Muitas vezes \u00e9 compreens\u00edvel (e esperado) nesses tipos de situa\u00e7\u00f5es que o desenvolvedor possa incorrer em d\u00edvidas t\u00e9cnicas ao longo do caminho. Esse tipo de d\u00edvida t\u00e9cnica geralmente \u00e9 intencional e pode resultar em problemas que podem variar de bugs no c\u00f3digo ou surgimento de c\u00f3digos espaguete.\n<\/p>\n<h5>\n  Descuido\/Erro<br \/>\n<\/h5>\n<p>\n  \u00c0s vezes, os programadores apenas escrevem c\u00f3digos ruins, que eventualmente levam a d\u00edvidas t\u00e9cnicas. Independentemente de o c\u00f3digo ruim existir por erro do codificador ou n\u00e3o, o fato \u00e9 que erros resultam em d\u00edvidas t\u00e9cnicas e, por n\u00e3o serem escal\u00e1veis, eventualmente ter\u00e3o que ser corrigidos.\n<\/p>\n<h5>\n  Falta de consci\u00eancia dos efeitos<br \/>\n<\/h5>\n<p>\n  \u00c0s vezes, as d\u00edvidas t\u00e9cnicas surgem porque o codificador falha em perceber ou reconhecer como as d\u00edvidas t\u00e9cnicas s\u00e3o prejudiciais a longo prazo. Isso pode resultar de uma ignor\u00e2ncia leg\u00edtima dos efeitos nocivos de usar atalhos durante a programa\u00e7\u00e3o ou pode ser uma desconsidera\u00e7\u00e3o intencional das consequ\u00eancias.\n<\/p>\n<h5>\n  Inten\u00e7\u00e3o<br \/>\n<\/h5>\n<p>\n  D\u00edvidas t\u00e9cnicas podem surgir intencionalmente pelas a\u00e7\u00f5es deliberadas do codificador ou da organiza\u00e7\u00e3o.\n<\/p>\n<h5>\n  Falta de modularidade<br \/>\n<\/h5>\n<p>\n  Isso ocorre principalmente porque um c\u00f3digo pode atender a diferentes l\u00f3gicas de neg\u00f3cios ao mesmo tempo. Esse tipo de situa\u00e7\u00e3o torna o manuseio do software muito mais dif\u00edcil. Com cada c\u00f3digo que um desenvolvedor escreve, mais chances s\u00e3o de que eles enfrentem desafios com a modularidade.\n<\/p>\n<h3>\n  Avalia\u00e7\u00e3o da D\u00edvida T\u00e9cnica<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398bb9dc83.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398bb9dc83.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  As d\u00edvidas t\u00e9cnicas nunca devem ser calculadas manualmente porque isso seria bastante \u00e1rduo. Isso significaria ter que inserir manualmente o c\u00f3digo para determinar os problemas atuais e os poss\u00edveis problemas futuros. Al\u00e9m da perda de tempo do processo manual, existe a possibilidade de que os c\u00f3digos tenham mudado de forma no final do processo manual.\n<\/p>\n<p>\n  Uma forma de realizar a avalia\u00e7\u00e3o \u00e9 atrav\u00e9s da realiza\u00e7\u00e3o de uma an\u00e1lise est\u00e1tica utilizando algumas ferramentas que a suportam. Algumas das ferramentas que podem ser usadas incluem Coverity, SonarQube, Check Style e Closure Compiler.\n<\/p>\n<p>\n  Geralmente, existem duas formas de calcular as d\u00edvidas t\u00e9cnicas. Na primeira abordagem, ela poderia ser obtida calculando-se a raz\u00e3o da d\u00edvida t\u00e9cnica seguindo a raz\u00e3o do c\u00f3digo. Aqui, a estimativa inicial ou o tempo total necess\u00e1rio para desenvolver o aplicativo seria usado para determinar o tempo necess\u00e1rio para corrigir a d\u00edvida t\u00e9cnica.\n<\/p>\n<p>\n  Na segunda abordagem, voc\u00ea pode usar diretamente as estimativas fornecidas por v\u00e1rias ferramentas, como o SonarQube. Isso ser\u00e1 combinado com as listas das d\u00edvidas t\u00e9cnicas, bem como seus c\u00f3digos de refer\u00eancia. A partir das ferramentas, voc\u00ea pode obter uma estimativa precisa do tempo necess\u00e1rio para corrigi-lo.\n<\/p>\n<p>\n  Avaliar a d\u00edvida t\u00e9cnica lhe dar\u00e1 uma no\u00e7\u00e3o de quantos dias ser\u00e3o necess\u00e1rios para corrigi-la. Quanto mais d\u00edvidas houver, mais tempo voc\u00ea levar\u00e1 para corrigi-las.\n<\/p>\n<h3>\n  Resolu\u00e7\u00e3o de D\u00edvidas T\u00e9cnicas<br \/>\n<\/h3>\n<p>\n  E se ocorrerem d\u00edvidas t\u00e9cnicas e voc\u00ea n\u00e3o souber o que fazer? Existem algumas etapas que voc\u00ea pode seguir para gerenciar as d\u00edvidas t\u00e9cnicas.\n<\/p>\n<p>\n  Em primeiro lugar, voc\u00ea deve reconhecer que as d\u00edvidas t\u00e9cnicas existem e comunic\u00e1-las \u00e0 sua equipe. Ao se comunicar, voc\u00ea deve ser claro sobre o que aconteceu e o que precisa ser feito para corrigi-lo. Voc\u00ea deve certificar-se de comunicar claramente a necessidade de cuidar da d\u00edvida t\u00e9cnica na primeira oportunidade.\n<\/p>\n<p>\n  Depois de informar sua equipe sobre as d\u00edvidas t\u00e9cnicas, existem tr\u00eas abordagens que voc\u00ea pode adotar. Na primeira abordagem, voc\u00ea pode decidir continuar com o sistema como est\u00e1. Nesse cen\u00e1rio, o aplicativo ser\u00e1 usado como est\u00e1.\n<\/p>\n<p>\n  Como alternativa, voc\u00ea pode decidir refatorar o aplicativo. A refatora\u00e7\u00e3o \u00e9 feita com o objetivo de reduzir a complexidade do aplicativo, bem como limpar a estrutura do aplicativo. Com a refatora\u00e7\u00e3o, o comportamento do software n\u00e3o ser\u00e1 alterado; a \u00fanica parte afetada ser\u00e1 a estrutura interna.\n<\/p>\n<p>\n  Finalmente, se as duas op\u00e7\u00f5es discutidas acima n\u00e3o funcionarem, voc\u00ea ter\u00e1 que substituir todo o c\u00f3digo. Um problema com isso \u00e9 que pode levar a novas d\u00edvidas t\u00e9cnicas, mas isso pode ser uma compensa\u00e7\u00e3o melhor a longo prazo.\n<\/p>\n<h3>\n  Evitando D\u00edvidas T\u00e9cnicas no Futuro<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398be56829.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398be56829.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  Obviamente, \u00e9 \u00f3bvio que evitar d\u00edvidas t\u00e9cnicas \u00e9 definitivamente mais inteligente do que tentar corrigi-las quando elas surgirem. Al\u00e9m do fato de economizar tempo e estresse, tamb\u00e9m garante que as consequ\u00eancias residuais de ter d\u00edvidas t\u00e9cnicas desde o in\u00edcio estejam ausentes.\n<\/p>\n<p>\n  Pode-se argumentar que as d\u00edvidas t\u00e9cnicas, por si s\u00f3, n\u00e3o s\u00e3o ruins. Eles s\u00e3o problem\u00e1ticos geralmente porque s\u00e3o d\u00edvidas que precisam ser pagas, e os humanos n\u00e3o s\u00e3o a esp\u00e9cie mais respons\u00e1vel da Terra. A escolha consistente de uma op\u00e7\u00e3o mais fraca geralmente enfraquecer\u00e1 a for\u00e7a do seu software e tornar\u00e1 mais dif\u00edcil melhorar as funcionalidades posteriormente. Ao todo, evitar d\u00edvidas t\u00e9cnicas \u00e9 a melhor aposta para qualquer um.\n<\/p>\n<p>\n  Ent\u00e3o, como evitar que surjam d\u00edvidas t\u00e9cnicas:\n<\/p>\n<p>\n  Crie um backlog do projeto\n<\/p>\n<p>\n  A ideia aqui \u00e9 manter todos a par do processo e atualiz\u00e1-los com os requisitos de qualquer tarefa que esteja sendo realizada. Criar um backlog permite que todos vejam as tarefas n\u00e3o conclu\u00eddas e os caminhos a serem seguidos para alcan\u00e7\u00e1-las.\n<\/p>\n<p>\n  Priorize a qualidade sobre a velocidade\n<\/p>\n<p>\n  Se voc\u00ea tamb\u00e9m \u00e9 um programador, precisa aprender a priorizar a realiza\u00e7\u00e3o de um trabalho de qualidade em vez de muito trabalho. Certifique-se de que seus c\u00f3digos estejam limpos e que seus aplicativos ou outros softwares sejam desenvolvidos com perfei\u00e7\u00e3o. Entenda que a tenta\u00e7\u00e3o de pegar atalhos n\u00e3o valer\u00e1 a pena porque, eventualmente, voc\u00ea ainda ter\u00e1 que realizar as tarefas que abandonou.\n<\/p>\n<p>\n  Se voc\u00ea lidera uma equipe, deve comunicar esses mesmos valores aos membros da equipe. Os membros devem ser ensinados a criar solu\u00e7\u00f5es orientadas a resultados e a evitar atalhos.\n<\/p>\n<p>\n  Criar consci\u00eancia\n<\/p>\n<p>\n  Geralmente, um conhecimento profundo do que \u00e9 d\u00edvida t\u00e9cnica e como evit\u00e1-la pode ser \u00fatil para evitar que surjam em primeiro lugar. Quando voc\u00ea munir seus desenvolvedores com o conhecimento necess\u00e1rio, eles evitar\u00e3o melhor as armadilhas que as d\u00edvidas t\u00e9cnicas representam.\n<\/p>\n<p>\n  Introduzir boas pr\u00e1ticas de codifica\u00e7\u00e3o\n<\/p>\n<p>\n  Algumas pr\u00e1ticas de codifica\u00e7\u00e3o tornam mais prov\u00e1vel que voc\u00ea caia em d\u00edvidas t\u00e9cnicas. Assim, seria \u00f3timo evitar acoplamento r\u00edgido, empregar abstra\u00e7\u00e3o e refatora\u00e7\u00e3o.\n<\/p>\n<p>\n  Apresentar tecnologia atualizada\n<\/p>\n<p>\n  Atualiza\u00e7\u00f5es regulares de tecnologia podem ser um excelente meio de evitar d\u00edvidas t\u00e9cnicas. Ao atualizar, voc\u00ea deve certificar-se de que o que est\u00e1 sendo usado \u00e9 a estrutura, os bancos de dados e o software de aplicativo mais recentes.\n<\/p>\n<h5>\n  Conclus\u00e3o<br \/>\n<\/h5>\n<p>\n  D\u00edvidas t\u00e9cnicas, na grande maioria dos casos, s\u00e3o inevit\u00e1veis \u200b\u200benquanto voc\u00ea continuar desenvolvendo programas e escrevendo c\u00f3digos. No entanto, as chances de sua ocorr\u00eancia podem ser bastante reduzidas quando as etapas listadas acima s\u00e3o seguidas. Al\u00e9m disso, na eventualidade de d\u00edvidas t\u00e9cnicas, n\u00e3o se perde toda a esperan\u00e7a. Fique calmo, seja confiante, aja de acordo.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte de grava\u00e7\u00e3o: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2020\/05\/26\/technical-debts-tips\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Se d\u00edvida t\u00e9cnica soa como algo retirado de um manual de finan\u00e7as, \u00e9 porque o termo est\u00e1 relacionado a finan\u00e7as. No entanto, no sentido real, a d\u00edvida t\u00e9cnica est\u00e1 relacionada \u00e0 programa\u00e7\u00e3o. \u00c9 a ideia de que durante o desenvolvimento de um projeto de software, certas etapas necess\u00e1rias s\u00e3o ignoradas ou simplesmente descartadas em uma tentativa de cumprir um prazo. Em uma tentativa de desenvolver o aplicativo ou software perfeito, os desenvolvedores geralmente precisam de tempo &#8211; assim como qualquer pessoa aleat\u00f3ria realizando qualquer tarefa arbitr\u00e1ria. Assim, geralmente faz sentido ter algum tipo de \u2026<\/p>\n","protected":false},"author":1,"featured_media":209172,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[215,267,98,59],"tags":[],"class_list":["post-260962","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codificacao","category-psicologia-3","category-seo-e-marketing-2","category-web-e-wordpress-2"],"_links":{"self":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=260962"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260962\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/209172"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=260962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=260962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=260962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}