As Metodologias Ágeis de desenvolvimento de software estão em evidência nos últimos tempos. O interessante é observar o porquê dessa evidência.

Essas metodologias apresentam práticas que não são novidades, como a utilização de um ciclo de vida iterativo e incremental, por exemplo, que é também, encontrada no ciclo de vida do framework RUP (Rational Unified Process) e em outras metodologias mais “tradicionalistas”. Por muito tempo as empresas, por puro modismo, passaram a utilizar processos baseados em RUP e obtendo consequências alarmantes quando, por falta de bom senso e não por conta da metodologia (Vale ressaltar!), emperram o seu processo na burocracia e na preocupação em cumprir a risca o próprio processo.

Um processo de desenvolvimento de software é um conjunto de atividades distribuídas em várias fases de um ciclo de vida, que possuem o objetivo geral de se produzir um software de qualidade. Por muito tempo as empresas que desenvolvem software, sejam empresas que tenham o software como fim ou como meio, viveram no meio de um caos que pode até mesmo ser o que eu chamo de “caos em falso controle”. Nesse “caos em falso controle” as empresas possuem um processo bem denifido e até bem conhecido por seus funcionários, mas ainda sim não conseguem obter qualidade nos seus produtos, sofrendo ainda com estouros de prazos como regra e não exceção, o que também tem como consequência estouro nos custos planejados como regra, custos que acabam por serem repassados muitas vezes para o cliente.

Em 2001 ocorreu um movimento em que envolveu 17 pessoas, dentre essas engenheiros de software, consultores e desenvolvedores que criticavam algumas práticas de Engenharia de Software. Então essas pessoas assinaram um manifesto que propunha alguns valores para o desenvolvimento ágil de software, são os valores:

  • Indivíduos e interação entre eles mais que processos e ferramentas
  • Software em funcionamento mais que documentação abrangente
  • Colaboração com o cliente mais que negociação de contratos
  • Responder a mudanças mais que seguir um plano
Movimento Ágil

Movimento Ágil

Esses valores apresentados no manifesto ágil são os prováveis motivos da evidência das metodologias ágeis,visto que entre as pessoas que assinaram o manifesto encontram-se os criadores de várias metodologias como XP, SCRUM, entre outras. Eles declararam que mais importante que seguir um processo massivo apenas por que a empresa o adotou é saber o que as pessoas pensam disso, pensar em motivar as pessoas que desenvolvem os projetos de software, alimentar a comunicação, a franqueza e a colaboração dessas pessoas entre si de modo que todos entendam que possuem um objetivo comum, desenvolver um produto de qualidade. Mais importante do que fazer documentação em excesso é desenvolver um software que funcione corretamente e atenda as espectativas do cliente. É importante colaborar com o cliente, mais do que negociar novos contratos. Eles entendem que mudança é algo bom, desde que essa mudança agregue valor ao produto para o cliente. Relizar mudanças envolve obter um software de qualidade, vendo qualidade do ponto de vista da satisfação do cliente.

Como disse antes, algumas práticas das metodologias ágeis não são novidades, mas o novo foco apresentado pelos valores e princípios do movimento ágil agradam e estão dando muitos resultados, porém se as empresas derem importância apenas as práticas apresentadas pelas diversas metodologias, esquecendo dos valores e princípos do Agilemanifesto.org, essas também tenderam a ser mais algumas metodologias que não funcionam e causam novos problemas, e serão apresentadas como péssimos exemplos por futuros “xiitas” que terão novas metodologias como a “bala de prata” que resolve todos os problemas da engenharia de software.

Bom pessoal, primeiramente vamos fazer o download do executável de instalação do Python no Windows (XP ou Vista). No momento a versão estável é a 2.5.2, então vamos acessar o endereço http://www.python.org (o link está na barra ao lado) e abaixo do menu lateral esquerdo você vai encontrar “Quick Links (2.5.2)” e logo abaixo “Windows Installer ”, clique nesta opção e o download iniciará. Caso não inicie clique no link:

http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi

Site Python.org

Com o download concluído vamos iniciar a instalação, que não apresenta dificuldades. É só na boa e velha facilidade do windows com o bom e velho  Next, Next, …., Finish.

Após instalado pressione a tecla windows, posicione o cursor do mouse sobre “Programas” ou “Todos os Programas” e procure a pasta Python 2.5. Você deverá ver algo semelhante a imagem abaixo:

Python Instalado

Visto que não há mistérios vamos direto ao que mais interessa que é adicionar Python as Variáveis de Ambiente.

Pressione no seu teclado a tecla windows juntamente com a tecla Pause/Break.

No Windows XP abrirá a janela “Propriedades do Sistema” então clique na aba “Avançado”.

No Vista abrirá a janela “Sistema”, então no menu “Tarefas” que fica no canto superior esquerdo clique em “Configurações Avançadas do Sistema”, então chegará na janela “Propriedades do Sistema” e já na aba “Avançado”.

A partir daqui os procedimentos são equivalentes aos dois.

Janela propriedades do sistema

Clique no botão “Variáveis de Ambiente…” e em “Variáveis do Sistema” selecione path e clique em “Editar”.

Janela Variáveis de Ambiente

Adicione no campo “Valor da variável” um ponto-e-virgula(;) + diretório onde foi instalado o seu Python, geralmente “;C:\Python25”.

Digitando Valor da Variável

Clique em OK em todas as janelas que você abriu nesse processo e abra o prompt de comandos do seu Windows.

Windows + R >>> Digito: cmd e pressiono [enter]

Abre o prompt e digite “python”. Verifique se o que aparece é semelhante com a imagem abaixo.

Prompt de Comandos do Windows

Se for digite

>>> var1 = 1

>>> var2 = 3

>>> var1 + var2

e veja o resultado 4.

Pronto! Python instalado e configurado em Ambiente Windows.

Qualquer dúvida, correção ou sugestão é só comentar. Espero seja útil.

Abraços!

Baixe aqui o Tutorial em PDF.

Python: Qualidade e Produtividade

Publicado: sexta-feira, 02-05-2008 em Python, Software Livre
Tags:

Logo Python

Objetivo deste post é apresentar Python como uma alternativa a outras linguagens de programação. Segundo a Linux Magazine, Python é a linguagem de programação que mais cresce em popularidade e número de programas escritos. Esse crescimento se deve ao esclarecimento da seguinte pergunta encontrada em várias bibliografias sobre essa linguagem:

Porque as pessoas usam Python?”

Mark Lutz estuda, ensina e trabalha com Python a mais de 10 anos e é autor de “Learning Python”, uma das mais recomendas bibliografias sobre o tema e que já vai na sua terceira edição. Em sua obra, Lutz afirma que tudo indica que existem mais de 1 milhão de usuários de Python no mundo. Nos últimos 10 anos ele já ensinou Python a aproximadamente 200 grupos e 3000 alunos, e a partir de tanta experiência tenta explicar, também, a pergunta acima.

Abaixo vou tentar resumir as explicações de Lutz, para os fatores apresentados por seus alunos:

Qualidade de Software

O código do Python é projetado para ser legível, reutilizável e de fácil manutenção, o que quer dizer que o foco da linguagem é a legibilidade, coerência e qualidade de software em geral. Isso a diferencia das demais linguagens de scripting do mundo, mostrando que ela é muito mais que uma tradicional linguagem de scripting. A uniformidade de Python a torna fácil de entender mesmo que você não programe com ela. Além disso, Python tem suporte aos mais avançados mecanismos de reuso de software, com Programação Orientada a Objetos (POO).

Produtividade no Desenvolvimento

Python apresenta maior produtividade quanto a escrita de programas em linguagens compiladas estaticamente como C/C++ e Java. O código Python é equivalente a aproximadamente 1/3 (um-terço) ou 1/5 (um-quinto) do tamanho do código escrito em C/C++ ou em Java para uma mesma aplicação. Isso significa menos tempo perdido com tipos, com debuger e com manutenção. Os programas Python são executados em tempo real, sem necessidade de compilação ou de ligação com outras ferramentas, fazendo com que o programador impulsione mais velocidade.

Portabilidade de Programas

Portabilidade é uma característica de programas que podem ser executados sobre mais de uma plataforma de computadores, isto é, programas que podem ser executados sobre diferentes sistemas operacionais, como Linux e Windows, sem a necessidade de ser compilado para um ou outro sistema operacional. Além disso Python oferece vários codificações portáveis de interface gráfica com usuário, acesso a banco de dados, sistemas baseados na web, sistemas para dispositivos móveis, entre outras. Mesmo interfaces de Sistema Operacional pode ser portável em Python, além de navegadores de diretórios que podem ser eventualmente.

Bibliotecas de Apoio

Python trás uma pré coleção de funções, módulos e classe, e várias funcionalidades portáveis conhecidas como biblioteca padrão. Mas pode também acrescentar programas de terceiros.

O Python 3 virá com ferramentas de desenvolvimento de websites, programação numérica, acesso a porta serial, desenvolvimento de jogos, e muito mais. A estensão NumPy, por exemplo, tem sido descrita como uma forma livre e mais poderosa, equivalente ao sistema MatLab de programação numérica.

Integração de Componentes

Os scripts de Python podem facilmente se comunicar com outras partes de um aplicação usando uma variedade de mecanismos de integração. Hoje Python pode invocar bibliotecas C e C++, chamar programas C e C++, se integrar com componentes Java, pode se comunicar com frameworks como COM e .NET, podem interagir através de redes com interfaces como SOAP, XML-RPC, e CORBA (Webservices).

Aproveitamento

As facilidades e auto-ferramentas, fazem do Python mais prazerosa do que trabalhosa e extressante. Embora este seja um benefício intangível, o seu efeito sobre a produtividade é um trunfo importante.

Lutz frisa mais Qualidade de Software e Produtividade, que são qualidades que indicam que Python será ainda mais poderosa no futuro, isso se explica, por que existem cada vez mais programadores utilizando esta linguagem, muito mais empresas utilizando, com isso terá mais investimento em melhorias.

Referência Principal

Learning Python 3rd Edition

Mark Lutz

Outubro de 2007

No próximo post pretendo trazer uma comparação do código e do uso de memória de uma plicação Python e Java.

Os Softwares livres e Open Source estão cada vez mais ganhando espaço na esfera de TI, em todas as suas localizações, seja no setor público (governos e instituições públicas), seja nas ONGs, no setor comercial ou industrial. Eles chegam como alternativas de baixo custo e que não deixam nada a desejar ao domínio cultural do software proprietário.

Essa tendência está provocando uma grande mudança no mercado de TI mundial, uma mudança no tratamento do desenvolvimento de software, que deixa de ter o seu código-fonte como propriedade intelectual do programador ou da empresa desenvolvedora, e passa a ser distribuído e modificado livremente por quem tiver interesse, seja uma pessoa física ou uma empresa multinacional, de acordo com suas necessidades, fazendo com que o mundo dos negócios comece a tratar o software não como produto e sim com serviço.

As empresas de TI estão mudando de estratégia, deixando de obter a sua lucratividade com licenças por seus softwares proprietários e passando a oferecer serviços de suporte e consultoria por seus softwares livres.

Hoje se tem solução para quase tudo a base de softwares livres, e como se não bastasse, além do baixo custo, há mais uma grande vantagem do software livre sobre o software proprietário, são as grandes comunidades que desenvolvem, testam e corrigem erros de softwares de códigos abertos, o que tornam esses softwares mais confiáveis do que softwares proprietários de código fechado que podem trazer em seus interiores códigos maliciosos com objetivos indesejáveis para os usuários.

Com tantas empresas como IBM, Carrefour, Wal Mart, Itaú, entre outras usando os softwares livres como alternativa, por que não estudarmos as aplicações livres em vez das proprietárias? A grande maioria dos cursos de informática no Brasil, não ensina informática e sim ensina como usar softwares proprietários como os da Microsoft, não ensina à essência dos editores de texto ou planilhas eletrônicas, e sim os softwares proprietários. Mas isso está ficando para trás. As empresas começam a usar softwares livres para cortar os custos e até mesmo para obter melhores resultados. Existem softwares proprietários que ainda não têm concorrentes livres maduros, capazes de realizar as mesmas proezas, mas também é fato que a grande maioria de softwares livres é mais produtiva de que os seus concorrentes proprietários para as atividades que foram criadas.

O mercado de TI já mostra que algumas empresas não migram para softwares livres, por conta dos custos em treinamentos para funcionários, visto que a maioria deles já entra na empresa conhecendo o uso de softwares proprietários e com pouco ou nenhum conhecimento em softwares livres. Por esse motivo é hora de aprender, também, com ferramentas livres de fácil acesso e suporte em todo o mundo. É hora de vermos cursos de informática ensinando informática com softwares proprietários e softwares livres também.

Referência: Next Generation Center – Curso Software Livre