Guia de Migração e Desenvolvimento de Software Livre
Classificado em Computação
Escrito em em
português com um tamanho de 20,58 KB
PERGUNTAS A RESPEITO DOS SLIDES DE MIGRAÇÃO:
1- Cite 03 fatores que podem dificultar a migração para software livre.
Resistência a mudanças, pressão por desempenho e resultados e falta de tempo para reaprender.
2- Cite 04 motivos para se realizar a migração para software livre.
Conhecimento, rompimento de elo com fabricantes, estabilidade e fator econômico/financeiro.
3- Quais os tipos de migração existentes?
Infraestrutura, aplicativos e desktop.
4- Quais as impressões que se deve ter sobre as etapas de migração?
Mostrar a existência do software livre, utilizá-lo, criar a cultura do software livre, criar uma comunidade e autoexistência.
5- Cite 03 passos importantes para a primeira etapa da migração.
Autorização da chefia, preparação técnica/gestora e capacitação da equipe técnica.
6- Cite 03 passos importantes para a segunda etapa da migração.
Iniciativa da diretoria, levantamento de requisitos e elaborar um plano de migração.
7- Cite 02 passos importantes para a terceira etapa da migração.
Teste prévio e elaboração de relatórios gerenciais.
8- Cite 03 passos importantes para a quarta etapa da migração.
Sequência do plano, avaliação do plano/processo e ajuste do plano/processo.
9- Em que consiste a quinta etapa da migração para software livre?
Consiste em manter um suporte ativo.
10- Quando migrar? (RESPOSTA DADA EM SALA DE AULA PELO PROFESSOR)
Uma hora excelente para realizar a migração para software livre é quando o software atualmente utilizado será descontinuado pelo fabricante e, sendo assim, será necessário substituí-lo de qualquer forma.
11- Cite casos onde a migração para software livre foi um sucesso.
Banco do Brasil, SERPRO, Conab, Ministério do Desenvolvimento Agrário, MEC, Loterias da Caixa, etc.
12- Cite 02 conceitos divulgados com a migração para software livre.
O conceito de Open Source e o conceito de inclusão digital.
13- Cite características do CISL – Comitê de Implementação do Software Livre no Governo Brasileiro.
Cria diretrizes para migração, possui representantes de vários órgãos, incentiva a colaboração entre os órgãos do governo, evita redundância de projetos, estimula a união de forças, cria grupos de trabalho, realiza ações e iniciativas voltadas ao software livre, capacitação de pessoal, etc.
14- Qual o padrão de formato de arquivos utilizado pelo governo brasileiro?
Formato de arquivos ODF.
15- Quais características da migração para software livre no governo brasileiro?
Capacitações presenciais, EAD, geração de documentação, planejamento para migração, suporte a decisões, criação de ambientes de software livre para conversa entre órgãos, palestras técnicas, apoio na definição de padrões, etc.
16- Qual o resultado esperado com a migração para software livre?
Domínio sobre o negócio através de sistemas estratégicos e investimento em conhecimento e não em ferramentas.
17- Cite exemplos de desenvolvimento no governo.
CACIC, E-Proinfo, Geoprocessamento, Ginga, etc.
18- Cite resultados obtidos com a migração para software livre.
Economia, aumento do número de usuários do Linux, geração de empregos, acesso à tecnologia, inclusão digital, apropriação/aprendizado de tecnologias, etc.
19- Cite as características de desenvolvimento de software proprietário.
Desenvolvimento rígido, liderança formal, planejamento e esforço centralizado.
20- É possível a construção de grandes projetos à distância?
Sim. Projetos de grande porte (o Linux, por exemplo) podem ser gerenciados a distância devido ao conceito de hierarquia, onde cada participante da comunidade tem papel definido (colaborador, testador, tradutor, etc.) e passa pela supervisão do mantenedor.
21- Deve-se liberar a versão mais cedo ou depois de consolidada?
Quanto mais cedo se libera uma versão do software para testes pela comunidade, mais cedo se descobrem vulnerabilidades e bugs no sistema. Portanto, quanto mais cedo se libera a versão, mais cedo se corrigem os erros encontrados e se coloca uma versão mais estável do software à disposição da comunidade, seguindo assim até a sua consolidação.
22- Qual a palavra-chave para desenvolvimento de projetos de software livre?
Colaboração.
23- Cite projetos importantes dentro do universo do SL.
GNU, Kernel do Linux, MySQL, Gnome, Firefox, etc.
24- No que se deve pensar quando se fala em desenvolvimento de software livre?
Processo de desenvolvimento, papel da comunidade no processo, formas de colaboração e formas de recompensa.
25- O ciclo de vida de desenvolvimento de SL passa por quais etapas?
Publicação inicial, utilização do software por outros usuários, descoberta de erros, correções e melhorias, julgamento das proposições feitas pelos usuários, incorporação de algumas sugestões, publicação de uma nova versão, atração de novos desenvolvedores/comunidade, etc. Esse ciclo se repete, formando um efeito chamado de “efeito de rede”.
26- Quais as etapas resumidas do ciclo de vida de desenvolvimento de SL?
Publicação, comunicação, programação, realimentação e nova publicação.
27- Quais as características da coordenação do projeto?
O projeto deve ser coordenado pelo mantenedor, a forma de trabalho da comunidade é mais individual e é possível repassar a coordenação do projeto para outro mantenedor.
28- Qual o papel do mantenedor?
É responsável pela liberação de novas versões, responsável pela aprovação de novas funções e deve manter a comunidade unida.
29- Qualquer código desenvolvido pelos colaboradores pode ser incorporado ao projeto de software que está sendo desenvolvido?
Não. Os códigos devem obedecer ao estilo de programação que está sendo adotado pelo projeto e devem ser aprovados pelo mantenedor.
30- Cite características sobre o surgimento, o crescimento e a abrangência de projetos de software livre.
O projeto não tem um plano de marketing, não tem especificação completa, não tem uma visão de longo alcance, alguns softwares partem apenas de uma ideia geral, o direcionamento do projeto é fruto da discussão com a comunidade e da força do mantenedor.
31- Cite características da aceitação dos códigos em projetos de software livre.
Não existe regra formal para a codificação, não existem regras para aceitação, os códigos passam por testes de funcionalidade e performance, análise de clareza e simplicidade de algoritmo.
32- Existem regras para ingressar em uma comunidade de software livre?
Antes de ingressar em uma comunidade é necessária a leitura do How To, que contém o modo de funcionamento da comunidade. Essa leitura ajuda a familiarizar-se com a comunidade.
33- Cite 03 características da aderência em projetos reconhecidos.
Existência de hierarquia natural baseada em experiência e reputação. Existe avaliação das contribuições do aprendiz. Aprovação ou reprovação do aprendiz.
34- Existe motivação sem remuneração?
Pode-se motivar através de reconhecimento, prestígio, alta reputação, necessidade de resolver problemas, desafios pessoais, ideologia e desejo de fazer um software melhor que a versão proprietária.
35- Quem é a equipe de desenvolvimento?
São os voluntários.
36- Onde eles estão?
Espalhados pelo mundo todo.
37- Como eles conversam?
Através de ferramentas síncronas ou assíncronas. As principais são portais na internet, e-mail, news-group, mailing lists, wiki, chats e blogs.
38- Quais os tipos de listas de discussão existentes? Qual delas inclui o feedback dos usuários?
Listas de desenvolvimento e listas de suporte. As listas de suporte contêm o feedback dos usuários não técnicos (usabilidade) e gera um ecossistema em torno do produto.
39- Qual é mais vantajoso: alterar um software para as necessidades atuais e enviar para a comunidade ou não enviar para a comunidade?
A divulgação do software para a comunidade ajuda a ambos, pois, além de receber feedbacks que possam resultar em melhorias maiores para o produto (resolução de problemas, redução de tempo de processamento, otimização de funções, etc.), também se amplia a fonte de conhecimento e desenvolvimento de novas habilidades nos voluntários, causando a evolução da comunidade como um todo.
40- O que é construção colaborativa de software?
Significa um grupo de voluntários, com conhecimentos distintos, reunidos pela rede, desenvolvendo partes do projeto sempre com a visão do todo e com acesso a todo projeto (macrovisão).
41- Um software construído de forma colaborativa fica remendado?
Não. O mantenedor possui o papel de aceitação de funções e códigos que estejam de acordo com o estilo utilizado pelo projeto de software, garantindo a integração dos diversos módulos do software desenvolvidos por voluntários distintos.
42- Cite 03 linguagens de programação utilizadas para o desenvolvimento de software livre.
C/C++, Java e PHP.
43- Cite 02 bancos de dados utilizados em produtos de software livre.
MySQL e PostgreSQL.
44- Quais as principais ferramentas para o desenvolvimento de software livre? Cite exemplos.
- Software de versionamento: CVS, Subversion;
- Controle de erros: Bugzilla, Scarab;
- Planejamento: OpenProject;
- Desenvolvimento colaborativo: Gforge.net (plataforma para gestão e desenvolvimento distribuído);
45- Cite 02 repositórios de software livre.
SourceForge e Freshmeat.
46- O que se gerencia em um projeto de Software Livre?
Pessoas geograficamente distantes, desenvolvedores seniores a estudantes, ausência de reuniões formais, diversificação da língua e cultura, projeto com foco múltiplo e sem prazo fixo.
47- Quais as dificuldades de gerência de um projeto de software livre?
Criar mecanismos de controle de coordenação, uma vez que os colaboradores têm um ritmo de colaboração próprio.
48- Qual a palavra-chave para contornar as dificuldades? Como alcançá-la?
Motivação. Para alcançá-la devemos investir em transparência, decisões não emotivas, estabelecimento e esclarecimento dos critérios e informações claras e disponíveis.
49- Quais os problemas encontrados na questão da comunicação?
Impossibilidade de visualização de gestos, impossibilidade de ouvir a entonação de voz e alta demanda para o mantenedor e auxiliares.
50- Quais cuidados se devem tomar com a comunicação?
Conflitos causados por textos muito diretos ("não" e pronto) e textos mal escritos (com duplo sentido de interpretação).
51- Que ferramenta utilizar para gerenciar um projeto onde várias pessoas podem estar desenvolvendo soluções diferentes para um único problema?
O software de versionamento.
52- Quais as funções de um software de versionamento?
Registro histórico dos arquivos de código-fonte, recuperação de versões anteriores, impede apagamento involuntário de outras contribuições, combinação de modificações de um mesmo trecho de código, criação de árvores de versões e marcação da versão estável.
53- Quais os possíveis nomes para as versões de projetos de software livre?
Alfa, Beta e Estável ou Desenvolvimento, Instável, em Teste e Estável.
54- Como deve ocorrer a liberação de novas versões?
Devem existir regras claras para a liberação de novas versões e deve estar bem claro o colaborador responsável pela liberação de uma nova versão.
55- Para cada função cite um software correspondente.
- Ferramenta de rastreamento de bugs: Bugzilla;
- Ferramenta para criação de páginas WEB: Wiki;
- Ferramenta para modelagem UML: ArgoUML;
- Geradores de documentação: Doxygen;
- Ferramenta para revisão de código: Codestriker;
- Locais para hospedagem do projeto: SourceForge.net;
56- Em um comércio, qual o fator motivacional?
Reconhecimento do produto perante a comunidade, gerando receita com suporte diferenciado para cada cliente em potencial.
57- Para o pessoal técnico, qual o fator motivacional?
Aprendizado, reconhecimento na comunidade, status diferenciado e valor agregado ao currículo.
58- A colaboração é incentivada no modelo de desenvolvimento proprietário?
Não. Os colaboradores possuem uma microvisão do projeto, ficando limitados a realizar a “tarefa” que lhes foi designada e privando-os de emitir a sua opinião sincera a respeito da funcionalidade do software como um todo. O gerente de projetos muitas vezes é o único que enxerga o projeto como um todo.
59- Existem projetos com muitos e com poucos colaboradores. Quando se tem muitos colaboradores, quais características devem ser levadas em consideração?
A aceitação do código deve ser feita pelo líder ou pelo colegiado, grande parte do código vem da fatia menor de colaboradores, várias partes do código vêm de projetos finais de estudantes, os líderes ou líder devem ter um maior cuidado em aceitar ou negar um código.
60- Manter um projeto é uma tarefa simples?
Não. O conjunto de variáveis (colaboradores, distância, motivação e foco) torna a tarefa de manter um projeto (principalmente a distância) muito complexa. Por outro lado, a motivação do líder é importantíssima para o sucesso do projeto e, por isso, o mesmo deve encarar a tarefa como um desafio de vida a ser enfrentado e vencido.
61- Os usuários finais também podem ser colaboradores?
Sim. Os usuários finais têm papel importante no processo de desenvolvimento, uma vez que são responsáveis pelo primeiro contato com o software e podem, assim, encontrar erros, sugerir melhorias, ajudar com sugestões, motivar o líder a continuar o projeto, etc.
62- Existem iniciativas para implementar as melhores práticas da engenharia de software ao software livre. Cite exemplos de softwares desenvolvidos segundo esta ótica.
Eclipse e Netbeans.
63- Cite 04 dicas para o sucesso de iniciativas de SL.
Não comece do zero, a menos que seja necessário; os usuários finais devem estar envolvidos no projeto; procure atingir massa crítica (quanto mais usuários/voluntários, melhor); defina bem as regras do jogo (aceitação de código, resolução de conflitos, etc.).
64- Cite 06 características da gerência de projetos no Linux.
Exploração das oportunidades que surgem da comunidade ilimitada; a característica modular permite o desenvolvimento segmentado; o Linux está dividido em duas partes: kernel e espaço de usuários; não teve planejamento estratégico; as decisões do mantenedor (Linus) são bem fundamentadas e técnicas; a própria comunidade regula os códigos que irão entrar nas versões.
65- Quais as camadas de desenvolvimento do Linux?
Mantenedor, Trusted Lieutenants, desenvolvedores e comunidade.
66- Quem são os responsáveis pela evolução do Linux?
A maior responsável pela evolução do Linux é a comunidade.
67- Quais as 04 etapas básicas das versões do Linux?
- Codificação;
- Testes baseados em peer review e aceitação do código na versão de desenvolvimento;
- Depuração;
- Liberação do código em produção;
68- Qual a ferramenta de gestão de todo processo de gestão do Linux? Qual característica marcante da ferramenta?
Bitkeeper. Permite criar um repositório a partir do repositório principal.
69- Por que as empresas não aproveitam o que já está desenvolvido e fazem uma versão proprietária com alguma inovação?
A maioria das empresas tende à ideia de que é melhor começar do zero do que implementar em cima de uma solução já construída. Além disso, dependendo da licença do software livre que será "melhorado", não há permissão de tornar uma alteração do código em um software proprietário (Exemplo: licença GPL).
70- O que é ASF (Apache Software Foundation)?
É uma organização sem fins lucrativos, criada para suportar o projeto Apache, incluindo o servidor web Apache HTTP Server.
71- Cite três características de desenvolvimento da ASF.
- Desenvolvedores voluntários
- Comunicação basicamente por listas e e-mail
- Dedicação parcial
72- Por que a virtualização veio para substituir as máquinas físicas?
Para aumentar a economia de custos, espaço em disco e acesso.
73- Por que os desktops substituíram os terminais?
Porque o meio de comunicação era falho, então foi colocado desktop nos terminais para aumentar a disponibilidade.
74- Por que as tecnologias IaaS, PaaS e SaaS estão atualmente em evidência?
IaaS (Infraestrutura como serviço), PaaS (Plataforma como serviço) e SaaS (Software como serviço) servem para empresas de qualquer porte no sentido de redução de custos. Você aluga o serviço ao invés de gastar muito para montar o seu próprio.
75- O que impulsiona o modelo de Software Livre?
- Pressões competitivas (enxugar a máquina)
- Custo-benefício
76- Onde está o dinheiro quando se trabalha com o Software Proprietário ou com Software Livre?
- Software proprietário lucra com as licenças;
- Software Livre lucra com o serviço.
77- Cite dois ganhos com o trabalho voluntário.
- Maiores chances de empregabilidade
- Maior status na comunidade
78- Para uma empresa de desenvolvimento, o modelo Software Livre permite a entrada no mercado com baixo investimento.
- A barreira financeira de entrada é pequena
- A empresa trabalha com voluntários
79- O desenvolvimento de um software SP ou SL não é garantia de sobrevivência no mercado.
O desenvolvimento de uma nova solução (SP e SL) não garante que haja aceitação dos usuários, ou seja, não garante sobrevivência.
80- O que eu, enquanto empresa, tenho a ganhar e a perder com o modelo de licenciamento do SL?
- Ganhar: reconhecimento no mercado (Exemplo: APACHE), aumento da capacitação dos colaboradores, obter soluções para problemas no código-fonte;
- Perder: demora para atingir um número grande de usuários; a ideia de o software ser distribuído de maneira gratuita reduz a aceitação num primeiro momento.
81- Com a licença BSD, é possível empacotar um SL e comercializar como SP.
Sendo uma licença permissiva, a BSD permite que se façam alterações no código de um S.L. e possa vendê-lo como S.P.
82- Com a licença GPL obriga-se que o software seja sempre Livre. Cite três ganhos.
- Documentação
- Suporte
- Softwares complementares