{"id":445,"date":"2010-07-27T21:43:01","date_gmt":"2010-07-27T23:43:01","guid":{"rendered":"http:\/\/blog.cancaonova.com\/desenvolvimentoti\/papeis-etapas-no-desenvolvimento\/"},"modified":"2010-07-27T21:46:05","modified_gmt":"2010-07-27T23:46:05","slug":"papeis-etapas-no-desenvolvimento","status":"publish","type":"post","link":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/papeis-etapas-no-desenvolvimento\/","title":{"rendered":"Pap\u00e9is &#038; Etapas no Desenvolvimento"},"content":{"rendered":"<p>Quando falamos de alguma \u00e1rea cient\u00edfica em r\u00e1pida evolu\u00e7\u00e3o, fatalmente encontramos problemas com a *defini\u00e7\u00e3o* de termos. Profissionais podem nomear a mesma coisa de formas diferentes, especialmente quando h\u00e1 diferen\u00e7as culturais e de idioma. Na TI, n\u00e3o \u00e9 diferente; especialmente no Brasil, aonde uma boa parte de conceitos modernos ainda n\u00e3o foram introduzidos em nossos ambientes acad\u00eamicos e, em fun\u00e7\u00e3o disso, n\u00e3o fazem parte de um entendimento consensual entre todos os profissionais e institui\u00e7\u00f5es. S\u00e3o frequentes acaloradas discuss\u00f5es sobre um assunto at\u00e9 se perceber que, por exemplo, que o que algu\u00e9m entendia como &#8220;\u00e1gil&#8221;, outra pessoa nomeava como &#8220;iterativo&#8221;, ou ainda &#8220;r\u00e1pido&#8221;.<\/p>\n<p>Para evitar este tipo de acontecimento, vamos hoje definir e exemplificar como se estruturam as fases de desenvolvimento de software na Can\u00e7\u00e3o Nova, da forma como s\u00e3o (ou ser\u00e3o) adotadas pelos nossos times de desenvolvimento &#8211; *Desenvolvimento*, *Integra\u00e7\u00e3o*, e *Testes*.<\/p>\n<p>h2. Desenvolvimento<\/p>\n<p>\u00c9 a etapa na qual os comprometidos com um projeto efetivamente o *constr\u00f3em*, usando as habilidades que forem pertinentes.<\/p>\n<p>\u00c9 um processo altamente pessoal e *individualizado*, geralmente envolvendo muita tentativa e erro. Cada envolvido utiliza ferramentas e m\u00e9todos que mais o agradam, portanto, esta etapa \u00e9 tradicionalmente realizada sem interfer\u00eancia externa, tanto da parte de pessoas quanto de estruturas _(eg. outros equipamentos e ferramentas al\u00e9m dos do profissional)_.<\/p>\n<p>Logicamente que existem alguns padr\u00f5es a serem observados por todos &#8211; por exemplo, a necessidade de documenta\u00e7\u00e3o, de uso de sistemas de versionamento, coment\u00e1rios, etc; mas todos estes n\u00e3o eliminam a realidade altamente pessoal desta etapa.<\/p>\n<p>Na Can\u00e7\u00e3o Nova, esta etapa \u00e9 feita localmente _(no equipamento de uso do comprometido)_.<\/p>\n<p>h2. Integra\u00e7\u00e3o<\/p>\n<p>Nesta etapa, os v\u00e1rios comprometidos com um projeto *entregam* seu trabalho a um local comum e os integram,  criando um todo. <\/p>\n<p>O profissional submete seu trabalho a integra\u00e7\u00e3o somente quando este j\u00e1 possui algum *significado* &#8211; por exemplo, quando um programador consegue descrev\u00ea-lo como adicionando um benef\u00edcio claro e completo ao projeto, ao inv\u00e9s de simplesmente &#8220;mais cinquenta linhas de c\u00f3digo&#8221;, ou algo incompleto.<\/p>\n<p>Integra\u00e7\u00e3o, por defini\u00e7\u00e3o, envolve a centraliza\u00e7\u00e3o das partes trabalhadas em uma estrutura comum. \u00c9 uma etapa delicada, que \u00e9 muito auxiliada por ferramentas como sistemas de controle de vers\u00e3o (que facilitam o fluxo de trabalho e distribui\u00e7\u00e3o de responsabilidades) e desenvolvimento baseado em testes (que garante o funcionamente de cada uma das partes integradas e checa se n\u00e3o existem problemas quando elas trabalham em conjunto).<\/p>\n<p>Na Can\u00e7\u00e3o Nova, trabalho ser\u00e1 integrado em um servidor \u00fanico; que recebe peda\u00e7os do projeto atrav\u00e9s do GIT, um sistema de controle de vers\u00f5es.<\/p>\n<p>h2. Testes<\/p>\n<p>Na etapa de testes, o produto passa por v\u00e1rios procedimentos, com intuito de testar e *vivenciar* o *comportamento* real do mesmo. Cada um destes procedimentos geralmente atende uma necessidade espec\u00edfica, dentre elas:<\/p>\n<p>* *Testes de execu\u00e7\u00e3o*: o produto, por padr\u00e3o, \u00e9 efetivamente constru\u00eddo e inserido em um *ambiente* que *simula* com o m\u00e1ximo de fidelidade poss\u00edvel as condi\u00e7\u00f5es nas quais o mesmo seria *consumido*. No caso de aplicativos Web, por exemplo, \u00e9 feito deployment do mesmo em servidores com infraestrutura similar \u00e0 real. Estes testes permitem a contempla\u00e7\u00e3o de aspectos t\u00e9cnicos do projeto; o que possibilita melhorias e melhor planejamento estrutural.<\/p>\n<p>* *Testes de campo*: geralmente conhecidos como testes de usabilidade, visam observar a *intera\u00e7\u00e3o* de pessoas (representativas do p\u00fablico-alvo desejado) com o produto. No caso de aplicativos Web, envolve a navega\u00e7\u00e3o e uso dos mesmos. Estas observa\u00e7\u00f5es, por serem totalmente emp\u00edricas &#8211; baseadas em casos reais &#8211;  agregam grande valor ao design destes, principalmente quando realizados cedo.<\/p>\n<p>* *Testes de aceita\u00e7\u00e3o*: envolvem o *cliente* (solicitante) do produto, que averigua se o mesmo se enquadra nos *requerimentos* e acordos estabelecidos. S\u00e3o muito importantes, pois permitem que falhas sejam detectadas e corrijidas rapidamente, e s\u00e3o especialmente vitais em projetos gerenciados por metodologias \u00e1geis; aonde estes processos acontecem com muita frequ\u00eancia.<\/p>\n<p>Deve-se observar que esta etapa n\u00e3o inclui testes caracter\u00edsticos de desenvolvimento baseado a testes e\/ou comportamentos que sejam de natureza mec\u00e2nica: estes testes s\u00e3o executados constantemente na etapa de desenvolvimento pelo pr\u00f3prio desenvolvedor (no caso de testes unit\u00e1rios) ou na etapa de integra\u00e7\u00e3o (no caso de testes de aceita\u00e7\u00e3o).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando falamos de alguma \u00e1rea cient\u00edfica em r\u00e1pida evolu\u00e7\u00e3o, fatalmente encontramos problemas com a *defini\u00e7\u00e3o* de termos. Profissionais podem nomear a mesma coisa de formas diferentes, especialmente quando h\u00e1 diferen\u00e7as culturais e de idioma. Na TI, n\u00e3o \u00e9 diferente; especialmente&#8230;<\/p>\n","protected":false},"author":4445,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[16947],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/posts\/445"}],"collection":[{"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/users\/4445"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/comments?post=445"}],"version-history":[{"count":2,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/posts\/445\/revisions"}],"predecessor-version":[{"id":447,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/posts\/445\/revisions\/447"}],"wp:attachment":[{"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/media?parent=445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/categories?post=445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cancaonova.com\/desenvolvimentoti\/wp-json\/wp\/v2\/tags?post=445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}