Por que uma definição é importante
Um ambiente de desenvolvimento contém tudo o que é necessário para uma equipe construir e implementar sistemas com alto uso de software (nos quais o software é um elemento essencial e indispensável). Então, por que ter uma definição consistente de um ambiente de desenvolvimento é importante? Resumindo, muitas organizações querem reduzir o tempo para chegar ao mercado, reduzir os custos e aprimorar a qualidade, e todas essas metas de negócios são diretamente influenciadas pela qualidade do ambiente usado para produzir esses sistemas. Ter uma definição consistente e abrangente de um ambiente de desenvolvimento em mãos garante que nada seja negligenciado quando você estiver planejando uma iniciativa para aprimorar o ambiente atual, definindo requisitos para o ambiente, definindo a arquitetura do ambiente, avaliando o ambiente, garantindo um retorno apropriado sobre o investimento ao mudar o ambiente e assim por diante. Uma definição de ambiente de desenvolvimento é um fator crítico para todas essas tarefas.
Colocando o ambiente de desenvolvimento no contexto
Antes de analisar os elementos específicos que compõem um ambiente de desenvolvimento, é muito útil entender primeiro onde esse ambiente fica no grande esquema das coisas.
Na Figura 1, você vê um Centro de Excelência responsável pela criação e manutenção do ambiente de desenvolvimento. Esse ambiente é usado em projetos de desenvolvimento que, um por um, criam e mantêm sistemas com alto uso de software (ou algum outro produto relacionado a software, como componentes ou serviços). Essa visualização simples ajuda a esclarecer a distinção entre a função de qualquer Centro de Excelência aplicado (incluindo as funções dos membros da equipe, processos e o principal produto: um ambiente de desenvolvimento) e os projetos que usam o ambiente de desenvolvimento (e suas funções, processos e produtos).
Figura 1. Diferenciando um Centro de Excelência de um projeto de desenvolvimento
Elementos de um ambiente de desenvolvimento
Para os especialistas em software da IBM Rational, um ambiente de desenvolvimento é composto por estes seis elementos, cada um deles exibido na Figura 2 e descritos com detalhes nas seções a seguir:
- Método
- Ferramentas
- Capacitação
- Organização
- Infraestrutura
- Adoção
Figura 2. Elementos de um ambiente de desenvolvimento
Talvez você esteja familiarizado com "pessoas, processo e tecnologia" como os principais ingredientes de um projeto de desenvolvimento bem-sucedido. No entanto, esse modelo é muito simplista para o objetivo deste artigo. Contudo, os elementos exibidos na Figura 2 compõem este modelo:
- Pessoas são representadas pela capacitação e pela organização.
- Processo é igual a método.
- Tecnologia é representada pelas ferramentas e infraestrutura.
Adoção é um elemento novo (e muito importante) focado na introdução do ambiente de desenvolvimento dentro de uma organização, unidade de negócio ou projeto de desenvolvimento.
Um elemento importante de qualquer ambiente de desenvolvimento é o método seguido, formal ou informalmente, por profissionais. Estes são os principais elementos relacionados ao método:
- Elementos base do método, como funções, produtos do trabalho, tarefas e processos
- Elementos complementares do método, como padrões, diretrizes, listas de verificação, modelos e exemplos
- A topologia de implementação do método que pode ser considerada quando, por exemplo, o método é implementado como um Web site na intranet da empresa. Neste exemplo, um servidor da Web é exigido para hospedar o conteúdo e as estações de trabalho precisam ter um navegador da Web apropriado instalado e conectividade ao servidor da Web.
As ferramentas de desenvolvimento automatizam os aspectos do método que está sendo seguido. Por exemplo, convém usar uma ferramenta para requisitos de armazenamento e gerenciamento em um projeto de desenvolvimento ou usar uma ferramenta para modelar visualmente sua arquitetura e design ou usar as ferramentas para testar seu software, e assim por diante.
Estes são os principais elementos relacionados à ferramenta:
- Ferramentas de desenvolvimento e suas integrações
- Scripts de configuração e instalação da ferramenta de desenvolvimento
- Topologia de implementação da ferramenta de desenvolvimento, que considera o software e o hardware necessários, no lado do cliente e do servidor, junto com qualquer plataforma de destino e emuladores relevantes (como quando você está desenvolvendo dispositivos em tempo real ou incorporados)
A capacitação de profissionais (treinamento e tutoria) no uso do ambiente de desenvolvimento colabora com a adoção bem-sucedida. Portanto, a definição e criação do treinamento e a tutoria de materiais que podem ser aplicados são aspectos de um ambiente de desenvolvimento. Organizações maduras também prestam atenção especial à profissionalização de sua equipe e ao alinhamento com organizações profissionais externas.
Estes são os principais elementos relacionados à capacitação:
- Currículo do treinamento e cursos. Isso cobre uma variedade de necessidades de treinamento, desde o treinamento de profissionais experientes em aperfeiçoamentos no ambiente de desenvolvimento, até um currículo de treinamento abrangente para um profissional que está assumindo uma nova função.
- Materiais de tutoria. Esses são aplicados por pessoas ao instruir colegas menos experientes sobre os projetos.
- Topologia de implementação da capacitação. A consideração de uma topologia de implementação é necessária quando, por exemplo, a capacitação é fornecida por meio de um treinamento com base na Web. Novamente, é necessário ter um servidor da Web para hospedar os materiais de capacitação e estações de trabalho equipadas com navegadores da Web. A topologia de implementação também pode especificar locais e salas equipadas para fornecer o treinamento em sala de aula.
Outra consideração de um ambiente de desenvolvimento é garantir a existência de organização apropriada para definir, implementar e gerenciá-lo. Isso pode incluir especialistas em determinados aspectos do ambiente de desenvolvimento (como especialistas em método, especialistas em ferramentas, instrutores e mentores), equipes para administrar e suportar o ambiente, equipes com habilidades apropriadas no help desk da empresa e comunidades apropriadas de prática.
Estes são os principais elementos relacionados à organização:
- Definição das funções da organização e as unidades que fazem parte do ambiente de desenvolvimento
- Topologia de implementação da organização que indica os locais dessas unidades organizacionais
Um ambiente de desenvolvimento considera a infraestrutura em termos de hardware e de software. Isso já foi indicado anteriormente ao discutirmos o método, as ferramentas, a capacitação e a organização. No entanto, há três razões para considerar a infraestrutura como um elemento principal independente:
- A primeira é a consolidação. Por exemplo, analisando as necessidades de infraestrutura do ambiente de desenvolvimento como um todo, talvez você perceba que precisa apenas de um único servidor da Web para suportar o conteúdo do método com base na Web e o treinamento com base na Web.
- A segunda é garantir que exista uma consideração apropriada de qualquer hardware e software adicional que esteja suportando o ambiente de desenvolvimento, como software de sistema operacional, um sistema de gerenciamento de banco de dados ou controles de nível de placa, e testar os controles se você estiver desenvolvendo para dispositivos em tempo real ou incorporados.
- A terceira é que um Centro de Excelência pode exigir que a infraestrutura suporte o desenvolvimento e teste do ambiente de desenvolvimento, antes de ser disponibilizado em qualquer infraestrutura de produção que suporte os projetos de negócios.
Estes são os principais elementos relacionados à infraestrutura:
- Locais, nós e conectividade
- Software (como sistemas operacionais, sistemas de gerenciamento de banco de dados, controles de nível de placa e controles de teste).
Além dos elementos já listados, também é importante se preocupar com a adoção do ambiente dentro de uma organização, de uma unidade de negócios ou de um projeto de desenvolvimento.
Estes são os principais elementos relacionados à adoção:
- Plano de adoção. Esse plano define as tarefas normalmente executadas ao adotar o ambiente, como a aquisição de qualquer hardware e software.
- Técnicas para conduzir mudanças organizacionais. Elas serão necessárias para introduzir e incorporar o ambiente de desenvolvimento no trabalho diário das áreas organizacionais afetadas.
- Definição das métricas do ambiente. As métricas são usadas para medir a efetividade do ambiente.
Também é relevante o contexto da solução (no qual o ambiente de desenvolvimento é a solução em consideração). O contexto representa os requisitos no ambiente de desenvolvimento e pode ser considerado em termos de funcionalidade, qualidades e restrições.
- Funcionalidade representa uma prática de engenharia de software ou disciplina a ser fornecida pelo ambiente de ambiente. A realização desses requisitos faz com que você considere todos os elementos mencionados anteriormente. Por exemplo, conforme exibido na Figura 3, uma disciplina de gerenciamento de requisitos seria suportada por:
- Método de gerenciamento de requisitos
- Ferramentas de gerenciamento de requisitos
- Treinamento e tutoria sobre o gerenciamento de requisitos
- Equipe de help desk que conhece a solução de gerenciamento de requisitos
- Hardware e software para suportar os elementos relacionados ao gerenciamento dos requisitos
- Adoção apropriada da disciplina de gerenciamento de requisitos em projetos
Figura 3. A funcionalidade exigida envolve todos os elementos de um ambiente de desenvolvimento
Esse pensamento pode ser aplicado a outros recursos que fazem parte do ambiente de desenvolvimento, como gerenciamento de arquitetura ou de qualidade. Também pode ser aplicado a práticas específicas, como desenvolvimento iterativo (no núcleo de uma abordagem ágil ao desenvolvimento e entrega do software), que também exige a consideração de todos os elementos.
- Qualidades representam as propriedades que o ambiente de desenvolvimento deve exibir. Isso, também, exige a consideração de todos os elementos de um ambiente de desenvolvimento. Por exemplo, uma qualidade de escalabilidade (a capacidade de suportar um número variado de usuários simultâneos, por exemplo) pode ser acomodada das seguintes maneiras:
- Um método que pode ser personalizado para ajustar o tamanho do projeto
- Ferramentas que podem ser configuradas para suportar um método de configuração
- Mecanismos apropriados e níveis de treinamento para tamanhos diferentes de projetos
- Uma organização que fornece níveis apropriados de habilidade entre os membros de equipe para suportar o número antecipado de projetos de desenvolvimento
- Uma infraestrutura que pode escalar para suportar o número antecipado de usuários simultâneos
- Mecanismos apropriados para adotar o ambiente.
- Restrições que o ambiente de desenvolvimento deve acomodar também exigem a consideração de todos os elementos de um ambiente de desenvolvimento. Por exemplo, a necessidade de migrar de um ambiente existente pode resultar nas seguintes ações
- Usar práticas de um método existente e incorporá-las em um novo método
- Migrar produtos de trabalho de um conjunto de ferramentas obsoleto para outro (ou a necessidade de integrar com as ferramentas existentes que serão mantidas)
- Fornecer a capacitação que reconheça a compreensão atual e seja personalizada adequadamente
- Providenciar funcionários que garantam uma transição tranquila de um estado como está para o estado como será .
- Especificar uma infraestrutura que maximize a reutilização de uma infraestrutura existente (como a reutilização de licenças existentes de hardware e software, quando possível)
- Adoção apropriada de mecanismos que reconheçam a migração a ser realizada
Outra restrição importante quando uma organização considera uma mudança em seu ambiente de desenvolvimento existente é o retorno sobre o investimento (ROI), é claro. Para que uma iniciativa tenha êxito ela precisa, claramente, proporcionar resultados alinhados ao caso de negócio da iniciativa. Cada área de um ambiente de desenvolvimento influencia o ROI em termos de custo e benefício.
Embora não apareçam na Figura 2, funcionalidade, qualidades e restrições estão normalmente alinhadas a qualquer contexto de negócio definido, como metas de negócios. Nesse sentido, o contexto da solução também envolve considerações de negócios. Isso pode ser especialmente importante ao mostrar como o ambiente de desenvolvimento contribui com a realização das metas de negócios, direta ou indiretamente.
Definir, implementar, gerenciar
Ao definir os diversos elementos de um ambiente de desenvolvimento, ficou comprovada a utilidade de considerar os seguintes elementos do ciclo de vida do ambiente (mostrado na Figura 4), pois além do contexto da solução, cada um deles tem preocupações específicas que influenciam a definição:
- A definição do ambiente
- A implementação do ambiente
- O gerenciamento do ambiente
Figura 4. O ciclo de vida de um ambiente de desenvolvimento
Antes de analisar essas áreas, vale a pena explicar porque essas áreas diferentes estão vinculadas em um ciclo na Figura 4. Essa figura reconhece que a mudança efetiva (nesse caso, aprimoramentos no ambiente de desenvolvimento) é normalmente conquistada por meio de uma série de mudanças incrementais, em vez de uma abordagem expansiva em relação a mudança (evolução, não revolução) na qual cada incremento representa um único passo pelo ciclo. No entanto, a mudança que foi implementada em um incremento, por definição, muda o contexto para o próximo incremento (por exemplo, agora, os profissionais podem ter habilidades aprimoradas, novo hardware disponível, novas ferramentas e assim por diante) – por isso a natureza cíclica exibida.
A consideração de cada elemento de um ambiente de desenvolvimento, em conjunto com definições de solução, implementação de solução e gerenciamento de solução, é fornecida nas próximas seções.
A discussão anterior se concentrou nos principais elementos a serem considerados ao definir um ambiente de desenvolvimento. Essa discussão não é revisada aqui embora, para conclusão, os diversos itens definidos estejam reproduzidos na Tabela 1.
Também deve ser observado que a definição é tipicamente considerada em um nível organizacional e pode exigir uma instanciação local para abordar as necessidades de uma unidade de negócios específica ou projeto quando o mesmo é implementado. Isso é refletido nas seções abaixo.
Tabela 1. Considerações da definição
| Elemento | Descrição |
|---|---|
| Método | Funções, produtos do trabalho, tarefas, processos Padrões, diretrizes, listas de verificação e assim por diante Topologia de implementação do método |
| Ferramentas | Ferramentas de desenvolvimento e integrações Scripts de configuração e instalação da ferramenta de desenvolvimento Topologia de implementação da ferramenta de desenvolvimento |
| Capacitação | Currículo do treinamento e cursos. Materiais de tutoria Topologia de implementação da capacitação. |
| Organização | Funções e unidades organizacionais Topologia de implementação da organização |
| Infraestrutura | Locais, nós e conectividade Software de apoio (como sistemas operacionais) |
| Adoção | Plano de adoção Técnicas para conduzir mudança organizacional. Métricas do ambiente |
A implementação do ambiente de desenvolvimento introduz preocupações específicas com relação a cada elemento, exibidos pela Tabela 2.
Tabela 2. Considerações de implementação
| Elemento | Descrição |
|---|---|
| Método | Definir a configuração local Implementar o método |
| Ferramentas | Executar a configuração local Instalar as ferramentas Migrar os dados locais |
| Capacitação | Executar a configuração local Implementar os materiais de capacitação Treinar os profissionais |
| Organização | Definir a configuração local Reorganizar |
| Infraestrutura | Definir a infraestrutura local Fornecer os locais, nós, conectividade Fornecer o software de apoio |
| Adoção | Definir o plano de adoção local Validar o ambiente |
Principais elementos relacionados ao método :
- Definir a configuração local. Ao implementar o método em uma unidade de negócios ou projeto de desenvolvimento, talvez seja necessário algumas configurações locais para refletir as características específicas da unidade de negócios, projeto de desenvolvimento ou sistema (por exemplo, fornecendo um nível de cerimônia apropriado).
- Implementar o método. Isso garante que o método esteja disponível para os profissionais.
Principais elementos relacionados às ferramentas :
- Executar a configuração local. Qualquer configuração de ferramenta local é aplicada para automatizar a configuração de método local.
- Instale as ferramentas. Disponibilize as ferramentas instaladas (e suas integrações) aos profissionais.
- Migrar os dados locais. Talvez seja necessário migrar os dados de um conjunto de ferramentas existente para o conjunto de ferramentas atualizado, por exemplo.
Principais elementos relacionados à capacitação :
- Executar a configuração local. Adaptar, refinar ou atualizar os materiais de treinamento, conforme o necessário. Por exemplo, é possível revisar os materiais de capacitação para acomodar o processo definido para essa unidade de negócios ou projeto de desenvolvimento.
- Implementar os materiais de capacitação. Garantir que os materiais de capacitação estejam disponíveis aos profissionais, incluindo o acesso a qualquer treinamento com base na Web.
- Treinar os profissionais. Os profissionais são treinados e os comentários sobre o treinamento são coletados.
Principais elementos relacionados à organização :
- Definir a configuração local. Talvez seja necessário fornecer especialistas para suportar as necessidades específicas de uma unidade de negócios específica ou projeto de desenvolvimento.
- Reorganizar. Organize os funcionários e recursos para suportar o ambiente de desenvolvimento.
Principais elementos relacionados à infraestrutura :
- Definir a infraestrutura local. Defina a infraestrutura exigida por uma unidade de negócios específica ou projeto de desenvolvimento.
- Fornecer os locais, nós, conectividade. Disponibilize qualquer hardware exigido (incluindo qualquer plataforma de destino e emuladores ao desenvolver para dispositivos em tempo real ou incorporados).
- Fornecer o software de apoio. Instale qualquer software que suporte o ambiente de desenvolvimento (como sistemas de gerenciamento de banco de dados ou teste de controles).
Principais elementos relacionados à adoção :
- Definir o plano de adoção local. Refine o plano de adoção para refletir as necessidades específicas da unidade de negócios ou projeto de desenvolvimento.
- Validar o ambiente. Teste o ambiente implementado para garantir que ele atenda aos requisitos definidos em termos de fornecimento da funcionalidade desejada, atendimento das qualidades declaradas e funcionamento dentro das restrições definidas.
Conforme mostra a Tabela 3, o gerenciamento do ambiente de desenvolvimento após a implementação também introduz preocupações específicas sobre cada elemento.
Tabela 3. Considerações sobre o gerenciamento
| Elemento | Descrição |
|---|---|
| Método | Coletar feedback sobre o método |
| Ferramentas | Fazer backup, arquivar ou restaurar dados Coletar feedback sobre as ferramentas |
| Capacitação | Instruir os profissionais Coletar feedback sobre a capacitação |
| Organização | Coletar feedback sobre a organização |
| Infraestrutura | Fornecer ou aposentar a infraestrutura, conforme o necessário Coletar feedback sobre a infraestrutura |
| Adoção | Medir a efetividade do ambiente Coletar feedback sobre a adoção |
Principais elementos relacionados ao método :
- Coletar feedback sobre o método. Um aspecto importante do gerenciamento do ambiente de desenvolvimento é aprimorar continuamente. Portanto, coletar feedback sobre cada elemento é um tema que envolve todos os elementos. O feedback é normalmente coletado se forma subjetiva usando, por exemplo, um questionário.
Principais elementos relacionados às ferramentas :
- Fazer backup, arquivar ou restaurar dados. Certifique-se de que os produtos do trabalho criados pelos profissionais sejam gerenciados adequadamente e as práticas da "boa manutenção" sejam aplicadas.
- Coletar feedback sobre as ferramentas. Colete feedback (positivo e negativo) sobre a capacidade e desempenho das ferramentas.
Principais elementos relacionados à capacitação :
- Instruir os profissionais. Atribua mentores aos projetos para garantir que os profissionais saibam como usar o ambiente.
- Colete feedback sobre a capacitação e, dessa forma, sobre qualquer treinamento ou tutoria.
Principais elementos relacionados à organização :
- Coletar feedback sobre a organização. Os profissionais dão feedback sobre o suporte que receberam no uso do ambiente de desenvolvimento (como a qualidade do suporte do help desk).
Principais elementos relacionados à infraestrutura :
- Fornecer ou aposentar a infraestrutura, conforme o necessário. À medida que os projetos começam e terminam, o ambiente de desenvolvimento precisa ser redimensionado de acordo para suportar da melhor maneira possível o número de profissionais que estão usando o ambiente, a qualquer momento.
- Colete feedback sobre a infraestrutura, incluindo hardware e software de apoio.
Principais elementos relacionados à adoção :
- Medir a efetividade do ambiente. Esse é um aspecto importante da adoção bem-sucedida. Por exemplo, você pode fornecer um questionário para os profissionais e pedir que eles meçam sua efetividade na adoção das novas práticas.
- Coletar feedback sobre a adoção. O feedback sobre a abordagem da adoção é coletado.
Finalmente, lembre-se de que os diversos elementos de um ambiente de desenvolvimento não são tão independentes quanto este artigo sugere Uma representação alternativa da Figura 2 é exibida na Figura 5, ilustrando que cada elemento tem relações com todos os outros elementos.
Figura 5. Interdependências entre os elementos
Veja alguns exemplos de dependências entre os elementos:
- O método (método) faz referência a cursos de treinamento disponíveis (capacitação).
- Ferramentas (ferramentas) automatizam as tarefas (método).
- Funções administrativas (organização) são definidas para suportar as ferramentas (ferramentas).
- Servidores (infraestrutura) são fornecidos para hospedar o conjunto de ferramentas (ferramentas).
- A adoção de práticas (adoção) é avaliada usando a abordagem definida (método).
Este artigo complementa outro do mesmo autor, Peter Eeles, publicado pela The Rational Edge em 2008: The Rise of the Development Environment Architect. As seções deste artigo são elaboradas com base nos principais elementos que compõem um ambiente de desenvolvimento em detalhes e apontam as diferentes preocupações ao definir, implementar e gerenciar um ambiente como esse. Isso fornece um framework simples para garantir que todos esses aspectos sejam considerados ao planejar uma iniciativa para aprimorar o ambiente atual, definindo requisitos sobre o ambiente, definindo a arquitetura, avaliando o ambiente e assim por diante.
Aprender
- O artigo anterior, menos detalhado, está disponível aqui: The Rise of the Development Environment Architect por Peter Eeles (The Rational Edge, 2008).
- Visite a área do software Rational no developerWorks para obter recursos técnicos e boas práticas para os produtos do Rational Software Delivery Platform.
- Fique por dentro dos eventos técnicos e webcasts do developerWorks com foco em uma variedade de produtos da IBM e tópicos do segmento de mercado de TI.
- Participe de um briefing ao vivo e gratuito do developerWorks para se atualizar rapidamente sobre produtos e ferramentas IBM, bem como tendências do segmento de mercado de TI.
- Acompanhe Demos on demand do developerWorks, variando de demos de instalação e configuração de produtos para iniciantes a funcionalidades avançadas para desenvolvedores experientes.
- Melhore suas qualificações. Verifique o catálogo Catálogo de treinamento e certificação do Rational que inclui muitos tipos de cursos em uma ampla variedade de tópicos. É possível realizar alguns deles em qualquer local, a qualquer momento, e muitos dos cursos para iniciantes são gratuitos.
Obter produtos e tecnologias
- Obtenha o download da avaliação gratuita ou consulte a página Trials and Demos do software Rational.
- Avalie o software IBM da forma que melhor lhe convier: faça o download para uma versão de testes, experimente-o on-line, use-o em um ambiente de nuvem ou passe algumas horas no SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de forma eficiente.
Discutir
- Participe dos fóruns do software Rational para fazer perguntas e participar de discussões.
- Compartilhe seu conhecimento e ajude outros a usar o software Rational, escrevendo um artigo para o developerWorks. Você terá um público mundial, organização RSS, reconhecimento de autoria e uma biografia, e o benefício da edição e produção profissional no Web site do Rational no developerWorks. Descubra quais são as características de um bom artigo do developerWorks e como realizá-lo. Comece descobrindo quais são as características de um bom artigo do developerWorks Rational .
- Siga o software Rational no Facebook e no Twitter (@ibmrational), e inclua seus comentários e solicitações.
- Faça e responda perguntas, e aumente seu conhecimento participando dos Fóruns do Rational, cafés e wikis.
- Entre em contato com outros que compartilham seus interesses fazendo parte da comunidade do developerWorks , e respondendo aos blogs de desenvolvedores.

Peter Eeles é um Executive IT Architect e Chief Architect de TI na organização de software mundial IBM Rational, onde ajuda as organizações a aprimorar seus recursos de desenvolvimento de software. Isso ocorre com frequência em conjunto com uma iniciativa centrada na arquitetura, como em service-oriented architecture (SOA) ou reutilização estratégica, onde ele tem conhecimento especializado e avançado. Peter é coautor de "The Process of Software Architecting" (2009), "Building J2EE Applications with the Rational Unified Process" (2002) e "Building Business Objects" (1998). Ele pode ser contatado em peter.eeles@uk.ibm.com.