segunda-feira, junho 19, 2006

Nova versão da plataforma de Engenharia de Software da Rational anunciada

Neste mês de junho de 2006 a IBM anunciou a mais nova versão da suite de ferramentas Rational, chamada IBM Rational Software Development Platform ( IBM Rational SDP ). A versão inicial dessa suite lançada ao público tinha o número 6.0. A nova versão é a 7.0.

Finalmente a IBM Rational lançou funcionalidades novas que, a meu ver, aumentam muito o valor de sua oferta. Com certeza é um movimento estratégico para defender a posição de seu produto perante concorrentes de peso nesse segmento, como a Microsoft ( com o Visual Studio Team System ) e a Borland ( que está focando suas fichas no mercado de Application Lifecycle Management ). Além disso, ofertas de produtos open source competem em diversas linhas de produtos para engenharia de software. De qualquer modo, atualmente todas essas suites integradas implementam recursos e funcionalidades alinhados com certos padrões de automação (que inclusive estou investigando em minha dissertação de mestrado).

A plataforma da IBM Rational estava com alguns pontos fracos em sua versão 6 e que, para mim (e provavelmente para diversos clientes Rational), eram bem significativos e que foram eliminados com a versão 7.

Listo abaixo as principais funcionalidades que diferenciam a nova versão 7:

- A IBM comprou mais uma empresa, chamada BuildForge, que possuía um produto de mesmo nome. Ele agora foi batizado como IBM Rational BuildForge. Essa foi a mudança mais importante e significativa (do meu ponto de vista) dentro da linha IBM Rational.

O BuildForge é uma ferramenta sofisticada que realiza a gestão automatizada de builds e releases. Ela pode ser comparada a produtos open source como CruiseControl, Luntbuild (do qual já escrevi um artigo em meu blog), AntHill OS, CruiseControl .NET, Continuum e ferramentas pagas como QuickBuild, Parabuild e Anthill Pro. Para uma lista comparativa de outras ferramentas de integração contínua e gestão de builds e releases vide este link.

Uma ferramenta para integração contínua e gestão de builds faltava realmente na oferta da IBM. Era um ponto fraco, se comparado ao excelente processo de gestão de builds e integração contínua que existe no Microsoft Visual Studio Team System. Este processo (ligado ao MSF versão 4.0) é explicado com detalhes excelentes em dois livros que li recentemente (recomendo mesmo àqueles que não utilizam a suite da Microsoft. Muitos dos conceitos são aplicáveis para outros produtos e processos. Farei um exame detalhado de cada um dos livros em outro artigo): Software Engineering with Microsoft Visual Studio Team System e Pro Visual Studio Team System.

Na versão 6.0 e anteriores da suite da Rational era necessário usar produtos de terceiros para realizar uma gestão efetiva e visual de builds e releases, bem como de integração contínua. O Luntbuild, por exemplo, tinha um plug-in para se conectar com o Rational ClearCase Base ou UCM. O assunto da automação de builds com o CruiseControl, ClearCase e Ant até recebeu um livro, devido às constantes requisições dos clientes. O livro, que acabou de ser lançado, se chama IBM Rational ClearCase, Ant, and CruiseControl : The Java Developer's Guide to Accelerating and Automating the Build Process. Ainda é um livro válido e muito útil, devido aos conceitos que explica do processo de gestão de builds e releases e para o caso de clientes que prefiram adotar uma solução gratuita com base no CruiseControl ou Luntbuild.

Portanto, a aquisição da IBM da empresa BuildForge está bem alinhada com sua visão estratégica de ter uma suite completa de ferramentas integradas para engenharia de software aderente ao CMMI, SOX, ISO e outras necessidades de compliance.

- Outra nova funcionalidade interessante é a integração entre IBM Rational ClearQuest e IBM Tivoli Provisioning Manager. Isso permite uma gestão automatizada de releases para produção.

- O processo de auditoria do ClearCase que era embutido no makefile agora também está disponível para usuários do Ant. Finalmente torna útil essa antiga funcionalidade do ClearCase(usada especialmente com programas C/C++) para o mundo Java!!!

- O Rational ClearQuest está integrado com as ferramentas de testes e requisitos. Documentos do RequisitePro agora finalmente podem ser mantidos sob versionamento eficaz e a integração ClearQuest com ferramentas de teste fornece uma gestão integrada do ciclo de vida. Requisitos do RequisitePro podem ser criados como registros no ClearQuest. Finalmente não precisaremos mais duplicar esforços criando registros de casos de uso no Clearquest para facilitar o workflow dos requisitos e rastreabilidade com defeitos e requisições de mudança :-) !!!

- O Rational ClearCase pode ser usado de forma distribuída sem a necessidade do ClearCase MultiSite (que gerava repositórios distribuídos). Os clientes ClearCase podem acessar repositórios centralizados via WAN (pode-se comparar com o que o Subversion e o CVS já tinham há séculos :-) ). Isso facilita muito a implantação do ClearCase para ambientes distribuídos, sem a necessidade da complexidade do MultiSite.

- Nova ferramenta Rational Data Architect, para modelagem de dados, criação e implantação de bases de dados relacionais. Finalmente uma ferramenta da IBM para concorrer com o ErWin e com o Oracle Designer!

Basicamente é isso. Outras alterações foram feitas, mas coloquei aqui as mais significativas. Creio que finalmente a engenharia de software está sendo tratada de forma ainda mais séria pelas empresas que usam software e sistemas para apoiar suas estratégias de negócios. E isso é percebido pelos produtores de software, que estão investindo cada vez mais em desenvolver soluções integradas para essa área.

Creio que os anos de 2007 e 2008 trarão ainda mais novidades e facilidades para espalhar as boas práticas do CMMI, processos ágeis e da Engenharia de Software de forma automatizada. Assim todos que necessitam desenvolver sistemas com qualidade terão maior facilidade de ficar aderentes às mais novas necessidades do negócio de TI.

Marcadores:

sexta-feira, junho 16, 2006

Uma linguagem de padrões para automação de projetos de desenvolvimento ágil de software com ênfase na plataforma J2EE

Finalmente um artigo para falar sobre minha dissertação de mestrado! Já estou quase pronto para a qualificação, que será provavelmente em agosto de 2006. A defesa provavelmente será em janeiro ou fevereiro de 2007. Meu orientador é o Professor Doutor Mauro de Mesquita Spínola do departamento de Engenharia de Produção da Poli-USP.

Assim que qualificar, eu a colocarei no site Erudio.

Mas aí vai uma pequena dose! Ela também forneceu a base para um tutorial que submeti ao SEPG LA com o título: "Automação de fábricas de software e projetos de desenvolvimento de sistemas com ferramentas livres: Uma abordagem prática".

O título da dissertação é: "Uma linguagem de padrões para automação de projetos de desenvolvimento ágil de software com ênfase na plataforma J2EE"

RESUMO:

Estudos realizados em diversas partes do mundo mostram o grande número de projetos abandonados antes do término. Um estudo de 1995 mostrou que 32 por cento dos projetos norte-americanos de tecnologia da informação corporativos foram abandonados antes de completar, a um custo total estimado de 81 bilhões de dólares. De acordo com o Extreme Chaos Report (2001), 137.000 projetos nos Estados Unidos tiveram atraso ou ficaram acima do orçamento, enquanto outros 65.000 projetos falharam completamente.

Pode-se considerar também que as empresas que se destacam no negócio de software são as que possuem um processo de criação e inovação de produtos ágil e eficaz.

Novas técnicas e processos pautados no paradigma ágil surgiram com o objetivo de solucionar os problemas da complexidade do desenvolvimento de novos softwares e para fornecer agilidade no lançamento de novos sistemas e produtos. Além disso, o apoio de um ambiente automatizado para o desenvolvimento de software pode trazer melhorias para a agilidade e a qualidade do processo e do produto de software. Mesmo assim, percebe-se que poucas empresas que desenvolvem software e sistemas possuem um ambiente automatizado organizado e que apóie a agilidade.

Este trabalho exploratório tem como objetivo propor um conjunto de soluções específicas para a automação de ambientes colaborativos, com ênfase no desenvolvimento ágil de software e foco na plataforma J2EE. Para atender a esse objetivo utiliza-se o formato dos padrões (patterns) e da linguagem de padrões (pattern language), já estabelecidos como úteis para documentar soluções dentro da comunidade de desenvolvimento de software. Estes padrões trazem recomendações de ferramentas específicas para apoiar a automação de projetos J2EE.

A pesquisa bibliográfica dos padrões é complementada por um web survey e por um estudo de caso incorporado de casos múltiplos. O intuito dessas outras duas estratégias é fornecer dados para fundamentar a pesquisa bibliográfica e analisar questões de investigação levantadas em apoio ao problema central.

PALAVRAS-CHAVE:
Padrões, desenvolvimento ágil de software, rastreabilidade, ambientes colaborativos de desenvolvimento de software, ferramentas de apoio ao desenvolvimento de software, automação de fábricas e projetos de software, Java 2 Platform Enterprise Edition, J2EE,

OBJETIVOS:

Este trabalho tem como objetivo geral propor um conjunto de soluções específicas para a automação de ambientes colaborativos de projetos, com ênfase no desenvolvimento ágil de software e foco na plataforma J2EE (Java 2 Platform, Enterprise Edition). Para atender a esse objetivo utiliza-se o formato dos padrões e da linguagem de padrões, já estabelecidos como úteis para documentar soluções dentro da comunidade de desenvolvimento de software (APPLETON, 2000). Os padrões facilitam a descrição de melhores práticas e ferramentas para um determinado contexto contendo problemas comuns a uma comunidade de pessoas (ALUR et al, 2003).

Os objetivos específicos são:
• Determinar e descrever, em formato de linguagem de padrões, as práticas para automação de projetos para apoio a processos ágeis e ao atendimento de algumas condições de áreas de processo do CMMI.
• Propor um caminho incremental e estabelecer dependências entre padrões, para facilitar o planejamento de adoção da automação em uma organização. De acordo com Humphrey (1989), o plano de automação é essencial para gerar os resultados esperados pela automação do ambiente de engenharia de software.
• Indicar ferramentas específicas para elaborar um ambiente de automação para a plataforma J2EE, como forma de exemplificar os padrões. Preferencialmente as indicações são de ferramentas open source, gratuitas ou de baixo custo.
• Avaliar, de forma exploratória, o estado atual da automação em empresas brasileiras, analisar quais os atributos de um ambiente de desenvolvimento são considerados essenciais e sua importância para a melhoria do processo de desenvolvimento.


A1. SUMÀRIO DOS PADRÕES DE AUTOMAÇÃO PARA CONSTRUÇÃO E IMPLANTAÇÃO

Controle de Versões: Como compartilhar código entre desenvolvedores, realizar desenvolvimento paralelo e controlar alterações? Ferramenta de controle de versões

Automação do Build: Como reduzir o tempo do processo de geração de software e o número de erros neste processo? Ferramenta de automação de build

Automação da Instalação:Como reduzir o tempo do processo de implantação de software e o número de erros neste processo? Ferramenta de automação de instalação e implantação

Integração Contínua: Como realizar a integração freqüente do código gerado por diversos membros da equipe? Ferramenta de Integração Contínua

A2. SUMÀRIO DOS PADRÕES DE AUTOMAÇÃO PARA QUALIDADE DO PRODUTO

Automação de Testes Unitários: Como aumentar a confiabilidade do sistema e colocar a qualidade no processo de construção de código? Ferramenta de testes unitários

Automação de Testes de Aceitação: Como realizar testes regressivos em sistemas com longo ciclo de vida? Ferramenta de testes de aceitação automatizados

Automação de Métricas de Produto: Como garantir a qualidade interna do produto através de métricas? Ferramentas de geração automatizada de métricas

Revisão Colaborativa: Como manter os resultados de revisões centralizados? Ferramenta de revisão colaborativa

A3. SUMÀRIO DOS PADRÕES DE AUTOMAÇÃO PARA PLANEJAMENTO E COLABORAÇÃO

Gestão do Fluxo de Incidências: Como manter todos os itens de incidências de um projeto registrados e atualizados? Ferramenta de gestão de incidências

Gestão Colaborativa de Testes: Como organizar de forma centralizada o processo de testes? Ferramenta de gestão de testes

Rastreabilidade: Como realizar a rastreabilidade bidirecional sem o ônus de uma matriz de rastreabilidade gerada manualmente? Integração entre ferramentas

Planejamento Colaborativo: Como manter todo o planejamento colaborativo de um projeto? Ferramenta de planejamento colaborativo

Radiadores de Informação: Como disponibilizar diversas informações como relatórios de testes, de métricas e de planejamento? Ferramentas de portais, relatórios de ferramentas de automação de qualidade e das ferramentas de planejamento e colaboração

REFERÊNCIAS BIBLIOGRÁFICAS

AHERN, D; et al. CMMI SCAMPI Distilled. Boston:Addison-Wesley, 2005.

ALUR, D.; CRUPI, J.; MALKS, D. Core J2EE Patterns. 2nd Edition. California: Prentice Hall, 2003.

AGILE ALLIANCE. Agile Manifesto.

AMBLER, Scott. Modelagem Ágil: Práticas eficazes para a Programação Extrema e o Processo Unificado. São Paulo: Bookman Editora, 2004.

ANDERSON, D. et al. Declaration of Interdependence, Agile PM, 2005.

APPLETON, B. Patterns and Software: Essential Concepts and Terminology. Hillside.Net, 2000.

BABBIE, Earl. Métodos de Pesquisas de Survey. Belo Horizonte: Editora UFMG, 2005.

BECK, Kent. Extreme Programming Explained: Embrace Change. 2nd Edition. Boston: Addison-Wesley, 2004.

BELL, J.; LAMBROS, J.; NG, S. J2EE Open Source Toolkit: Building an Enterprise Plaform with Open Source Tools. Indianapolis: Wiley Publishing, 2003.

BERCZUK, S.; APPLETON, B. Software Configuration Management Patterns. Boston: Addison-Wesley, 2002.

BOEHM, B; et al. Software Cost Estimation with COCOMO II. New Jersey: Prentice Hall PTR, 2000.

BOEHM, B.; TURNER, R. Balancing Agility and Discipline: A Guide for the Perplexed. Boston: Addison-Wesley, 2003.

BOOCH, G.; BROWN, A. Collaborative Development Environments. Advances in Computers, Vol. 59, Academic Press, 2003.

BLOOMBERG. Japan Stocks Fall, Led by Sony on Game Delay Report; Banks Drop, New York, 2006.

BRAMBLE, P.; et al. Patterns for Effective Use Cases. Boston:Addison-Wesley, 2002.

BROOKS, Frederick. The Mythical Man-Month: Essays on Software Engineering Anniversary Edition. 2nd Edition. Boston:Addison-Wesley, 1995.

CARNELL, J.; HARROP, R. Pro Jakarta Struts. 2nd Edition. Berkeley: Apress, 2004.

CHENG, Li-te; et al. Jazzing Up Eclipse with Collaborative Tools. Proceedings of the 2003 OOPSLA workshop on Eclipse technology Exchange. Pages 45-49. New York: ACM Press, 2003.

CLAVER, E.; GONZÁLEZ, R.; LLOPIS, J. An analysis of research in information systems (1981-1997). Estados Unidos: Information & Management 37 (págs. 181-195), 2000.

COAR, Ken. The Sun Never Sets on Distributed Development. ACM Queue. Vol. 1, No. 9, December/January 2003-2004.

COCKBURN, Alistair. Surviving Object-Oriented Projects. Boston: Addison-Wesley, 1998.

COCKBURN, Alistair. Agile Software Development. Boston: Addison-Wesley, 2001.

COCKBURN, Alistair. Crystal Clear: A Human-Powered Methodology for Small Teams. Boston: Addison-Wesley, 2004a.

COCKBURN, Alistair. What the Agile Toolbox Contains. 2004b.

COOPER, Robert. Winning at New Products: Accelerating the Process from Idea to Launch. 3rd Edition. New York: Basic Books, 2001.

COPLIEN, J.; HARRISON, N. Organizational Patterns of Agile Software Development. New Jersey: Prentice Hall, 2004.

CUSUMANO, Michael. The Business of Software. New York: Free Press, 2004.

DECARLO, Doug. Extreme Project Management. San Francisco: Jossey-Bass, 2004.

DEMARCO, T.; LISTER, T. Peopleware: Productive Projects and Teams. 2nd Edition. New York: Dorset House Publishing, 1999.

DESCHAMPS, J.; NAYAK, P. R. Product Juggernauts: How Companies Mobilize to Generate a Stream of Market Winners. Boston: Harvard Business School Press, 1995.

DOAR, Matthew. Practical Development Environments. California: O’Reilly Media, 2005.

EWUSI-MENSAH, KWEKU. Software Development Failures. Cambridge: MIT Press, 2003.

FERNANDES, A. A.; TEIXEIRA, D. S. Fábrica de Software: Implantação e Gestão de Operações. São Paulo: Editora Atlas, 2003.

FOGEL, Karl. Producing Open Source Software: How to Run a Successful software project. California: O’Reilly Media, 2005.

FOWLER, Martin. Analysis Patterns: Reusable Object Models. Boston: Addison-Wesley, 1997.

FOWLER, Martin. The New Methodology.

GABRIEL, RICHARD. Patterns of Software: Tales from the Software Community. Oxford: Oxford University Press, 1996.

GAMMA, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Boston: Addison-Wesley, 1995.

GIL, Antonio Carlos. Como Elaborar Projetos de Pesquisa. 4ª. Edição. São Paulo: Editora Atlas, 2002.

HEFFNER, RANDY. .NET versus J2EE: Both Application Platforms are Long-Term Winners. Sumário Executivo. Forrester Research, 2004.

HIGHSMITH, James A., III. Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. New York: Dorset House Publishing, 2000.

HIGHSMITH, Jim. Agile Software Development Ecosystems. Boston: Addison-Wesley, 2002.

HIGHSMITH, Jim. Agile Project Management. Boston: Addison-Wesley, 2004.

HIGHTOWER, R. et al. Professional Java Tools for Extreme Programming. Indianapolis: Wiley Publishing, 2004.

HUMPHREY, Watts. Managing the Software Process. Boston: Addison-Wesley, 1989.

LARMAN, Craig. Agile and Iterative Development: A Manager’s Guide. Boston: Addison-Wesley, 2004.

LEFFINGWELL, D.; MUIRHEAD, D. Tactical Management of Agile Development: Achieving Competitive Advantage, Colorado: Rally SDC, 2004.

MARCONI, M. A.; LAKATOS, E. M. Técnicas de Pesquisa. 5ª. Edição. São Paulo: Editora Atlas, 2002.

McCONNELL, Steve. Software Estimation: Demystifying the Black Art. Redmond: Microsoft Press, 2006.

McGRATH, Michael. Product Strategy for High-Technology Companies, 2nd Edition. New York: McGraw-Hill, 2001.

MCT. Qualidade e Produtividade no Setor de Software. Brasília: Ministério da Ciência e Tecnologia, 2001.

MESZAROS, G.; DOBLE, J. A Pattern Language for Pattern Writing. Hillside.Net, 2004.

ÖVERGAARD, G.; PALMKVIST, K. Use Cases Patterns and Blueprints. Boston: Addison-Wesley, 2004.

PALMER, S.; FELSING, J. A Practical Guide to Feature-Driven Development. New Jersey: Prentice-Hall 2002.

POPPENDIECK, M.; POPPENDIECK, T. Lean Software Development: An Agile Toolkit. Boston: Addison-Wesley, 2003.

PORTER, Michael. Estratégia Competitiva. 6a. Edição. Rio de Janeiro: Editora Campus, 1986.

PRESSMAN, Roger. Engenharia de Software. 6a. Edição. São Paulo: Editora McGraw-Hill, 2006.

PROJECT MANAGEMENT INSTITUTE. A Guide to the Project Management Body of Knowledge (PMBOK Guide). 3rd Edition. Newton Square: Project Management Institute, 2004.

REA, L. M.; Parker, R. A. Metodologia de Pesquisa. São Paulo: Editora Pioneira: 2000.

REINERTSEN, Donald. Managing the Design Factory: A Product Developer’s Toolkit. New York: Free Press, 1997.

RICHARDSON, Chris. POJOs in Action: Developing Enterprise Applications with Lightweight Frameworks. Greenwich: Manning Publications, 2006.

RICHARDSON, J.; GWALTNEY, W. Ship It! : A Practical Guide to Successful Software Projects. North Carolina:The Pragmatic Programmers LLC, 2005.

RISING, Linda. Patterns: A Way to Reuse Expertise. AG Communications Systems, 2001.

RÜPING, Andreas. Agile Documentation: A Pattern Guide to producing lightweight documents for software projects. West Sussex: John Wiley & Sons, 2003.

SCHWABER, K.; BEEDLE, M. Agile Software Development with SCRUM. New Jersey: Prentice Hall, 2002.

SCHWABER, Ken. Agile Project Management with SCRUM. Redmond: Microsoft Press, 2004.

SEVERINO, Antônio Joaquim. Metodologia do Trabalho Científico. 22ª. Edição. São Paulo: Cortez Editora, 2002.

SINGH, I. et al. Designing Enterprise Applications with the J2EE Platform. 2nd Edition. Boston: Addison-Wesley, 2002.

SMITH, P. G.; REINERTSEN, D. G. Developing Products in Half the Time. 2nd Edition. New York: John Wiley & Sons, 1998.

STANDISH. Extreme Chaos Report 2001. Standish Group.

SUN MICROSYSTEMS a. Java 2 Platform, Enterprise Edition(J2EE) Overview. Sun Microsystems, 2004.

SUN MICROSYSTEMS b. Authorized Licensees of the J2EE Platform. Sun Microsystems, 2004.

THE MIDDLEWARE COMPANY. J2EE Application Server Survey 2004. The Middleware Company, 2004.

THOMSETT, Rob. Radical Project Management. New Jersey: Prentice Hall, 2002.

VIANNA, Ilca O. de Almeida. Metodologia do Trabalho Científico. São Paulo: E.P.U., 2001.

WYSOCKI, R. K.; MCGARY, R. Effective Project Management: Traditional, Adaptive, Extreme, 3rd Edition. Indianapolis: Wiley Publishing, 2003.

YIN, Robert K. Estudo de Caso: Planejamento e Métodos. 3ª. Edição. Porto Alegre: Editora Bookman, 2005.

ZIKMUND, William. Princípios da Pesquisa de Marketing. 2ª. Edição. São Paulo: Thomson, 2006.


REFERÊNCIAS CONSULTADAS

AMBLER, Scott. Don´t Enter the Matrix: What´s up with agile requirements traceability? Dr. Dobbs Journal, October 2005.

ANDERSON, David. Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results. New Jersey: Prentice Hall, 2004.

APPLETON, B.; et al. The Trouble with Tracing: Traceability Dissected. CM Crossroads, 2005.

BERCZUK, Steve. Pragmatic Software Configuration Management. IEEE Software, March/April 2003.

CANTOR, Murray. Software Leadership: A Guide to successful Software Development. Boston: Addison-Wesley, 2002.

COHN, Mike. Agile Estimating and Planning. Boston: Addison-Wesley, 2006.

CLARK, Mike. Pragmatic Project Automation. North Carolina:The Pragmatic Programmers LLC, 2004.

CUSUMANO, M.; SELBY, R. Os Segredos da Microsoft. São Paulo: Editora Ática, 1996.

CUSUMANO, M.; YOFFIE, D. Competing on Internet Time. New York: The Free Press, 1998.

DEMARCO, T.; LISTER, T. Waltzing with Bears: Managing Risk on Software Projects. New York: Dorset House Publishing, 2003.

FOWLER, Martin. Refactoring: Improving the Design of existing Code. Boston: Addison-Wesley, 2000.

FOWLER, M.; FOEMMEL, M. Continuous Integration, Martin Fowler, 2005.

GULZAR, Nadir. Practical J2EE Application Architecture. California: McGraw-Hill, 2003.

HUNT, A.; THOMAS, D. Pragmatic Unit Testing in Java with JUnit. North Carolina:The Pragmatic Programmers LLC, 2004.

JALOTE, Pankaj. Software Project Management in Practice, Boston: Addison-Wesley, 2003.

JONES, Capers. Produtividade no Desenvolvimento de Software. São Paulo: Editora Makron, 1991.

LEVINE, Harvey. Practical Project Management: Tips, Tactics, and Tools. New York: John Wiley & Sons, 2002.

MASON, Mike. Pragmatic Version Control using Subversion. North Carolina:The Pragmatic Programmers LLC, 2005.

McBREEN, Pete. Software Craftmanship: The New Imperative. Boston: Addison-Wesley, 2002.

McCONNELL, Steve. Rapid Development: Taming Wild Software Schedules. Redmond: Microsoft Press, 1996a.

McCONNELL, Steve. Daily Build and Smoke Test. IEEE Software, Vol. 13, No. 4, July 1996b.

McCONNELL, Steve. Code Complete. 2nd Edition. Redmond: Microsoft Press, 2004.

McGARRY, J.; et al. Practical Software Measurement: Objective Information for Decision Makers. Boston: Addison-Wesley, 2002.

MUGRIDGE, R.; CUNNINGHAM, W. Fit for Developing Software: Framework for Integrated Tests. New Jersey: Prentice Hall, 2005.

SCHUH, Peter. Integrating Agile Development in the Real World. Massachusetts: Charles River Media, 2005.

STUTZKE, Richard. Estimating Software-Intensive Systems. Boston: Addison-Wesley, 2005.

TATE, Kevin. Sustainable Software Development: An Agile Perspective. Boston: Addison-Wesley, 2005.

WALDEN, D.; et al. Kano’s Methods for Understanding Customer-Defined Quality. Center for Quality of Management Journal. Volume 2, Number 4, Fall 1993, Special Issue.

Marcadores: ,

quarta-feira, junho 14, 2006

O Processo de desenvolvimento de produtos da Netscape e Microsoft e sua influência na vantagem competitiva

Escrevi um artigo em conjunto com o meu grande amigo de mestrado e de docência na São Judas, Paulo Marcelo Lessa Moreira (diretor da Unitech), para o mestrado do IPT (Instituto de Pesquisas Tecnólogicas). O artigo trata sobre o processo de desenvolvimento de produtos da Netscape e Microsoft e sua influência na vantagem competitiva.

O artigo completo se encontra na seção de downloads de Engenharia de Software do site Erudio.

Segue o breve resumo:

O processo de criação e inovação de produtos é crítico para a continuidade do sucesso, prosperidade e sobrevivência das organizações empresariais. Em particular, as empresas que atuam no ramo de produtos e serviços de software se encontram em um mercado altamente competitivo, onde a inovação e o lançamento de novos produtos e novas versões de produtos são cruciais para a sua sobrevivência. Sob essa ótica, analisamos como o processo de desenvolvimento de produtos da Netscape e da Microsoft se torna um fator decisivo em suas estratégias competitivas. Buscamos analisar quais são as práticas adotadas por essas empresas como fatores de sucesso para manter um processo de desenvolvimento de software que possibilite a sustentação de suas vantagens competitivas frente aos concorrentes.

PALAVRAS-CHAVE

Estratégia competitiva, Vantagem Competitiva, Processo de desenvolvimento de produtos, Netscape, Microsoft, Inovação, Desenvolvimento de Software.

Referências Bibliográficas

BLOOMBERG. Japan Stocks Fall, Led by Sony on Game Delay Report; Banks Drop. Disponível em:
http://www.bloomberg.com/apps/news?pid=10000101&sid=aq8JOorKByJA . New York, 2006.

CHRISTENSEN, Clayton. O Dilema da Inovação. São Paulo: Makron Books, 2001.

COOPER, Robert. Winning at New Products: Accelerating the Process from Idea to Launch. 3rd Edition. New York: Basic Books, 2001.

CUSUMANO, M.; SELBY, R. Os Segredos da Microsoft. São Paulo: Editora Ática, 1996.

CUSUMANO, M.; YOFFIE, D. Competing on Internet Time. New York: The Free Press, 1998.

CUSUMANO, Michael. The Business of Software. New York: The Free Press, 2004.

DESCHAMPS, J.; NAYAK, P. R. Product Juggernauts: How Companies Mobilize to Generate a Stream of Market Winners. Boston: Harvard Business School Press, 1995.

FOWLER, M.; FOEMMEL, M. Continuous Integration. Disponível em:
http://www.martinfowler.com/articles/continuousIntegration.html . Martin Fowler,
2005. Acesso em: 06 de março de 2005.

LEFFINGWELL, D.; MUIRHEAD, D. Tactical Management of Agile Development: Achieving Competitive Advantage. Disponível em:
http://knowledgestorm.inc.com/inc/search/viewabstract/76279/
Colorado: Rally SDC, 2004.

McCONNELL, Steve. Rapid Development: Taming Wild Software Schedules. Redmond: Microsoft Press, 1996.

McGRATH, Michael. Product Strategy for High-Technology Companies, 2nd Edition. New York: McGraw-Hill, 2001.

PORTER, Michael. Estratégia Competitiva. 6a. Edição. Rio de Janeiro: Editora Campus, 1986.

PORTER, Michael. Vantagem Competitiva. 5a. Edição. Rio de Janeiro: Editora Campus, 1989.

REINERTSEN, Donald. Managing the Design Factory: A Product Developer’s Toolkit. New York: Free Press, 1997.

SMITH, P. G.; REINERTSEN, D. G. Developing Products in Half the Time. 2nd Edition. New York: John Wiley & Sons, 1998.

WIKIPEDIA. Browser Wars. Disponível em:
http://en.wikipedia.org/wiki/Browser_wars . Wikipedia, 2006.

Marcadores:

Moderação da lista de discussão do CMM-Brasil

Em maio fui incluído como moderador de uma das melhores listas de discussão sobre processos de desenvolvimento de software no Brasil. Estou num time excelente que conta com importantes nomes na área de melhoria de processos.

Recomendo fortemente o cadastro e a participação nessa lista!

A página dela no Yahoo é: http://br.groups.yahoo.com/group/CMM-Brasil/

É possível se associar através do link acima ou então mandando um email para: CMM-Brasil-subscribe@yahoogrupos.com.br

Marcadores:

Oferta de Treinamentos a preços acessíveis!!!

No site Erudio coloquei ofertas de treinamentos que eu e outros colegas podemos realizar para empresas e profissionais interessados. Maiores informações vide neste link.

Abaixo reproduzo os cursos disponíveis (com uma carga horária média):

16h - Gerência de Configuração e Controle de Versões com Subversion
16h - Gerência de Configuração e Controle de Versões com CVS
16h - Gerência de Configuração e Controle de Versões com Rational ClearCase
16h - Gerência de Configuração e Controle de Versões com Visual SourceSafe
16h - Gerência de Configuração e Controle de Versões com Visual Studio Team System Team Foundation Server

8h - Automação de Builds com Ant
16h - Automação de Builds e Integração Contínua com Maven 2 e Continuum
8h - Integração Contínua e Gestão de Builds com LuntBuild
8h - Integração Contínua e Gestão de Builds com CruiseControl
16h - Automação de Builds e Integração Contínua com MSBuild e Visual Studio Team System

16h - Gestão de mudanças, incidências e defeitos com Rational ClearQuest
16h - Gestão de mudanças, incidências e defeitos com Visual Studio Team System
16h - Gestão de mudanças, incidências e defeitos com Eventum
16h - Gestão de mudanças, incidências e defeitos com Mantis
16h - Gestão de mudanças, incidências e defeitos com Scarab

24h - Processo e Automação de coleta de métricas de software com ferramentas

16h - RUP Essencial
16h - MSF Essencial
16h - Extreme Programming
8h - Introdução ao CMMI
8h - Fundamentos do ITIL
8h - Fundamentos do Cobit
8h - Fundamentos do SOX
16h - Melhoria de Processos de Software - Práticas

24h - Gestão de Projetos - com base no PMBOK
8h - Gestão Ágil de Projetos - visão geral
16h - Gestão Ágil de Projetos com Extreme Programming
16h - Gestão Ágil de Projetos com SCRUM
16h - Técnicas de Estimativas com Pontos de Função
8h - Técnicas de Estimativas com Pontos de Caso de Uso
16h - Elaboração de cronogramas com o Project Professional 2003
24h - Gestão de Projetos e Portfólios de Projetos com o Project Server 2003

8h - Modelagem de Processos de Negócio com RUP e UML

24h - Gestão de Requisitos com Casos de uso
8h - Rational RequisitePro

16h - Gestão de Testes - Teoria e Prática
16h - Gestão de Testes com Rational TestManager
8h - Gestão de Testes com RTH
8h - Gestão de Testes com TestLink

16h - Automação de testes funcionais com Rational Functional Tester
16h - Automação de testes funcionais para web com WATIR
16h - Automação de testes funcionais com Visual Studio Team System
Tester Edition
8h - Automação de testes de performance com Rational Performance Tester
8h - Automação de testes de performance para web com JMeter
8h - Automação de testes de performace com Visual Studio Team System
Tester Edition

16h - Arquitetura de Software - Conceitos Essenciais
32h - Análise e Design Orientados a Objetos com UML 2.0
16h - Design Patterns
16h - Core J2EE Patterns
16h - Arquiteturas J2EE Leves com Spring, Hibernate e Eclipse
16h - Struts Essencial
8h - iBatis for Java e iBatis for .NET
16h - Arquitetura de Software para aplicações .NET

8h - Modelagem Visual com UML 2.0 - Conceitos Essenciais
16h - Rational Rose
16h - Enterprise Architect

16h - Fundamentos do Eclipse 3
16h - Fundamentos do NetBeans 5
24h - Sun Java Studio Creator 2
24h - Sun Java Studio Enterprise 8
24h - Oracle JDeveloper 10g
24h - Visual Studio .NET 2005 ( C# ou VB )
24h - Introdução ao Apache, PHP, MySQL e Ajax em ambiente Windows


Veja as Estatísticas