Olá, mundo!

Bem-vindo ao WordPress. Esse é o seu primeiro post. Edite-o ou exclua-o, e comece a publicar!

Publicado em Sem categoria | 1 comentário

Criando uma variável dinâmica com JavaScript

Estou em um projeto que precisei criar variáveis que fossem de escopo global em javascript, para isso geralmente usamos o var antes do nome da variável.

Eu precisei criar essas variaveis dentro de um loop, mais precisamente um for

Ai veio a pergunta, como criar variáveis em JavaScript de forma dinamica. Pesquisando na internet encontrei algumas formas. Porém a unica forma que funcionou foi utilizando a função eval();

var data = "testVariable";
eval("var temp_" + data + "=123;");
alert(temp_testVariable);

Isso foi bem simples, e resolveu o meu problema. Retirei o exemplo e a idéia de realizar o post do seguinte link: http://www.hiteshagrawal.com/javascript/dynamic-variables-in-javascript

Publicado em JavaScript | 1 comentário

10 crimes de usabilidade que você não deve cometer

Ao longo do tempo convenções e melhores práticas tem sido desenvolvidas para ajudar a melhorar de forma geral a usabilidade de websites durante a construção do layout e da codificação. Este post destaca os 10 crimes de usabilidade mais cometidos seja por erro ou negligencia na área de web design e provê uma solução alternativa para ajudar a melhorar a usabilidade do seu web site.

1º – Label de formulário não associado à campos

Label de formulário não associado à campos

Label de formulário não associado à campos

Usando o atributo ‘for’ permite que quando o usuário clique no label automaticamente é selecionado o campo input. Isso é muito importante para campos checkbox e radio pois permitem uma maior área clicável.

2º – Logo não faz link para a página inicial da empresa

Logo não faz link para a página inicial da empresa

Logo não faz link para a página inicial da empresa

Linkar o logo do site para a página inicial tornou-se uma prática comum e atualmente os internautas esperam que ao clicar no logo, ele seja redirecionado para a página inicial. Também vale mencionar que é legal o logo aparecer no canto superior esquerdo.

3º – Não especificar o estado de link visitado

Não especificar o estado de link visitado

Não especificar o estado de link visitado

O estado de link visita é o que o próprio nome diz. Este não é um dos mais avançados seletores do CSS, mas é quase sempre esquecido. Dar uma dica a um usuário sobre qual link ele já clicou é sempre uma boa!

4º – Não indicar um campo formulário ativo

Não indicar um campo formulário ativo

Não indicar um campo formulário ativo

Você pode usar o seletor :focus em diversos elementos, mas ele é super acessível quando usado para inputs e textareas para indicar que determinado campo está ativo. Adicionar estilo CSS, tipo destacar a borda ou alterar sutilmente a cor de fundo do elemento.

5º – Uma imagem sem uma descrição no atributo alt

Uma imagem sem uma descrição no atributo alt

Uma imagem sem uma descrição no atributo alt

Isto é desviar um pouco no campo da acessibilidade, mas isso continua sendo algo importante a se considerar. Lembre-se sempre de adicionar o atributo alt nas suas imagens, ele será usado somente com proposito decorativo, você pode até deixar o atributo vazio, mas ele sempre deverá existir. Quando usar uma imagem como link, preencha a descrição indicando para onde este link levará.

6º – Uma imagem de fundo sem uma cor de background

Uma imagem de fundo sem uma cor de background

Uma imagem de fundo sem uma cor de background

É comum o uso de imagens de fundo com texto escrito sobre elas, mas vale a pena lembrar que as imagens de fundo podem ser desabilitadas pelos usuários, e isso faz-se necessário que uma cor com tom similar seja colocada como fundo para que o texto não se torne ilegível.

7º – Usando longos textos chatos para conteúdo

Usando longos textos chatos para conteúdo

Usando longos textos chatos para conteúdo

Não há nada mais irritante do que chegar em um website e encontrar um texto longo. Divida o seu conteúdo com imagens, cabeçalhos e sessões claras para manter o texto compreensível e que dê gosto de ler.

8º – Sublinhar coisas que não são links

Sublinhar coisas que não são links

Sublinhar coisas que não são links

Todos sabem que um texto sublinhado ou com uma cor diferente é provável que seja um link. Não confunda as pessoas sublinhando texto em outro lugar. Para dar destaque a certas palavras tente usar as tags <strong>(negrito) ou <em>(enfâse).

9º – Falando para as pessoas clicarem aqui

Falando para as pessoas clicarem aqui

Falando para as pessoas clicarem aqui

As palavras “clique aqui” cercaram a internet desde o seu início, mas tem sido evitadas em favor de opções mais usáveis. Usar as palavras “clique aqui” obriga ao usuário ler toda a sentença para saber o que acontecerá ao clicar. Em vez disso, é muito melhor que você descreva o que acontecerá na âncora do link.

10º – Usar texto justificado

Usar texto justificado

Usar texto justificado

Esta é outra dica que está indo um pouco mais a fundo em acessibilidade mas não deixa de ser um ponto important a considerar. Texto justificado pode fazer com que se olhe para o texto de forma pura e quadrada, mas isso pode gerar certos problemas com leitura, particularmente para usuários disléxicos que podem encontrar problemas para identificar palavras devido ao espaçamento nos paragrafos.

Este texto foi criado originalmento por Chris Spooner e pode ser encontrado em 10 Usability Crimes You Really Shouldn’t Commit (inglês)

Espero que aproveitem este post.

Paulo Fernandes

@paulofernandesj

Publicado em Desenvolvimento | Com a tag , , , , , | 1 comentário

Iniciando o desenvolvimento de aplicativos em PHP para Twitter usando o TwitterOAuth

TwitterOAuth é uma classe desenvolvida em PHP pelo @abraham que faz a comunicação com a API do twitter e facilita muito o nosso trabalho quando queremos desenvolver uma aplicação para o twitter.
Minha motivação para este artigo foi a criação do aplicativo WhoUnfollowMe.

Abaixo segue o passo a passo para utilização do TwitterOAuth.

Primeiramente, acesse o github do @abraham e faça o download da última versão da classe, no momento da criação deste artigo a versão é 0.2.0-beta3 que pode ser baixada em http://github.com/abraham/twitteroauth/downloads.

Após o arquivo baixado, você precisa instalar a classe na sua aplicação, isso é a parte mais fácil. Basta copiar a pasta twitteroauth para a sua aplicação.
No arquivo baixado, você tem diversos arquivos .php, incluindo um arquivo de testes, o que facilita o entendimento de como usar algumas funcionalidades da aplicação.

Para utilizar a API do Twitter, você precisa ter as chaves de uso com o Twitter, se ainda não tem, sugiro que leia este outro artigo Como obter as chaves de acesso para utilizar a API do Twitter

Dessa forma, você estará pronto para usar a classe twitteroauth.

Coloque nos comentários, funcionalidades que gostaria de ver, para que eu possa criar novos artigos.

Bom codding! :)

Paulo Fernandes
@paulofernandesj
PJ Tecnologia

Publicado em Desenvolvimento | Com a tag , , , | Deixar um comentário

Como obter as chaves de acesso para utilizar a API do Twitter

Este artigo tem como objetivo mostrar criar e obter as chaves de acesso a API do Twitter.

Acesse o site do Twitter e faça login com a sua conta. Após logado acesse o seguinte endereço http://dev.twitter.com

Você verá a seguinte tela

Seria interessante ler o Get Started, porém se quiser ir direto, clique em 2. Register an App, o segundo item, preencha o formulário completo conforme eu fiz.

Após isso clique em Register App e aceite os termos do Twitter. Você precisa de tudo isso, pois o twitter mudou a forma de autenticação da API, sendo agora obrigatório o uso do OAuth

Você verá a seguinte tela

Anote as chaves que mostrei na imagem (Consumer key e Consumer secret) e depois clique no link indicado, dessa forma, você conseguirá autenticar na sua aplicação e realizar os procedimentos necessários. Com os dados do link que mostrei Access Token (oauth_token) e Access Token Secret (oauth_token_secret) você conseguirá realizar os procedimentos que desejar usando a SUA conta do twitter. Esses dados, você pode solicitar do seu usuário via OAuth. Outro artigo explicará isso :)

Dessa forma, você tem as chaves para utilização da sua aplicação, basta implementar o código e ser feliz.

Paulo Fernandes
@paulofernandesj
PJ Tecnologia

Publicado em Desenvolvimento | Com a tag | 2 comentários

Recuperando a lista de todos os seus seguidores (followers) do twitter com o twitteroauth

Criei um pequeno aplicativo que descobre quem deixou de me seguir no twitter  (whoUnfollowMe) e para isso precisei descobrir quem são os meus seguidores. Este aplicativo é bem simples, você faz o seu cadastro no site, toda noite, um programa é executado no servidor e se alguém deixou de te seguir, ele avisa você por DM.

Este aplicativo ainda não está todo pronto, portando qualquer erro deve ter paciência. Mas caso tenha interesse, me siga no twitter ( @paulofernandesj ) que eu te notificarei das funcionalidades implantadas. whoUnfollowMe

Vamos ao código para descobrir os seus seguidores (followers).

Primeiramente entre no GIT do @abraham e faça download do twitteroauth (http://github.com/abraham/twitteroauth)

Crie uma aplicação no twitter para obter as chaves de autorização. Sugiro seguir este meu outro artigo Como obter as chaves de acesso para utilizar a API do Twitter.

Os exemplos do @abraham se auto explicam e são bem simples. Para comprovar isso, veja como pode-se pegar todos os seus seguidores

$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
  $access_token['oauth_token'], $access_token['oauth_token_secret']);

$content = $connection->get('account/verify_credentials');

$totalFollowers = $content->followers_count;

$cursor = -1;

$qtd = ceil($totalFollowers/100);

for($z=0;$z<$qtd;$z++){
	$result = $connection->get('statuses/followers', array('cursor' => $cursor));
	$cursor = $result->next_cursor_str;
	$user = $result->users;
	$total = count($user);
	for( $i=0;$i<$total;$i++ ){
		$users[] = $user[$i]->screen_name;
	}
}

Este código retorna um array com todos os seus seguidores. Viu como é simples??

PS: A limitação da aplicação é de 35000 seguidores

Até o próximo

Paulo Fernandes

@paulofernandesj

WhoUnfollowMe

Publicado em Desenvolvimento | Com a tag , | Deixar um comentário

Primeiro dia com o Python

Hoje iniciei meu desenvolvimento com Python, tomei essa iniciativa após o oosjam

Aqui será uma espécie de passos que eu segui.

Acessei o site http://www.python.org e fiz o download da versão 2.7 para Windows e comecei a leitura desse link http://docs.python.org/tutorial/index.html, li somente a primeira página enquanto rodava o executável MSI, mandei instalar na pasta padrão C:PYTHON27

Como gosto da parte prática tentei ir direto para o “Hello World” :D

Primeiro Problema, como configurar o windows para entender o Python :(

No tutorial do site do Python, o segui. Abri o prompt de comando e digitei python

||    ‘python’ não é um comando reconhecido

Tive que adicionar o caminho de instalação ao path do windows

||    set path=%path%;C:python27

Depois disso, digitei python no prompt e deu certo :) . Abriu uma interface no prompt e eu fiz o meu primeiro “Hello World” foi até que simples, veja:

||    print ‘hello world’
||    print “hello world”

Ainda não aprendi o suficiente, mas funcionou com aspas duplas e com aspas simples, algo interessante do Python é que não precisa de ; no final da linha, basta pular de linha que ele entende que é uma nova instrução.

Como eu já sabia, arquivos Python tem a extensão .py

Então, pensei, vou salvar um arquivo e tentar executá-lo. Criei um arquivo em uma pasta qualquer e quando salvei como .py no notepadd++ e fechei o arquivo e fui na pasta vê-lo. Para minha surpresa, o arquivo já alterou o icone, informando que era um arquivo executável e que o windows reconhecia o seu tipo. Clique duas vezes no arquivo e rapidamente, o prompt de comando abriu e fechou. Pensei comigo mesmo, deve ter algo de errado com o arquivo né? Ai fiz a seguinte “burrada”, coloquei 2000 linhas com a seguinte instrução
||     print “hello”
||     print “hello”
||     print “hello”
||     print “hello”
||     …

Cliquei duas vezes novamente e percebi que ele estava imprimindo várias vezes. Acima disse que fiz a “burrada”, porque eu bem que poderia ter criado um for, que é muito mais elegante do que um CTRL+C e CTRL+V. Problema!!!!

Segundo problema, como se cria variavel em Python??
Bem mais simples do que pensei basta escrever a variavel e usar o sinal de ‘=’ para atribuir o valor
||    i = 0

Maravilha, e agora vamos ao for, ops! mais um problema

Terceiro problema, como se cria um for
Fiquei feliz, descobri rapidinho, um amigo (von.juliano@gmail.com) me indicou o livro “Beggining Python – From Novice To Professional (Magnus Lie Hetland)”, algo interessante de ser mencionado é que no Python não tem abre e fecha chaves, tudo é na base da identação :)   Acredito que dessa forma seja até melhor para se programar, afinal tem gente que abre as chaves na mesma linha e outros abrem na linha de baixo do método, mas isso é outra história.
||     for numero in range(1,20000):
||         print numero

Resultado:
||       1
||       2
||       3
||     ….

Mas agora eu queria fazer algo para melhorar um pouco e deixar mais próximo da “vergonha” do CTRL+C e CTRL+V que fiz acima, então resolvi concatenar variavel com a String, ops!!! outro problema

Quarto problema, como concatenar variavel em Python
Com o livro essa foi facinho, basta utilizar a virgula, isso mesmo ‘,’ a virgula.
Como agora estou com o livro, acho que os problemas vão diminuir :) “Tomara!”
||    for numero in range(1,20000):
print “hello”,numero

Resultado:
||     hello 1
||     hello 2
||     hello 3
||     ….

Além da virgula ‘,’ concatenar ela serve para dar um espaço em branco, mas como que se concatena sem espaço??

Quinto problema, concatenar um numero com uma string sem espaço em branco?
Esse foi mais complicado, porém aprendi diversas outras coisas, mas no final descobri com se faz, reparem na crase ‘`’
||    for numero in range(1,20000):
||        print ‘hello’+`numero`

Resultado:
||     hello1
||     hello2
||     hello3
||     ….

O que aprendi que comentei acima é que se eu quisesse repetir o campo “hello” varias vezes eu poderia simplesmente multiplicar pelo valor que eu quisesse, exemplo:
||    for numero in range(1,20000):
||        print ‘hello’*5

Resultado:
||     hellohellohellohellohello
||     hellohellohellohellohello
||     hellohellohellohellohello
||     ….

Outra coisa que aprendi no primeiro dia de Python foi como executar um script direto no console ( prompt de comando ), sem a necessidade de clicar duas vezes no arquivo
Vá até a pasta que o arquivo está instalado e digite
||    python hello.py
ou
||    hello.py

Esse foi o estudo que realizei com Python no primeiro dia. Espero amanha ter tempo para investir mais um tempo e testar outras coisas, como por exemplo, mais laçõs de repetição, condicionais e o que mais surgir de dúvida.

Peço que me ajudem a erros que cometi acima, e fatos que ainda não aprendi e quais podem ser meus próximos passos.

Até mais

Paulo Fernandes
@paulofernandesj

Publicado em Desenvolvimento | Com a tag , | Deixar um comentário

SCRUM em 2 minutos

O texto abaixo foi criado por Paulo Fernandes (eu) e Jefferson Lira como parte do artigo Como atender os requisitos arquiteturais de software usando métodos ágeis como SCRUM e XP.

O SCRUM é um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto, a quem diga que esta mais para um framework que uma metodologia, ou até mesmo mais para atitude que um processo.

Para que o SCRUM seja utilizado com êxito, cada pessoa envolvida deve cumprir com seu papel, seguindo corretamente todos os processos, e a fim de viabilizar, utilizar como apoio algumas das ferramentas que lhe são oferecidas. Entretanto, para que seja possível seguir corretamente todos os processos, primordialmente é necessário que todos estejam de acordo com a cultura envolvida.

Segue abaixo uma breve descrição sobre os três papeis relacionados ao SCRUM:

Product Owner: responsável por garantir o retorno de investimento, este deve conhecer as necessidades do cliente;

Scrum Master: responsável por remover os impedimentos do time e garantir o uso do SCRUM;

Time (Equipe): equipe de desenvolvimento multidisciplinar e auto-gerenciável, responsável por produzir produto com qualidade e valor para o cliente.

As ferramentas como: Product Backlog, Sprint Backlog, Burndown Chart e Scrum Board são de grande utilidade durante o ciclo de vida do SCRUM. Para um melhor entendimento, segue abaixo uma breve descrição:

Product Backlog: uma lista com todos os requisitos que o Product Owner deseja, sem muitos detalhes técnicos, essa lista é ordenada por prioridade pelo Product Owner;

Sprint Backlog: contém uma lista com as tarefas decompostas sobre os itens extraídos do Product Backlog que foi definida no Sprint Planning Meeting e que deverá ser entregue ao Product Owner.  Estas atividades não devem durar mais de 2 dias ou 16 horas;

BurnDown Chart: gráfico que mostra o trabalho da equipe dia a dia, avaliando assim se o Sprint está atrasado ou não. Caso o gráfico demonstre que a equipe acabará o Sprint antes, o Product Owner é consultado e novas funcionalidades são incorporadas àquele Sprint;

Scrum Board: é um quadro onde deverá contemplar todas as tarefas que serão realizadas dentro de um Sprint e listadas de acordo com as prioridades de cada item.

Existem três tipos de cerimônias no SCRUM, Sprint Planning Meeting, Daily Scrum Meeting e Sprint Review Meeting, estes três tipos de evento caracterizam bem o ciclo de vida de cada Sprint: início, meio e fim. Segue abaixo uma breve descrição sobre as cerimônias:

Sprint Planning Meeting: encontro para planejar o que será feito no Sprint. A equipe acessa o Product Backlog e detalha de forma mais ampla as atividades que serão executadas no Sprint de acordo com suas prioridades, avaliando tempo e complexidade. Após definido o que será feito, o Sprint Backlog é gerado;

Daily Scrum Meeting: encontros diários, com duração em média de 15 minutos, a idéia de ser uma reunião em que cada membro da equipe deve responder 3 perguntas: O que fiz ontem? O que farei hoje? O que está impedindo de que alcance o objetivo? Essa reunião é liderada pelo ScrumMaster;

Sprint Review Meeting: encontro realizado quando o Sprint chega ao fim. Este encontro é dividido em duas partes, na primeira parte é demonstrado ao ProductOwner quais atividades definidas no Product Backlog foram realizadas, o Product Owner lidera esse encontro e pode chamar todos os interessados no projeto. Após a demonstração o Product Owner e os interessados no projeto atualizam e repriorizam o Product Backlog, definindo assim o próximo Sprint. Finalizada essa primeira parte o ScrumMaster toma a liderança e começa uma reunião com a equipe, onde a equipe avalia o que foi realizado positivamente e negativamente no Sprint, também avaliam o que poderia ser mudado para melhorar o próximo Sprint.

O Sprint é um conjunto de tarefas a serem executadas em um determinado tempo. A Figura 1 ilustra o ciclo de vida do SCRUM.

Ciclo de Vida do SCRUM

Ciclo de Vida do SCRUM

Publicado em Metodologia | Com a tag , , , | 1 comentário

Arquitetura de Software em 2 minutos

O texto abaixo foi criado por Paulo Fernandes (eu) e Jefferson Lira como parte do artigo Como atender os requisitos arquiteturais de software usando métodos ágeis como SCRUM e XP.

A arquitetura do software é um ponto de extrema importância no desenvolvimento e deverá ter uma maior atenção quando sua existência é de grande complexidade para o sucesso do software, pois a definição desta poderá não ser a mais apropriada para o negócio. A má escolha de uma arquitetura de software fará com que o projeto possa ser um desastre, já a melhor escolha propicia uma maior chance para o sucesso do projeto. Abaixo evidenciamos definições sobre o que é a arquitetura de um software.

A arquitetura de software de um programa ou de um sistema é a estrutura ou estruturas do sistema, que incluem elementos de software, propriedades externas e as suas relações.

A arquitetura de software define a estrutura básica do sistema. A arquitetura é modulada em um alto nível de funcionalidades do sistema, gerenciamento e distribuição de dados, qual plataforma será usada, etc.

Arquitetura de software é a estrutura dos componentes do sistema/programa, seus relacionamentos, princípios e diretrizes para o projeto e sua evolução.

Devido as definições citadas acima, formalizamos que não existe uma definição mundial sobre o que é a arquitetura de software. As definições no geral enfatizam que a arquitetura é a descrição do sistema e a soma de pequenas partes dele, e como essas partes se relacionam e cooperam entre si para executar o trabalho do sistema. A qualidade e longevidade do software são determinadas pela sua arquitetura.

Não podemos confundir a arquitetura do software com o design. A arquitetura se preocupa com a seleção de elementos arquiteturais, suas iterações e restrições, já o design são as atividades que se preocupam com a modularização e detalhamento de interfaces, algoritmos, procedimentos e tipos de dados que darão suporte satisfatório a arquitetura.

Um software tipicamente contempla requisitos funcionais e não funcionais, sendo que muitas das vezes um deverá refletir o comportamento do outro. Os requisitos funcionais descrevem as funções que o software deve ser capaz de realizar. Já os requisitos não-funcionais descrevem as qualidades e restrições de como o sistema realiza suas funções. Um software, portanto, deve exibir atributos de qualidade que atendam aos seus requisitos.

O ideal é que os atributos de qualidade do software sejam identificados e qual a sua influência na arquitetura, por fim relacionar estes atributos as decisões arquiteturais que os proporcionam.

Com um modelo de apoio para definir e organizar os atributos do software importantes para a avaliação de sua qualidade existe a norma ISO 9126. Esta norma é um padrão internacional para avaliação da qualidade do software. Os atributos utilizados para avaliar a qualidade do software são os seguintes:

Funcionalidade: é a capacidade do software realizar as funções que foram especificadas;

Confiabilidade: é a capacidade do software ser seguro e tolerante a falhas;

Usabilidade: é a medida da facilidade do usuário executar alguma funcionalidade do sistema;

Eficiência: é a capacidade do sistema alcançar a resposta dentro do período de tempo especificado, está relacionado tanto ao desempenho quanto aos recursos usados;

Manutenibilidade: é a medida de quanto o software é fácil ser alterado;

Portabilidade: é a medida da facilidade do software ser portado para outro ambiente.

Tendo definido as decisões e informações arquiteturais, seja performance, escalabilidade, arquitetura de referência, segurança, ou outros itens, estas devem ser armazenadas em um documento. O documento mais comum que encontramos é o DAS (Documento de Arquitetura de Software). Este documento é de grande utilidade para guiar a equipe de desenvolvimento.

Publicado em Arquitetura | Com a tag , | Deixar um comentário

eXtreme Programming (XP) em 2 minutos

O texto abaixo foi criado por Paulo Fernandes (eu) e Jefferson Lira como parte do artigo Como atender os requisitos arquiteturais de software usando métodos ágeis como SCRUM e XP.

Extreme Programming ou XP como é chamado é um processo de desenvolvimento de software baseado em valores de simplicidade, comunicação, feedback e coragem. O objetivo do XP é assegurar que o cliente receba o máximo de valor a cada dia de trabalho da equipe de desenvolvimento. Ele é organizado em torno de valores e práticas que atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto retorno do investimento em software.

Os quatro valores fundamentais em que o XP se baseia são:

Feedback: fazer com que o cliente conduza o desenvolvimento diariamente a fim de garantir que a equipe direcione toda a sua atenção para aquilo que de fato irá gerar mais valor;

Comunicação: evitar o gasto de um valioso esforço na tentativa de trocar informações por meios de extensos documentos escritos que freqüentemente são interpretados de forma incorreta ou incompleta;

Simplicidade: garantir que seja desenvolvido apenas o suficiente para atender as necessidades atuais do cliente, desprezando qualquer funcionalidade não essencial;

Coragem: devido ao XP ser uma metodologia de software que se baseia em diversas premissas que contrariam os processos tradicionais de desenvolvimento de software, é preciso que todos da equipe tenham coragem para adotá-las e acreditar que, utilizando as práticas e valores do XP, serão capazes de fazer com que o software evolua com segurança e agilidade.

O XP tem alguns pontos fortes que auxiliam no processo de desenvolvimento, a citar:

Cliente Presente: a presença objetiva viabilizar a simplicidade dos processos, facilitar a comunicação com os desenvolvedores e permitir um ciclo continuo e rápido de feedback;

Jogo do Planejamento: reunião com o cliente a cada nova release a fim de definir quais funcionalidades devem ser implementadas de acordo com suas priorizações;

Stand Up Meeting: reunir com a equipe de desenvolvimento a cada manhã para avaliar o trabalho que foi executado no dia anterior e priorizar aquilo que será implementado no dia que se inicia;

Refactoring: é utilizado para manter sempre o software o mais simples possível de ser manipulado sem que estas alterações no código possam afetar as funcionalidades que já estão implementadas;

Código Coletivo: a idéia é que o código seja comunitário a todos os desenvolvedores, permitindo assim que todos possam alterar o código quando necessário sem ter que pedir autorização de outra pessoa;

Código Padronizado: a fim de permitir que o sistema seja o mais homogêneo possível, a equipe deve estabelecer padrões de codificação, viabilizando assim a facilidade de qualquer manutenção futura;

Metáfora: técnica para transmitir idéias de formas simples, através de uma linguagem comum que é estabelecida entre a equipe e o cliente;

Ritmo Sustentável: é recomendável que os desenvolvedores trabalhem apenas 8 horas por dia a fim de garantir o máximo de rendimento e permitir a produção de software com a melhor qualidade possível;

Design Simples: optar sempre pela simplicidade do design, viabilizando a agilidade durante o desenvolvimento, dado que o feedback deve ser rápido ao cliente;

Integração Contínua: a equipe de desenvolvimento deve garantir a integração de seus códigos com o restante do sistema diversas vezes ao dia;

Releases Curtos: visa à disponibilidade de funcionalidades rapidamente ao cliente para que ele possa utilizar o software no dia-a-dia e se beneficiar dele.

Desenvolvimento Guiado pelos Testes: visa o desenvolvedor escrever testes para cada funcionalidade antes mesmos de começar a codificá-las, possibilitando eles aprofundar o entendimento das necessidades do cliente;

Abaixo a Figura demonstra as práticas e os principais ciclos do XP:

Práticas e princípios do XP

Práticas e princípios do XP

A idéia da utilização do XP é voltada para projetos cujos requisitos são vagos e mudam com freqüência, desenvolvimento de sistema orientado a objeto, equipes pequenas e de preferência até 12 desenvolvedores. Este desenvolvimento deverá atender o modo iterativo ou incremental, objetivando que o sistema comece a ser implementado logo no início do projeto e ao longo do tempo adquirindo novas funcionalidades.

Publicado em Metodologia | Com a tag , , , | Deixar um comentário