domingo, 20 de junho de 2010

Scrum - Desenvolvimento de Software

O Scrum é uma framework para desenvolvimento ágil e Gerenciamento de Projetos.

Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de projetos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo "The New Product Development Game" (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares (cross-functional) produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação Scrum do Rugby (utilizada para reinício do jogo em certos casos). Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum, conforme descrito abaixo, na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka. Em 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo no desenvolvimento de softwares em todo o mundo.

Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.

A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planejamento de um casamento.

Mesmo que idealizado para ser utilizado em gestão de projetos de desenvolvimento de software ele também pode ser usado para a gerência de equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.

  • Caracteristicas do Scrum

  • Cada sprint é uma iteração que segue um ciclo (PDCA) e entrega incremento de software pronto.
  • Um backlog é conjunto de requisitos, priorizado pelo Product Owner (responsável pelo ROI e por conhecer as necessidades do cliente);
  • Há entrega de conjunto fixo de itens do backlog em série de interações curtas ou sprints;
  • Breve reunião diária, ou daily scrum, em que cada participante fala sobre o progresso conseguido, o trabalho a ser realizado e/ou o que o impede de seguir avançando (também chamado de Standup Meeting ou Daily Meeting, já que os membros da equipe geralmente ficam em pé para não prolongar a reunião).
  • Breve sessão de planejamento, na qual os itens do backlog para uma sprint (iteração) são definidos;
  • Retrospectiva, na qual todos os membros da equipe refletem sobre a sprint passada.

O Scrum é facilitado por um Scrum Master, que tem como função primária remover qualquer impedimento à habilidade de uma equipe de entregar o objetivo do sprint. O Scrum Master não é o líder da equipe (já que as equipes são auto-organizadas), mas atua como um mediador entre a equipe e qualquer influência desestabilizadora. Outra função extremamente importante de um Scrum Master é o de assegurar que a equipe esteja utilizando corretamente as práticas de Scrum, motivando-os e mantendo o foco na meta da Sprint.

Scrum permite a criação de equipes auto-organizadas, encorajando a comunicação verbal entre todos os membros da equipe e entre todas as disciplinas que estão envolvidas no projeto.

Um princípio chave do Scrum é o reconhecimento de que desafios fundamentalmente empíricos não podem ser resolvidos com sucesso utilizando uma abordagem tradicional de "controle". Assim, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando na maximização da habilidade da equipe de responder de forma ágil aos desafios emergentes.

Uma das grandes vantagens do Scrum, porém, é que não tem abordagem "receita de bolo" do gerenciamento de projetos exemplificado no Project Management Body of Knowledge ou PRINCE2, que tem como objetivos atingir qualidade através da aplicação de uma série de processos prescritos.

Product backlog e Sprint backlog

Um backlog é uma lista de itens priorizados a serem desenvolvidos para um software. O Product backlog é mantido pelo Product Owner e é uma lista de requisitos que tipicamente vêm do cliente. O Product Owner pode altera-lo a a qualquer momento, desde que os itens alterados não estejam na sprint. O Sprint backlog é uma interpretação do Product backlog e contém tarefas concretas que serão realizadas durante o próximo sprint para implementar alguns dos itens principais no Product backlog. O Product backlog e o sprint backlog são, então, duas coisas totalmente diferentes, o primeiro contendo requisitos de alto-nível e o segundo contendo informações sobre como a equipe irá implementar os requisitos do produto.

Planejamento de sprint

Antes de todo sprint, o Product Owner, o Scrum Master e a Equipe decidem no que a equipe irá trabalhar durante o próximo sprint. O Product Owner mantém uma lista priorizada de itens de backlog, o backlog do produto, o que pode ser repriorizado durante o planejamento do sprint. A Equipe seleciona itens do topo do backlog do produto. Eles selecionam somente o quanto de trabalho eles podem executar para terminar. A Equipe então planeja a arquitetura e o design de como o backlog do produto pode ser implementado. Os itens do backlog do produto são então destrinchados em tarefas que se tornam o backlog do sprint.


fontes: Wikipedia, Agile Software Development with Scrum by Ken Schwaber

terça-feira, 21 de abril de 2009

ScriptCase - Gerador de Código PHP

Estou tendo que trabalhar com uma ferramenta de geração de código chamada ScriptCase, um gerador de código baseado em PHP, então decidi colocar aqui os prós e os contras de usar esta ferramenta para que os próximos usuários já tenham uma idéia de quando usar e quando não usar o Scriptcase:

  • Prós: O ScriptCase é muito bom para fazer formulários e consultas mais simple no banco de dados ele promove uma interface intuitiva para estes processos incluindo até a opção de utilização de Ajax, assim sendo ele é ideal para sistemas internos e gerenciadores de portáis alem de outros aplicativos que só serão acessados internamente por uma empresa, por exemplo.
  • Contras: Não é recomendado para sistemas muito grandes e específicos demais, pois como todo gerador de código ele limita muito o programador as vezes tornando complicado, ou até inviável, a implementação de funcionalidades específicas desejadas. Além disso não é recomendado para sistemas externos que o público de fora da empresa vá acessar , pois apesar de possuir alguma customização do layout ainda não é o suciente para que possamos aplicar corretamentes as regras e heurísticas de IHC propostas pela literatura e impostas pelo mercado

Download da versão do ScriptCase trial: site da NetMake

domingo, 15 de fevereiro de 2009

Flagra do 1234567890 Unix no Google





A época Unix é uma data concreta a partir da qual se contam os segundos, o que dá como resultado uma nova medida de tempo, que usam sistemas operacionais como Unix ou Linux, ou algumas linguagens de programação. O tempo nesses sistemas operacionais se mede em segundos desde 1 de janeiro de 1970, quando o relógio marcava 00:00:00. Esta medida ou valor de tempo é conhecido também como o timestamp de Linux. A época Unix (ou em inglês Unix epoch) é então o espaço de tempo que começou com o início do ano 1970 e chega até nossos dias.

fonte: Infosfera



quarta-feira, 11 de fevereiro de 2009

AdoDB



PHP é uma linguagem que possui funções simples para manipulação de bancos de dados, as funções de mysql, postgre dentre outros são muito simples e intuitivas, porém imagine o seguinte caso você terminou um sistema em PHP para funcionar om um banco MySQL mas devido a algumas adversidades o banco de dados final desta aplicação será um SQLServer ou ORACLE.
Nesses casos caso você utilize as funções do PHP para acesso e manipulação do banco, teria que trocar todas as consultas e arquivos de conexão, para evitar problemas como esse podemos utilizar o AdoDB que é uma ferramenta que faz a interface entre seus aplicativos PHP e o banco, com uma grande vantagem, podemos trocar o tipo do banco de dados alterando apenas uma linha de um arquivo de configuração.

Download AdoDB: http://adodb.sourceforge.net

Para mais informações: Tutorial Mudando do MySQL para o AdoDB


terça-feira, 10 de fevereiro de 2009

Eclipse para PHP







O Eclipse PDT é uma boa opção para quem desenvolve sites nesta linguagem, ele alia as facilidades do Eclipse ao PHP de forma que se torna mais simples questões como o controle do projeto e a exibição das modificações dos arquivos no browser próprio da aplicação

link para download da versão all-in-one: http://ultrabaixador.blogspot.com/2009/02/php-para-eclipse.html

fonte: Ultrabaixador

Dica quentinha



Se você gosta de programar em PHP mas não tem muita paciência para criar os layouts das páginas aki vai uma dica, acesse http://www.oswd.org/designs/browse/ ,um site que contém diversos modelos de layouts prontos, com o layout feito podemos altera-lo de forma que fique ao nosso gosto e aí é so correr pra o PHP.


10 dicas para conservar seu celular


1. Lugar de celular NÃO é no banheiro.

O banheiro é um dos principais locais de perdas de celulares. A forma mais comum é derrubando no vaso sanitário.

Tomar banho com o aparelho no mesmo ambiente também não é bom. A umidade se infiltra no celular, e pode corroer circuitos eletrônicos - entre outras coisas.

2. Mantenha o aparelho longe de lugares sujos e/ou empoeirados.

Você pode riscar seu aparelho, ou fazer com que crostas de sujeira se acumulem em seus componentes eletrônicos. As consequências não são boas.

3. Na hora de limpar, não invente moda.

Como já foi dito, componentes eletrônicos são sensíveis a umidade. Os fabricantes aconselham que a limpeza seja feita apenas com um pano seco, mas sabemos que pano seco não limpa é nada.

Neste caso, usar um pouquinho de álcool não vai fazer mal nenhum ao aparelho. Mas você deve apenas umedecer o pano, de forma de que não haja riscos de acontecer a mínima infiltração.

4. Mantenha o aparelho longe de lugares muito quentes, ou muito frios.

O ideal é que o aparelho seja operado em ambientes com temperatura entre 15ºC e 30ºC.Temperaturas extremas podem prejudicar o desempenho da bateria, e até danificá-la permanentemente.

5. Não coloque mais nada no mesmo bolso.

Muita gente tem o costume de levar várias coisas no mesmo bolso em que carrega o celular. Certos objetos como chaves, podem riscar o aparelho. Se o seu aparelho possuir a tela exposta, ou pior ainda, sensível ao toque, os riscos são ainda maiores. Isso porque qualquer pressão pode acabar trincando a tela do dispositivo.

No caso das mulheres que costumam levar o celular dentro da bolsa, a dica se mantém. Cuidado também ao carregar perfumes, kits de maquiagem, e produtos que podem vazar, e estragar o aparelho.

6. Na praia, tome cuidados extras.

A praia é um ambiente que apresenta todos os tipos de perigos à maioria dos dispositivos eletrônicos. Sol, calor, areia, água e também maresia. Se for realmente necessário levar o seu aparelho para a praia mantenha ele dentro de uma capinha, e em sombra fresca.

De preferência aquelas capinhas do tipo “meia”, pois elas cobrem o aparelho por completo, protegendo-o da maresia e da areia.

7. Não derrube nem bata o celular.

Todo aparelho é feito para suportar pequenos impactos. Mas além de estragar a carcaça do celular, estes impactos podem romper circuitos internos do aparelho, e pior, danificar a bateria.

8. Tome cuidados específicos ao praticar esportes.

Assim como a água, o suor oxida componentes eletrônicos. Ao praticar esportes, tome precauções para que o celular não fique em contato com a pele, e consequentemente o suor.

9. Não ande com o celular na mão.

Além de estar correndo o risco de ser roubado, as chances de o aparelho cair no chão são bem maiores do que se estivesse no bolso, ou em uma capinha. Sem falar no fato de que a mão também sua, e aquece o aparelho.

10. Derrubei ele na água. E agora?

A primeira atitude a se tomar ao molhar o aparelho, é a de tirar a bateria do mesmo. A segunda é a da paciência.

Não pense que basta usar um secador de cabelos, e seu aparelho estará novo em folha. O secador pode retirar a umidade superficial, mas é a parte interna do aparelho que preocupa.

Nessas horas o melhor é mergulhar o celular em um potinho com arroz, e deixar ele lá por alguns dias. O arroz é ótimo para absorver a umidade, e pode ajudar a secar os componentes eletrônicos do aparelho.


fonte: TecnoBlog