O universo dos dados

Por Débora Morales

Muito se escuta falar de Big Data e Small Data, mas o que isso realmente significa ainda confunde muita gente. A definição é simples: trata-se de uma análise completa de dados. Décadas atrás, os dados não eram classificados como Small ou Big por fatores como custo, recursos e dificuldades de geração, processamento, análise e armazenamento.

Os dados eram produzidos de forma rigorosamente controlada, utilizando técnicas de amostragem que limitavam seu espaço, temporalidade e tamanho. No entanto, nos últimos anos, os avanços tecnológicos levaram à produção do que se denominou Big Data, que têm características muito diferentes dos pequenos conjuntos de dados.

Grande volume, alta velocidade, que se assemelha ao tempo real, variedade de tempo e espaço, e grande alcance, que capta toda a população dentro de um determinado domínio são algumas das especificações do Big Data. O desenvolvimento simultâneo de várias tecnologias, infraestruturas, técnicas e processos favoreceu esse novo passo.

Rapidamente, o Big Data incorporou softwares de todos os tipos de objetos, desde máquina a sistemas que se alteram de “mudos” para “inteligentes”. Incorporou, também, práticas e espaços sociais e empresariais, por meio de um conjunto diversificado de tecnologias da informação e da comunicação, em especial a internet fixa e móvel. O desenvolvimento da computação ubíqua e a capacidade de acesso a redes em muitos ambientes e em movimento incluiu a criação de novas plataformas de mídias sociais.

Em contraste, o Small Data pode ser limitado em volume e velocidade, mas tem um longo histórico de desenvolvimento em toda ciência, agências estatais, organizações não-governamentais e empresas, com metodologias e modos de análise estabelecidos em um registro de produzir respostas significativas. Estudos de Small Data podem ser mais adaptados para responder a perguntas específicas e explorar em detalhes as formas variadas em que as pessoas interagem.

Estudos de Small Data procuram a mina de ouro, trabalhando uma mineração estreita, enquanto estudos de Big Data procuram extrair pepitas por meio da mineração a céu aberto, recolhendo e peneirando enormes faixas de dados. Essas duas abordagens de mineração, estreita versus aberta, têm consequências em relação à qualidade dos dados, fidelidade e linhagem.

Devido ao tamanho limitado da amostra de Small Data, a qualidade, objetividade, consistência, veracidade e confiabilidade são de suma importância. Muito trabalho é dedicado a limitar a amostragem e o viés metodológico, bem como assegurar que os dados sejam tão rigorosos e robustos quanto possível, antes de serem analisados ou partilhados.

Em contrapartida, o Big Data não necessita dos mesmos padrões de qualidade, veracidade e linhagem, porque a natureza exaustiva do conjunto de dados elimina os vieses da amostragem e compensa mais do que quaisquer erros ou lacunas.

Dadas as preocupações e limitações de Small Data, estudos continuarão a ser um componente importante no cenário de pesquisas. Tais dados, no entanto, serão cada vez mais pressionados a serem ampliados dentro de infraestruturas de dados digitais, para que sejam preservados para gerações futuras, tornem-se acessíveis para reutilização e combinações com outros dados.

As práticas da vida cotidiana e os locais em que vivemos agora são aumentados, monitorados e regulados por densas aglomerações de infraestrutura e tecnologia de dados. Dentro desse sistema, grande parte da geração de dados é automatizada por meio de câmeras controladas algoritmicamente, sensores, scanners, dispositivos digitais como telefones inteligentes, ou são voluntários pelos usuários de mídias sociais ou iniciativas de crowdsourcing.

Coletivamente, esses sistemas produzem conjuntos de dados maciços, exaustivos, dinâmicos, indexados, inter-relacionados, flexíveis e escaláveis. Apesar de algumas limitações, o Big Data e o Small Data se esforçam para serem cada vez mais abrangentes e proporcionarem uma visão dinâmica e refinada em um novo território que ainda está sendo explorado.

Débora Morales é estatística no Instituto das Cidades Inteligentes (ICI).

Desafios na adoção de metodologias ágeis de desenvolvimento de software

Por Felipe Massardo

A adoção de metodologias ágeis de desenvolvimento de software é, habitualmente, uma unanimidade “teórica” em grande parte das empresas de TI, inclusive nas mais tradicionais. Digo “teórica”, pois conceitualmente falando, o Agile é muito bem aceito, é um paradigma de fácil convencimento e de fácil “vendagem” para diretorias e altas gerências. Porém, ocorre que, na prática, a implantação destas metodologias sofre bastante resistência, em todos os níveis das organizações, da cúpula diretiva à equipe técnica. Isto ocorre, pois, como toda mudança, alterar a forma de desenvolver software requer a saída da zona de conforto, trocar o certo pelo (ainda) duvidoso, onde haverá muitas dificuldades, riscos, erros e acertos até que, por fim, os resultados e os ganhos reais comecem a aparecer. Neste processo, o que é certo é que, sem total apoio e comprometimento do patrocinador da mudança (diretoria), nas primeiras dificuldades o processo tende a ser abandonado, voltando-se imediatamente ao modus operandi da empresa.

Mudança cultural

Sair da zona de conforto envolve algo bem mais profundo do que mudanças de atitudes. A grande mudança necessária é na cultura organizacional. Não basta apenas executar diferente, é necessário pensar diferente, não apenas na fase de execução dos projetos, mas desde a concepção das primeiras ideias acerca do produto até a entrega final.

Principais vantagens

Metodologias ágeis trazem uma série de vantagens em relação às tradicionais, porém duas delas merecem destaque especial. A primeira é a entrega constante e regular de software funcional. O cliente não precisa aguardar a finalização do projeto para testá-lo e, principalmente, validá-lo. Isso nos leva para a segunda vantagem, talvez a mais importante: Rápida resposta a mudanças. No mundo real, raramente um cliente possui a perspectiva detalhada do que exatamente ele deseja em seu software. Em geral, o que existe é uma ideia, muitas vezes vaga, da necessidade do cliente. Neste nível de abstração as mudanças são frequentes e perfeitamente normais, porém há uma tendência de que as incertezas sejam reduzidas conforme avança o desenvolvimento e o cliente vislumbra cada vez mais o resultado final.

Uma forma de reduzir as mudanças de escopo, independentemente da metodologia, é a troca de foco. Ao invés de se tentar detalhar a ideia (vaga) que o cliente possui, exigindo “certezas” que o mesmo não pode fornecer, torna-se mais eficiente entender a fundo o problema que se deseja resolver e então propor um software para este propósito.

Ágil X PMBOK

Metodologias ágeis, via de regra, seguem o Manifesto Ágil, que consiste em princípios fundamentais para o desenvolvimento ágil de software. Isto não significa que a adoção de uma metodologia ágil não possa ser combinada com outras metodologias de gerenciamento de projetos, como aquelas que são norteadas pelo PMBOK, por exemplo. Para exemplificar, o princípio ágil “Software funcional mais do que documentação extensa” não prega que toda a documentação deva ser abolida. É muito difícil gerenciar projetos sem um mínimo de documentação, sem aceites nem comprometimentos formais do que fora acordado. Uma ausência total de documentos pode gerar, por exemplo, projetos infinitos, nos quais o cliente sempre demanda novas features e não há como provar que as mesmas nunca fizeram parte do escopo. Em resumo, nada impede que a gestão do projeto como um todo seja feita utilizando-se os processos do PMBOK (apenas os necessários, de forma enxuta) e que a execução seja regida por uma metodologia ágil, complementando uma a outra.

Cliente-Parceiro

Uma grande mudança ao se adotar uma metodologia ágil, principalmente em relação ao desenvolvimento tradicional (em cascata), encontra-se na mudança de comportamento por parte do cliente. Este, que antes participava como um mero expectador do processo, atuando apenas no início (fornecendo a ideia) e no final do projeto (validando a entrega), passa a exercer um papel que vai além do simples cliente, tornando-se um “cliente-parceiro”. Esta necessidade é uma característica inerente do processo de desenvolvimento ágil de software, haja vista que, por exemplo, as entregas parciais só fazem sentido se forem validadas pelo cliente. Talvez ele tenha dificuldades em entender a razão de precisar gastar seu tempo, além do dinheiro, para adquirir um software. Porém, quanto maior seu envolvimento no processo, menor a chance de o produto, depois de pronto, não atender às suas expectativas. É preciso deixar claro que, quanto mais tarde ocorrerem as solicitações de mudanças (depois de pronto, no pior caso), maior será o custo (retrabalho) e o atraso.

O Time Ágil

Apesar de as vantagens do desenvolvimento ágil de software serem evidentes, é preciso ressaltar que o processo só funciona, na prática, se a equipe (time ágil) for adequada para trabalhar desta forma. Em outras palavras, metodologias ágeis não funcionam em todas as equipes. O requisito básico é que a mesma seja autogerenciável. O autogerenciamento é um conceito amplo, mas, de forma simplificada, uma equipe autogerenciável é aquela que possui a capacidade de organizar sua forma de trabalho da maneira mais eficiente possível, de maneira autônoma. É como se a equipe fosse uma microempresa dentro da organização, que possui demandas e entrega resultados, sem a necessidade de alguém lhe dizer como deve organizar seu trabalho, como deve ocorrer a comunicação interna, como devem ser distribuídas as tarefas, enfim, sem nenhuma necessidade de microgerenciamento. Porém, todos os membros da equipe, sem exceção, precisam atender a um perfil específico para fazer parte de uma equipe autogerenciável, caso contrário, desorganização e conflitos surgirão e poderão chegar ao ponto de comprometer a qualidade, os prazos e a equipe como um todo. Este perfil específico demanda, além de conhecimento técnico, alta capacidade de trabalho em equipe, organização e comprometimento. Infelizmente, nem todos possuem este perfil e, portanto, não devem fazer parte dos times ágeis enquanto não o possuírem.

A implantação de uma metodologia ágil é um processo bastante complexo, especialmente em uma empresa tradicional, principalmente por envolver abandono da zona de conforto, muitas vezes sedimentada ao longo de muitos anos, além de profundas mudanças culturais e de processos. Desta forma, todo o processo deve ser realizado de maneira gradativa, sendo o menos taxativo possível, envolvendo muito diálogo e ajustes constantes, especialmente nos primeiros projetos. É preciso ter a humildade de reconhecer que é muito difícil acertar de primeira, além de coragem e perseverança para não desistir diante das primeiras barreiras, especialmente as resistências internas. Infelizmente, nenhuma melhoria significativa é obtida sem investimentos e uma boa dose de risco, porém, os ganhos certamente fazem o esforço valer a pena.

Felipe Massardo é coordenador de projetos no Instituto das Cidades Inteligentes (ICI).