segunda-feira, 9 de fevereiro de 2015

Internet das Coisas: entenda o conceito e o que muda com a tecnologia

A “Internet das Coisas” se refere a uma revolução tecnológica que tem como objetivo conectar os itens usados do dia a dia à rede mundial de computadores. Cada vez mais surgem eletrodomésticos, meios de transporte e até mesmo tênis, roupas e maçanetas conectadas à Internet e a outros dispositivos, como computadores e smartphones.
A ideia é que, cada vez mais, o mundo físico e o digital se tornem um só, através dispositivos que se comuniquem com os outros, os data centers e suas nuvens. Aparelhos vestíveis, como o Google Glass e o Smartwatch 2, da Sony, transformam a mobilidade e a presença da Internet em diversos objetos em uma realidade cada vez mais próxima. O TechTudo busca explicar o que realmente pode mudar com a aplicação desse conceito. Confira.
Como surgiu o termo?
A ideia de conectar objetos é discutida desde 1991, quando a conexão TCP/IP e a Internet que conhecemos hoje começou a se popularizar. Bill Joy, cofundador da Sun Microsystems, pensou sobre a conexão de Device para Device (D2D), tipo de ligação que faz parte de um conceito maior, o de “várias webs”.
A Internet das Coisas (do inglês, Internet of Things) é uma revolução tecnológica a fim de conectar aparelhos eletrônicos do dia-a-dia, como aparelhos eletrodomésticos à máquinas industriais e meios de transporte à Internet, cujo desenvolvimento depende da inovação técnica dinâmica em campos tão importantes como os sensores wireless e a nanotecnologia. (Wikipedia)

Em 1999, Kevin Ashton do MIT propôs o termo “Internet das Coisas” e dez anos depois escreveu o artigo “A Coisa da Internet das Coisas” para o RFID Journal. De acordo com o especialista, a rede oferecia, na época, 50 Pentabytes de dados acumulados em gravações, registros e reprodução de imagens.
A limitação de tempo e da rotina fará com que as pessoas se conectem à Internet de outras maneiras. Segundo Ashton, assim, será possível acumular dados do movimento de nossos corpos com uma precisão muito maior do que as informações de hoje. Com esses registros, se conseguirá reduzir, otimizar e economizar recursos naturais e energéticos, por exemplo. Para o especialista, essa revolução será maior do que o próprio desenvolvimento do mundo online que conhecemos hoje.

sexta-feira, 2 de janeiro de 2015

Scrum: Agilidade em projetos

Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado.
Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.

As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na qual o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog.
A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia.
Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint. Assim reinicia-se o ciclo. Veja a ilustração abaixo:


Cerimônias
No Scrum há 4 cerimonias a saber:
Sprint Planning Meeting: É uma reunião onde os três papéis do Scrum estão presentes onde o Product Owner explica para o Development Team o detalhamento de cada produto e o Development Team estima o esforço de cada produto através da técnica Planning Poker. O resultado dessa reunião será de uma lista priorizada dos produtos e o Development Team irá se comprometer a entregar o que ela julga ser capaz, sem sofrer nenhum tipo de pressão do Product Owner ou de qualquer outra pessoa. A Definição de Pronto de cada produto deverá ser estabelecida nesta etapa, uma vez que durante a Sprint Review Meeting cada produto será confrontado com a Definição de Pronto de cada produto. Para saber mais sobre a técnica Planning Poker, acesse aqui.
Daily Scrum Meeting: É uma reunião diária feita somente entre os membros do Development Team com duração de 15 minutos, e é recomendado que seja feito no mesmo local. Cada membro precisa responder três perguntas: o que você fez da última reunião até agora? o que você fará até a próxima reunião? há algum impedimento que impeça suas atividades? Caso haja algum impedimento, o Scrum Master precisa ser acionado. Tanto o Scrum Master quanto o Product Owner podem participar da reunião, no entanto, não podem influenciar e devem estar apenas de corpo presente, sem falar uma única palavra, salvo o Scrum Master, caso o Development Team esteja violando algum processo do Framework Scrum.
Sprint Review Meeting: É a reunião onde todos os papéis participam e o Development Team apresenta as entregas dos produtos funcionando para o Product Owner, onde este poderá aceitar ou não. O Product Owner, se desejar, poderá convidar outras pessoas para participar desta reunião. E cada produto será confrontado com a Definição de Pronto realizada durante o Sprint Planning Meeting.
Sprint Retrospective Meeting: É uma reunião realizada após o término de cada Sprint entre os membros do Development Team de lições aprendidas, onde serão abordados o que foi mal e o que precisa ser melhorado para a próxima Sprint e o que foi bem e que precisa ser mantido para a próxima Sprint.
Artefatos
No Framework Scrum há 4 artefatos a saber:
Product Backlog: É a lista de produtos que o projeto precisará entregar, muitas das vezes os produtos são descritos em forma de estórias (Users Stories), como por exemplo: “Como professor gostaria de acessar o sistema de notas online para que possa consultar as notas dos meus alunos em qualquer lugar que eu esteja.”
Sprint: É o período de tempo que leva de 2 a 4 semanas para serem desenvolvidos os produtos planejados para a Sprint corrente.
Sprint Backlog: São os produtos selecionados pelo Development Team e na ordem priorizada pelo Product Owner na qual o Development Team se compromete à entregar na Sprint corrente.
Burndown Chart: É o gráfico de acompanhamento diário do andamento das atividades durante a Sprint. No eixo Y do gráfico é o indicativo dos pontos e no eixo X é o indicativo do tempo.