Construir soluções em vez de só consumi-las: Como DB1 Start pode ajudar nisto

Entre os meses de agosto e outubro, tive a alegria de conduzir um grupo de 32 pessoas incríveis. Elas chegaram até a minha pessoa após um processo severo de seleção e foram selecionadas para fazer parte da segunda turma do DB1 Start.

O que é o DB1 Start

DB1 Start é um curso gratuito com 200h de duração para apaixonados por tecnologia. Ele traz a experiência de fazer um projeto completo de software, através das boas práticas de mercado.

O objetivo do curso é compartilhar práticas utilizadas para a formação de trainees. O curso teve início em 21/08 e término em 01/11. Foram 32 alunos participantes, dentre eles, 31 concluintes e 12 contratados até dezembro.

Estas pessoas chegaram com suas diversas idades e formações. O que as unia era o desejo de participar deste mundo tecnológico tão evolutivo.

Foram 10 semanas muito intensas. O foco era torná-los produtores de tecnologia e não mais apenas consumidores. Resumindo, prazo curto para tantas possibilidades e muitos sonhos envolvidos.

Os assuntos definidos para serem compartilhados no DB1 Start

  • Introdução a computação
  • Básico de sistemas operacionais
  • Introdução a linguagem de programação
  • Básico de lógica de programação
  • Fundamentos do Java com teste unitário
  • Orientação a objetos e UML
  • Introdução a Java 8
  • Banco de Dados
  • Engenharia de Software
  • Controlador Versão – Git
  • Java e frameworks – Maven
  • Java e containers web
  • Java e frameworks – Hibernate
  • HTML e Bootstrap
  • Java e frameworks – JSF
  • Java e frameworks – JasperReport
  • Java e microservicos
  • Básico Angular JS
  • Básico Cloud Computing
  • Projeto web corporativo

Deste somente dois itens não foram entregues:

  • Java e microservicos
  • Básico Angular JS

A decisão destes temas não serem abordados ocorreu após uma análise do quanto isto iria agregar para a turma naquele momento (valor percebido). Mas eu não poderia escolher isto de forma isolada ou tirana. Eu precisava envolve-los nesta decisão e esta aproximação de professor e alunos foi um dos pontos fortes do curso.

Além da parte técnica, para que o sucesso do curso existisse era necessário fortalecer algumas habilidades que todo profissional deve ter:

  • Feedback constante
  • Comunicação contínua
  • Alinhamento contínuo (todos enxergarem o mesmo alvo)
  • Coragem (comportamento necessário para trabalhar em grupo, dar e receber feedback e se comunicar)
  • Simplicidade (a arte de maximizar a quantidade de trabalho que não precisa ser feito)

Foi por meio destes comportamentos e do refinamento na parte técnica  que muitos sonhos e desejos saíram do papel e eu como um formador e facilitador não poderia ignorar estes detalhes.

Desafios e aprendizados do início do curso

Lembro de logo no primeiro dia, ao invés de cada um ficar se apresentando sem muito objetivo, usei duas dinâmicas de colheita de expectativas. Costumamos chamar isto de retrospectiva. Alguns vão falar “ué, retrospectiva não é no fim de uma iteração???” e eu devolvo a pergunta, “por que não usar o período antes de começar algo para já começarmos todos alinhados e melhorando sempre?”

Esta colheita foi muito interessante e lembro de dois pontos que foram relatados:

  • Procratinação, como um ponto que deixaria eles lentos
  • Eles verem diariamente coisas sendo construídas e fazendo sentido, como um ponto de aceleração.
Uma das dinâmicas aplicadas logo no primeiro dia de aula

Figura 1 – Uma das dinâmicas aplicadas logo no primeiro dia de aula

Figura 1 – Uma das dinâmicas aplicadas logo no primeiro dia de aula

Estes dois itens serviram como insumo para o restante do curso e a mudança do meu comportamento.  Mas ainda assim eu fiquei confuso e com o senso de estar perdido nos primeiros dias de aula. Afinal, não era um grupo de pessoas semelhantes aos que participam comigo em ambiente acadêmico (graduação e pós). A resposta tinha que ser rápida, efetiva e o nosso tempo de erro tinha que ser reduzido.

Nisto me vieram alguns princípios que eu acredito:

  • Indivíduos e interações mais que processos e ferramentas
  • Responder a mudanças mais que seguir um plano

 Fonte: Manifesto Ágil

Feedbacks contínuos e alunos integrados

Para facilitar a minha sequência de trabalho, quebrei o curso em semanas (estilo sprint), mas seria muito ruim esperar o fechamento da semana para ter feedback de como havia sido o aprendizado. Por isto, pensei “por que não fazer feedback diário e estreitarmos a nossa comunicação”.

Isto foi muito bom e ajudou na forma como os participantes se ligavam ao professor (no caso eu). Mas ainda faltava uma coisa:

Eles precisam ser um time.

Eles tinham idades variadas e vieram de diversos colégios e faculdades. O que os ligaria?

Faixa etária dos alunos do DB1 Start

 

E aí usei algumas dinâmicas de construção de times (team building) e os relacionamentos interpessoais começaram a acontecer.

Aulas DB1 Start

Passada a semana 1, fizemos uma nova rodada de retrospectiva para colher o que poderíamos mudar ou não. Queríamos responder mais às mudanças do que seguir um plano.

E isto se repetiu para as demais semanas.

Na parte técnica, eu tinha a grande escolha de fazer como a grande maioria dos professores costuma fazer ou não. Eu preferi seguir o não. Para isto apliquei os conceitos de Extreme Programming (XP) que é uma metodologia ágil baseada em 5 valores (feedback, comunicação, coragem, simplicidade e respeito), conforme você leu ali em cima.

Feedback e comunicação estávamos fazendo. Coragem, eles estavam começando a receber desafios: durante o curso eles foram desafiados a deixar o código fonte público num GitHub, a fazer revisão de código, a fazer primeiro testes antes de programar (TDD), a falar em público e entre outras atividades.

A simplicidade foi sendo trabalhada durante todo o curso, em especial na elaboração do projeto final. No início permiti que eles sonhassem com muitas coisas, mas fui orientando todos para pensarem no que realmente era o escopo mínimo. E os resultados foram projetos muito bem entregues e com excelentes feedbacks dos colaboradores da DB1 (que participaram da banca de apresentação e conclusão do curso).

Veja abaixo alguns destes projetos dos alunos do DB1 Start:

Sistema de avaliação de provas

Figura 2 – Equipe Combo State – Sistema de avaliação de provas

Figura 2 – Equipe Combo State – Sistema de avaliação de provas

Sistema de avaliação de provas

Figura 3 – Equipe Initium – Sistema de avaliação de provas

Figura 3 – Equipe Initium – Sistema de avaliação de provas

 Sistema de biblioteca

Figura 4 – Equipe IT Progress – Sistema de biblioteca

Figura 4 – Equipe IT Progress – Sistema de biblioteca

Sistema de biblioteca

Figura 5 – Equipe 52DEV – Sistema de biblioteca

Figura 5 – Equipe 52DEV – Sistema de biblioteca

Sistema de avaliação de provas

Figura 6 – Equipe Sysout Tech – Sistema de avaliação de provas

Figura 6 – Equipe Sysout Tech – Sistema de avaliação de provas

O start principal é na mudança

Não sei direito como concluir esta postagem, pois é muito difícil relatar a intensidade que foram as 10 semanas. Posso dizer que elas trouxeram tanta mudança em mim que até hoje é latente práticas que apliquei durante o curso.

Muito mais do que não termos fechado todo o conteúdo proposto, aprendi a valorizar a jornada de aprendizado e perceber o quanto todos foram transformados nesta caminhada.

 

Jurgen Appelo, em seu livro Workout diz: “We should celebrate learning, not successes or failures”.

 

Abaixo compartilho a foto dos 31 concluintes. Hoje efetivamente posso dizer que eles pararam de serem apenas consumidores de tecnologia e passaram a ser produtores de tecnologia e com certeza profissionais muito mais capacitados para um mercado tão necessitado.

Certificado DB1 Start

Quer participar da próxima turma do DB1 Start? Curta a página da DB1 Global Software no Facebook e fique atento para o período de inscrições!

Deixe aqui seu comentário sobre sua impressão do DB1 Start, todo feedback é bem-vindo!

 

Certificação de Engenharia de Requisitos – CPRE-FL

Analisando o mercado de trabalho de alguns anos atrás, o diferencial de um profissional era a graduação. Alguns anos depois passou a ser a pós graduação. Atualmente a maioria dos profissionais possui uma graduação e uma ou mais pós graduações. Sabendo disso, é preciso ter algo a mais em seu currículo para se destacar. Pode parecer clichê, mas é assim que tem sido o mercado de TI no Brasil. E assim, surgem as certificações na nossa área. E principalmente as certificações reconhecidas internacionalmente.

Parafraseando Marcelo Neves, que é um dos nome mais respeitados no Brasil na área de Análise de Negócios e Engenharia de Requisitos, a certificação CPRE-FL é uma  certificação profissional que com ela os profissionais conseguem a tão desejada visibilidade que faz com que as empresas o disputem. Isso é especialmente crítico na atual situação de crise do país onde cada oportunidade é disputada a tapa. A certificação CPRE do IREB é o caminho mais curto e mais seguro pra se ter o reconhecimento.

Existem muitas certificações na área da programação, mas poucas na área de engenharia de requisitos e análise de negócios. Nós analistas de negócios aqui da DB1, para aumentar cada vez mais a qualidade da documentação de nossos projetos, temos optado por tirar a certificação CPRE-FL. Pois o estudo para certificação engloba temas da engenharia de software que vão desde métodos de elicitação de requisitos, documentação, validação, negociação até o gerenciamento dos requisitos. Leia mais

Certificação CTFL – Um esforço que vale a pena

Conquistar a certificação CTFL é uma meta desafiadora por si só. Pessoalmente, 2017 foi um ano de grandes desafios: me tornei mãe. Mesmo ainda desejando muito essa conquista profissional, pensei em desistir por achar que seria impossível estudar diante da minha nova rotina. Porém, me incomodava saber que não tinha atingido essa meta, então resolvi buscar a certificação!

Neste artigo, pretendo mostrar que é possível estudar e conquistar também sua certificação, mesmo tendo pouco tempo disponível. Contarei um pouco sobre como foram meus estudos para a certificação CTFL.

Você encontrará:

  • O que é a Certificação CTFL
  • Quais os benefícios dessa certificação
  • Materiais e dicas de estudo

Confira! Leia mais

Como consegui a certificação MCSD: App Builder

Há mais ou menos um ano determinei um objetivo, que era o de caminhar por uma das trilhas de certificação Microsoft (MCSD: App Builder – link do selo). Se você não conhece muito sobre certificações Microsoft, recomendo que leia este post sobre a importância da certificação Microsoft aqui do blog.

Este tempo seria mais do que o suficiente para realizar as três provas necessárias para conseguir o título, porém devido à alguns imprevistos pessoais acabei atrasando os planos, mas não desisti!

Este título exige um pré-requisito que é já possuir o título de “MCSA: Web Applications”.

A primeira prova da certificação MCSD (70-480)

A primeira prova pode ser escolhida entre a 70-480 (Programming in HTML5 with Javascript and CSS3) ou a 70-483 (Programming in C#). Como trabalhava mais com Web nesta época, optei pela 70-480.

Das três provas que fiz, considerei que a 70-480 foi a mais fácil delas, no entanto me preparei por dois meses antes de me submeter à realização da prova.

Vou deixar abaixo alguns materiais que utilizei para me preparar para a prova:

O último link deixado é, na minha opinião, o mais completo e rico, porém vale a pena estudar por todos eles.

A segunda prova da certificação MCSD (70-486)

Ainda no caminho para conseguir o “MCSA: Web Applications”, obrigatoriamente temos que passar pela prova 70-486 (Developing ASP.NET MVC Web Applications). Para esta prova também me preparei por cerca de dois meses antes de me submeter ao teste.

Na minha concepção esta prova foi a intermediária, em termos de dificuldade. Leia mais

Certificação Microsoft vale a pena?

Existem várias maneiras de um desenvolvedor (ou qualquer profissional) se qualificar, uma delas é através da certificação Microsoft. Ela basicamente vai assegurar às pessoas que você detém o conhecimento sobre algum assunto específico.

A maioria dos grandes players de tecnologia da atualidade fornecem a possibilidade de certificar os profissionais que desejam se aprofundar em alguma de suas tecnologias.

Seguindo esta ideia, a Microsoft é uma das empresas que disponibilizam essa opção de especialização. Ao perceberem a grande aceitação dos profissionais com esta modalidade, eles criaram certificações para praticamente todos os seus grandes produtos comerciais e para todas as áreas (não só desenvolvedores, veja a lista completa de certificações Microsoft).

Com o sucesso do modelo, passaram a criar as “trilhas” onde o profissional pode seguir conquistando uma lista de certificações de um determinado segmento e ao completar todas (ou seja, completar a trilha) ele recebe um selo da empresa.

Além do “carimbo” da grande empresa dizendo que você detém o conhecimento sobre determinado assunto, ao passar em alguma certificação a Microsoft disponibiliza alguns mimos como: desconto em e-books Microsoft, desconto em produtos Dell, acesso gratuito a uma rede social privada para profissionais certificados, além de materiais de divulgação para suas conquistas.

Qual o significado da sopa de letrinhas (MTA, MCSA, MCSE, MCSD)?

Dentro do universo de certificações Microsoft, existem ainda subdivisões através dessas siglas para diferenciar os níveis de “profundidade” sobre cada assunto. São elas: Leia mais

MapReduce e sua utilidade

Um dos grandes desafios computacionais da atualidade é a manipulação inteligente de grande quantidade de dados. Sistemas corporativos, serviços e sistemas Web, mídias sociais e entre outros, produzem um volume impressionante de dados.

A maioria desses dados são armazenados de forma não-estruturada, além de linguagens e formatos diversos, em muitos casos, incompatíveis entre si. Esses se tornaram uma valiosa fonte de informação. Um exemplo de manipulação de grande quantidade de dados é a empresa Google, que não possui um alto valor agregado somente por seu poderoso algoritmo de busca de páginas Web e seus inúmeros serviços disponíveis, mas também por manter um grande volume de dados de seus usuários.

São esses dados que, ao passarem por análises, tendem a se tornar valiosos, permitindo a criação de soluções inteligentes. Neste artigo será abordado o modelo MapReduce e sua utilização para a manipulação de grande quantidade de dados. Esse foi proposto primeiramente pela empresa citada no exemplo anterior: a Google, no ano de 2004.

O funcionamento do MapReduce

O MapReduce possui um conjunto de informações único, que é dividido em unidades e estas unidades são mapeadas paralelamente. Logo após, possuem-se as etapas de sort e shuffle: o sort ordena esses dados e o shuffle é a distribuição dos dados organizados em grupos para serem atribuídos aos nós de Redução.

Esse modelo demonstrou ser adequado para trabalhar com problemas que podem ser particionados ou fragmentados em subproblemas. As funções Map e Reduce podem ser aplicadas separadamente a um conjunto de dados. Se os dados forem suficientemente grandes, podem ainda ser divididos para serem executados em diversas funções Map ao mesmo tempo.

MapReduce processo de contagem de palavras

Figura 1

Para entendermos melhor vamos analisar a Figura 1 com um grupo de palavras a serem analisadas: Leia mais

JHipster – Um grande aliado no desenvolvimento de aplicações Java e Angular

Hoje, há uma crescente demanda de software no mercado. Cada vez mais empresas necessitam de um produto específico para seu negócio, e para empresas acima de médio porte, possuir soluções customizadas é quase que inevitável.

Do outro lado, as empresas de software buscam soluções que aumentem a produtividade do desenvolvimento, mas por muitas vezes, estas soluções acabam se tornando mais custosas do que produtivas.

Passei quase sete anos da minha carreira, trabalhando com ferramentas que prometiam produtividade, mas quando surgia a necessidade de sair do padrão da ferramenta… pronto! Toda produtividade do início do projeto com as automações de configuração e geração de CRUDs ia por água abaixo.

Em 2015, quando conheci o JHipster através de um amigo, de cara já pensei: lá vem mais uma ferramenta que engessa o código e que no final vai me trazer mais prejuízos do que benefícios. Foi aí que me enganei. Leia mais

A importância da Integração Contínua, utilizando Jenkins e SonarQube

concept of DevOps, illustrates software delivery automation through collaboration and communication between software development and information technology operations in agile development process

Produzir software de qualidade é uma tarefa difícil, que exige um constante monitoramento para mantê-lo íntegro.

A integração contínua é uma técnica de desenvolvimento que busca diagnosticar os bugs (defeitos) e problemas de integração mais rapidamente, utilizando um repositório de código único e executando o build (construção) do software diariamente.

 

Qual o principal ganho nos projetos com a Integração Contínua?

Imagine vários desenvolvedores codificando módulos de um mesmo projeto, é natural que colisões de código possam surgir. É bem provável que, em algum momento, um desses módulos seja alterado, simultaneamente, por dois ou mais desenvolvedores ocasionando problemas

A integração contínua atua exatamente antecipando tais situações, permitindo que o time reaja imediatamente e garanta uma evolução muito mais segura do produto. Afinal, “é melhor prevenir que remediar”’. Leia mais

Saúde DB1 possibilita acompanhamento 24 Horas pelo celular

Young woman doctor holding a tablet pc .

Utilizado em Maringá desde 2008, o sistema Saúde DB1 é referência em todo o Brasil, sendo recomendado pelo Ministério da Saúde. Aplicado em Pará de Minas este ano, o software já mostra avanços na celeridade dos serviços. Prova disso é a Unidade de Pronto Atendimento – UPA 24 horas, que desde a inauguração já trabalha utilizando o Saúde DB1 e tem diagnósticos mais precisos e ágeis.

Elias Diniz, prefeito de Pará de Minas, interessou-se no Saúde DB1 com o objetivo de qualificar e aumentar a eficiência do atendimento aos pacientes da rede pública. Hoje, Elias e o secretário municipal e interno da Saúde, Paulo Duarte, monitoram os atendimentos realizados na UPA 24 horas em forma de dados estatísticos e gráficos, mostrados pelo aplicativo de celular. Leia mais

Container, DockerFile e Docker Compose

A manutenção em ambientes de Desenvolvimento, Homologação e Produção gera grande impacto no ciclo de vida de uma aplicação.  Para mitigar os riscos neste cenário são utilizadas tecnologias com o intuito de aumentar a produtividade e facilitar a criação dos ambientes citados anteriormente. A tecnologia que melhor atendia era a Máquina Virtual, porém atualmente o conceito de Container ganhou um enorme espaço.

Que conceito seria esse? Como funciona?

Leia mais