Escolar Documentos
Profissional Documentos
Cultura Documentos
VERSO FINAL
Relatrio de Dissertao
Mestrado Integrado em Engenharia Informtica e Computao
Co-orientador:
orientador: Ademar Manuel Teixeira de Aguiar (Doutor)
Julho de 2009
Integrao de modelos de desenvolvimento de software
mais e menos geis
Relatrio de Dissertao
Mestrado Integrado em Engenharia Informtica e Computao
15 de Julho de 2009
Resumo
A utilizao de sistemas de informao continua a ter um crescimento exponencial ao
longo dos ltimos anos e um impacto cada vez mais acrescido. Estes sistemas so
intensivamente baseados em software, pelo que a gesto de projectos de desenvolvimento desta
natureza assume uma importncia acrescida.
Market figures show that we still have a big percentage of canceled software projects, and
a very high percentage of those who fail to meet the initial objectives for scope, cost and
schedule.
More recently a series of methodologies for software development emerged which put the
emphasis on the capacity for a process to absorb changes, throughout the project and also on the
human side, promoting self-directed teams, a trustworthy and close contact with the customer.
This thesis aims to bring a higher degree of clarification on the most used software
development methodologies, more and less agile, and show how their combination can bring
value added to the software development project management.
This combination will be instantiated on a method that will supply criteria and pre-
requisites for a methodology adapted to the specific organization needs.
Agradecimentos
Quero agradecer aos meus orientadores, Pascoal Faria e Ademar Aguiar pelo apoio e
conhecimento prestado.
Uma meno para Hilel Glazer do SEI que permitiu uma conversa muito interessante sobre
a combinao de mtodos geis e no geis com uma perspectiva muito agnstica e
agregadora.
Aos meus scios e equipa do FEUP CIQS (agora Strongstep), porque acima de tudo so
meus amigos.
Por fim, e mais importante do que tudo, Susana, aos meus pais e irmos.
Pedro Gomes
ndice
1 Introduo ..........................................................................................................................1
1.1 Enquadramento ..............................................................................................................1
1.2 Motivao e objectivos ..................................................................................................4
1.3 Estrutura da dissertao..................................................................................................4
2 Gesto do desenvolvimento de software ..........................................................................6
2.1 Introduo ......................................................................................................................6
2.2 CMMI.............................................................................................................................9
2.3 PMBOK .......................................................................................................................12
2.4 TSP/PSP .......................................................................................................................13
2.5 Modelos geis ..............................................................................................................17
2.6 Scrum ...........................................................................................................................18
2.7 Extreme programming .................................................................................................20
2.8 Combinando mtodos geis e no geis.......................................................................23
3 Anlise comparativa e critrios de seleco de modelos...............................................29
3.1 Anlise comparativa dos modelos ................................................................................29
3.2 O custo da qualidade ....................................................................................................32
3.3 Critrios na seleco de modelos de desenvolvimento ................................................34
4 Mtodo de seleco de modelos de desenvolvimento de software ................................36
4.1 Mtodo de planeamento ...............................................................................................36
4.2 Eplogo .........................................................................................................................38
5 Concluses e trabalho futuro ..........................................................................................39
5.1 Satisfao dos objectivos .............................................................................................39
5.2 Trabalho futuro ............................................................................................................40
Referncias..................................................................................................................................41
6 Mapa conceptual ..............................................................................................................43
Lista de Figuras
Figura 1 - Combinando prticas geis e no geis ................................................................ 2
Figura 2 - Projectos de desenvolvimento de Software.......................................................... 3
Figura 3 - Dimenses de gesto de organizaes ................................................................ 8
Figura 4 - CMMI - Framework de modelos.......................................................................... 9
Figura 5 - CMMI - Estrutura das reas de Processo ........................................................... 10
Figura 6 - Competncia e conscincia ................................................................................ 11
Figura 7 - CMMI - Nveis de maturidade ........................................................................... 11
Figura 8 - Ciclo de vida de um projecto - PMBOK ............................................................ 12
Figura 9 - TSP/PSP - Ciclo de vida .................................................................................... 14
Figura 10 - TSP/PSP Lanamento de iterao ................................................................. 15
Figura 11- TSP/PSP - Equipas ............................................................................................ 16
Figura 12 - Scrum ............................................................................................................... 19
Figura 13 - Scrum Burndown Chart.................................................................................... 20
Figura 14 - Extreme Programming - Prticas ..................................................................... 21
Figura 15 - Extreme Programming Ciclo de vida ............................................................ 23
Figura 16 - Cinco factores para seco de mtodos ............................................................ 24
Figura 17 - Aspectos culturais na seleco do mtodo ....................................................... 25
Figura 18 - Mtodo Boehm de seleco de metodologia .................................................... 25
Figura 19 - Desenvolvimento de Sistemas de Informao e de Software........................... 28
Figura 20 - Comparando os mtodos .................................................................................. 30
Figura 21 - Posicionamento das metodologias ................................................................... 31
Figura 22 - CMMI, Scrum e TSP/PSP ................................................................................ 32
Figura 23 - Centro de gravidade de um processo................................................................ 32
Figura 24 - Custo de performance e da qualidade .............................................................. 33
Figura 25 - Mtodo para planear a qualidade ..................................................................... 37
Figura 26 - Combinando prticas geis e no geis ............................................................ 38
Lista de Tabelas
Tabela 1- Percentagem de funes realizadas por software nos avies militares ................ 7
Tabela 2 - Sucesso nos Projectos de Software ..................................................................... 7
Tabela 3 - Mtodo de seleco de metodologia .................................................................. 26
Tabela 4 - Riscos metodolgicos de Boehm ....................................................................... 26
Tabela 5 - Eficincia de remoo de defeitos ..................................................................... 34
Abreviaturas e Definies
AGILE Agilidade no desenvolvimento de software
SPRINT Termo utilizado nos mtodos geis que designa um intervalo fixo de
tempo destinado ao desenvolvimento de funcionalidades
SPRINT Termo utilizado nos mtodos geis que designa uma reunio de lies
RETROSPECTIVE aprendidas relativa a um sprint
SPRINT REVIEW Termo utilizado nos mtodos geis que designa uma reunio de
apresentao das funcionalidades desenvolvidas
iv
STANDUP MEETING Termo utilizado nos mtodos geis para uma reunio, que feita em
p, de ponto de situao de desenvolvimento
v
1 Introduo
Com a introduo dos modelos de desenvolvimento geis surgiu uma certa confuso na
comunidade profissional, ao nvel de gestores e tcnicos sobre as caractersticas efectivas de
cada modelo e o seu correcto modo de utilizao. Este trabalho vai revisitar as caractersticas de
cada modelo especfico, dos mais proeminentes, e promover um mtodo que permita a uma
organizao, ou a um projecto, conseguir tirar o melhor partido dos mesmos (ver Anexo A
Mapa conceptual).
Este trabalho promoveu uma recolha de referncias sobre a literatura mais relevante para
os tpicos em questo, nomeadamente atravs da consulta dos autores mais relevantes, dos
artigos publicados nos ltimos anos, com subsequente consulta de referncias a outros artigos,
conferncias da especialidade, e com reunies com algumas pessoas de referncia do Software
Engineerig Institute (SEI).
1.1 Enquadramento
There is no question that better management helps, but I soon realize that until we
changed the practices of software professionals themselves, we could never achieve a truly
expert software engineering capability.1
Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.
1
Winning with software An executive strategy Watts S. Humphrey Addison Wesley 2002
2
Agile Manifesto http://agilemanisfesto.org 2001
Introduo
For any given project, the project manager, in collaboration with the project team, is
always responsible for determining which processes are appropriate, and the appropriate
degree of rigor for each process.3
Embora estas trs frases estejam alinhadas no essencial do seu contedo elas provm de
correntes completamente distintas de metodologias de gesto. Provavelmente indica-nos que a
sua essncia provavelmente est correcta e que necessrio perceber qual a adequabilidade dos
contextos de aplicao.
Na engenharia de software tem existido uma evoluo nos modelos e boas prticas que
regem o seu funcionamento. Estas boas prticas, que tm uma tradio da engenharia de
sistemas promoveram a qualidade tcnica dos produtos implementados, sustentada por
processos de desenvolvimento.
Tais boas prticas, que tiveram origem para contextos especficos de desenvolvimento de
software, promoveram a elaborao de documentao detalhada em cada projecto, para que a
sustentao das decises e o capital de conhecimento adquirido pudesse ser reaproveitado nas
evolues e nos projectos futuros. Por outro lado, os modelos de qualidade utilizados de base,
com uma tradio histrica na indstria automvel japonesa, estavam orientados para a
optimizao de processos que se baseavam em trabalhadores industriais por contraponto com a
sociedade e trabalhadores do conhecimento actual. Aliado a estes factores, um ltimo parece ter
contribudo para o nascer de uma filosofia gil de gesto e desenvolvimento de projectos, que
o facto de que os processos de desenvolvimento precisam de ser adaptados realidade dos
clientes, empresas e projectos especficos.
3
Project Management Body of Knowledge 4th edition Project Management Institute - 2008
2
Introduo
Cada projecto de software envolve um fornecedor (ou mais) com determinada experincia,
com determinados processos intrnsecos, envolve tambm clientes, com nveis de experincia
diferentes, que por sua vez tm uma relao com nveis de maturidades especficos. Por outro
lado, estas duas entidades, cliente e fornecedores, implementam um projecto de software que
afecta determinado sistema, que envolve pessoas, processos e tecnologias. Os processos
envolvidos podem ter diferentes graus de criticidade e dinamismo variveis (Figura 2).
Dadas todas estas condicionantes envolvidas, existir um nico processo que responde de
forma satisfatria a todo o tipo de projectos de software?
E o que se entende por responder de forma satisfatria a um projecto?
Este trabalho foi realizado no seio de uma organizao que um grupo de inovao em
qualidade de software que se depara regularmente com os desafios de empresas de
desenvolvimento de software, que tem parcerias com os maiores referncias mundiais na rea
do desenvolvimento de software, nomeadamente o SEI e o European Software Institute (ESI).
3
Introduo
No captulo Anlise comparativa e critrios feita uma anlise das principais prticas
que podem afectar a deciso relativa ao planeamento da gesto do desenvolvimento de software.
4
Introduo
5
2 Gesto do desenvolvimento de software
Por fim feita uma anlise das iniciativas de combinao dos mtodos mais e menos geis.
2.1 Introduo
Cada vez mais o nosso mundo depende de informao e conhecimento, que so
maioritariamente suportados por sistemas de informao e como tal o desenvolvimento e
utilizao de software so um factor exponencialmente crescente veja-se o exemplo da
utilizao de software na aviao militar americana (Tabela 1).
Gesto do desenvolvimento de software
4
Winning with Software An executive summary, Watts S. Humphrey, Addison-Wesley, 2002
5
Standish group report Successful software Projects - 2008
7
Gesto do desenvolvimento de software
Estamos a falar de projectos de software com uma engenharia associada recente (software),
que procura ainda encontrar o seu estado de maturidade.
O software construdo por pessoas que devem estar motivadas, essa disciplina
catalisada atravs de processos (formais e informais) e tornada mais eficiente atravs de
ferramentas so as trs dimenses crticas em que as organizaes se focam [Konrad2007].
Quando no existem processos, o sucesso dos projectos depende em grande parte dos
bombeiros das organizaes, a visibilidade sobre o estado de um projecto limitada, no h
tempo para pensar em melhorias, provocando uma postura reactiva na organizao, e por vezes
os bombeiros queimam-se e as cinzas voltam a acender-se.
Watt Humphrey [Wats2002] definiu que para uma boa gesto de software devem ser
observados trs princpios:
1. Reconhecer que estamos no negcio do software
2. A qualidade deve ser a prioridade mxima
3. Software de qualidade desenvolvido por pessoas disciplinadas e motivadas
Estes princpios reforam a importncia crescente que o software tem na sociedade actual,
como a qualidade fundamental na sua construo e como as pessoas so quem produz e utiliza
o software.
6
CMMI, 2nd Edition Guidelines for process integration and product improvement, Mary Beth Chrissis, Mike
Konrad and Sandy Shrum, Addison Wesley, 2007
8
Gesto do desenvolvimento de software
2.2 CMMI
O Capability Maturity Model Integration (CMMI) um modelo de maturidade para
melhoria de processos de desenvolvimento de produtos e servios [Konrad2007]. Est dividido
em trs constelaes principais (Figura
( 4):
CMMI-DEV DEV Modelo de processos para organizaes que desenvolvem
produtos e servios.
CMMI-ACQ ACQ Modelo de processos para organizaes que fazem aquisies de
produtos e servios.
CMMI-SERV SERV Modelo de processos para organizaes que disponibilizam e
gerem servios.
Embora pensadas
adas no s para a indstria de software estas
stas constelaes permitem abarcar
o ciclo completo de desenvolvimento de software, desde o seu desenvolvimento ou aquisio
aqu
at a manuteno em produo. Neste trabalho ser focado o modelo de desenvolvimento
CMMI-DEV.
Este modelo de maturidade est dividido em reas de processo que fornecem prticas
processuais que as empresas
empresa devem adoptar,, no prescrevendo no entanto a forma de como o
devem fazer.
9
Gesto do desenvolvimento de software
A fora deste modelo est relacionada por um lado com a componente de gesto da
organizao, onde esto previstas prticas para a construo e definio de processos, alinhados
com os objectivos estratgicos da empresa, gesto da formao, gesto da performance e gesto
da inovao, e por outro com as prticas genricas que definem o grau de institucionalizao
dos processos da empresa, ou seja, a forma como os processos fazem parte do dia-a-dia de cada
colaborador - competncia inconsciente da empresa (Figura 6).
7
CMMI, 2nd Edition Guidelines for process integration and product improvement, Mary Beth Chrissis, Mike
Konrad and Sandy Shrum, Addison Wesley, 2007
10
Gesto do desenvolvimento de software
11
Gesto do desenvolvimento de software
Este elemento permite um caminho de evoluo para as empresas, com uma recomendao
de prioridade de implementao de prticas, permite uma forma de benchmarking entre
empresas e um grau de reconhecimento de mercado por parte dos contratantes.
2.3 PMBOK
A gesto de projectos visa a concretizao de um mbito determinado, com um custo ou
investimento definido num prazo determinado [PMBOK2008].
12
Gesto do desenvolvimento de software
O ciclo de vida nos projectos no PMBOK compreende 5 fases principais com alguma
sequncia mas que se podem sobrepor no tempo:
Iniciao: onde se tomada a deciso efectiva de avanar com o projecto e se faz o
arranque formal do mesmo.
Planeamento: onde se planeiam todas as actividades do projecto.
Execuo: onde as actividades so executadas.
Monitorizao e Controlo: onde se processa a monitorizao e controlo das
variveis de gesto do projecto.
Fecho: onde se procedem s actividades de fecho do projecto.
2.4 TSP/PSP
O Team Software Process (TSP) em conjunto com o Personal Software Process (PSP)
foram desenhados pelo SEI com o objectivo de fornecer uma estratgia e um conjunto definido
de procedimentos operacionais, para a implementao de mtodos de desenvolvimento de
software disciplinados, tanto ao nvel do indivduo como ao nvel da equipa [Watts2002]. Estas
metodologias devem ser sempre implementadas em conjunto.
O foco principal do TSP/PSP a produo de software com zero defeitos, de acordo com
os requisitos do cliente e no prazo estipulado. Caracteriza-se por utilizar mtodos quantitativos
na sua gesto, o que permite de forma rigorosa estimar e atingir os objectivos propostos como
garantir qualidade de vida s equipas envolvidas.
13
Gesto do desenvolvimento de software
O processo de lanamento que demora tipicamente 4 dias e tem como principal objectivo o
planeamento detalhado da iterao (com uma durao tpica de 1 a 4 meses) com a construo
de uma equipa motivada, envolvida e comprometida com os resultados previstos (Figura 10).
14
Gesto do desenvolvimento de software
15
Gesto do desenvolvimento de software
A utilizao da mtrica, tamanho do produto, permite obter uma correlao entre o tempo
que foi previsto e o tempo efectivamente realizado para determinada dimenso de esforo. O
processo de estimativa segue um mtodo designado por PROBE proxy based estimation que
primeiramente identifica quais os componentes relevantes para estimativas, para a tecnologia ou
domnio concreto de desenvolvimento: classes, forms, triggers, funes, etc. De seguida as
estimativas so efectuadas sobre o nmero de componentes que se prev realizar, sendo que se
classificam com trs graus de complexidade. Para obter o tempo previsto para a realizao dos
componentes so utilizados os valores histricos do indivduo, ou no existindo, valores das
equipas, da organizao ou mdias de mercado, para a realizao de cada tarefa. Desta forma
cientfica, o grau de estimativa oferece um grau de preciso muito elevado.
As equipas TSP/PSP so auto dirigidas (Figura 11) na medida em que todos os elementos
da equipa participam em todas as actividades de planeamento, monitorizao e execuo dos
trabalhos, no sendo apenas dirigidas como nas equipas mais tradicionais. Uma equipa TSP/PSP
prev uma srie de papis que podem ser acumulados por uma nica pessoa, sempre que
necessrio [Humphrey2005]:
Team leader com responsabilidade por garantir os objectivos do projecto, manter a
equipa motivada e o cliente satisfeito.
Coach com responsabilidade por garantir e treinar os elementos no desenvolvimento
das actividades TSP/PSP, normalmente externo equipa.
Gestor de planeamento com responsabilidade pelos planos do projecto e
acompanhamento das actividades individuais e do projecto.
Gestor de processo responsvel por ajudar toda a equipa em cumprir o processo
conforme foi definido.
Gestor de qualidade garantir que a equipa segue o plano de qualidade e acompanhar
os indicadores respectivos.
Gestor de suporte responsvel por ajudar na correcta utilizao de ferramentas e
gesto das configuraes.
Interface com o cliente garantir o alinhamento do projecto com os objectivos do
cliente.
Gestor de desenho garantir um desenho de grande qualidade, envolvendo toda a
equipa e fomentando a produo de boa documentao.
Gestor de implementao garantir uma boa implementao dos desenhos definidos e
com qualidade.
Gestor de testes garantir que todos os membros criam e executam os planos de testes
adequados.
16
Gesto do desenvolvimento de software
3. Orientado ao tempo
Nos processos geis o planeamento orientado a intervalos fixos de tempo (iteraes) e
no ao volume de esforo necessrio.
Estes atributos devem ser vistos e implementados como um todo e no de forma separada
para que os processos possam ser considerados geis. Estes mtodos so orientados s pessoas e
menos aos processos, dado que cada indivduo responsvel pela entrega de uma
funcionalidade completa. Nesta abordagem inicial de mtodos geis [Aoyama1998] foi referida
a componente da possibilidade do desenvolvimento distribudo mas no foi a da articulao com
o cliente.
Em 2001, uma srie de signatrios juntou-se para lanar um manifesto, que impulsionou de
forma significativa o movimento dos mtodos geis, atravs do Manifesto para o
desenvolvimento gil de Software [AgileMan2001]. A fora deste manifesto reside tambm no
facto de ter sido elaborada por personalidades proeminentes, relacionadas como
desenvolvimento de software.
We are uncovering better ways of developing software by doing it and helping others do it.
That is, while there is value in the items on the right, we value the items on the left more.
17
Gesto do desenvolvimento de software
2.6 Scrum
O Scrum nasceu de um conceito importado do desporto rugby, onde dado nfase
comunicao entre a equipa (passes laterais e para trs) e ao avano por sprints. sobretudo um
modelo que foca na gesto de projectos e no tanto em tcnicas de engenharia de software.
Schwaber que desenvolveu o Scrum referiu que para se ser verdadeiramente gil, um processo
precisa de aceitar as mudanas em vez de procurar controlar a previsibilidade [Schwaber, 2002].
18
Gesto do desenvolvimento de software
Figura 12 - Scrum
Esto definidos trs papis principais: o dono do produto, a equipa e o scrum master.
Todas as actividades de gesto esto divididas por estes trs papis. O dono do produto est
focado nas funcionalidades do produto, os objectivos em termos de retorno de investimento e
pela prioridade dos requisitos para a prxima iterao. A equipa responsvel pelo sucesso de
cada iterao e o scrum master responsvel por garantir que as regras do Scrum esto a ser
seguidas.
19
Gesto do desenvolvimento de software
20
Gesto do desenvolvimento de software
The planning game Nesta prtica so planeadas os requisitos, neste caso user
stories, para que se decidam em que iterao devem ser desenvolvidos e
entregues. As user stories devem ser estimveis e testveis. Cada user story (que
fica num story card) pendurada num quadro e deve ter uma estimativa de
esforo que deve variar entre duas a quatro semanas. Para cada story card, devem
ser criadas tarefas, de um a dois dias para facilitar a distribuio de trabalho. Para
cada alterao de requisito ou pedido de documentao criado um story card
com um esforo associado. O esforo total dispendido por iterao designado
por velocity e deve ser mantido constante ao longo do projecto e como tal
previsvel.
21
Gesto do desenvolvimento de software
22
Gesto do desenvolvimento de software
O ciclo de vida do XP define-se por iteraes evolucionrias onde existem duas fases
principais (Figura 15): o planeamento da release e a execuo das iteraes. No confundir a
evoluo com pequenos incrementos, pois o processo de definio de requisitos, desenho,
codificao e testes feito quase em simultneo [extremeorg2006].
Cada iterao est dividida em ciclos de duas semanas, onde uma verso entregue ao
cliente interno, onde posteriormente ele decide se pretende que a verso seja testada pelo
utilizador final.
No incio de uma iterao existe uma reunio com o cliente e com os programadores, onde
so definidos as funcionalidades a implementar, atravs de user stories, os programadores
estimam o tempo necessrio para implementar cada user storie, e decido em conjunto que
funcionalidades ficam na prxima release e de fora. As user stories no devem ter muito
detalhe, sendo que o detalhe efectuado na prtica quando o cliente escreve os testes de
aceitao automatizados de relembrar que aqui o cliente um representante e pode ser algum
com background tcnico. Diariamente existe uma reunio de p (stand up meeting) onde so
discutidos problemas, solues e se promove o foco da equipa.
23
Gesto do desenvolvimento de software
Este mtodo assenta sobre a anlise de cinco factores principais (Figura 16):
1. Tamanho: as metodologias geis esto mais adaptadas para equipas pequenas enquanto
as metodologias menos geis so mais difceis de adaptar para equipas pequenas.
4. Maturidade dos membros da equipa: os mtodos geis funcionam melhor com membros
de equipas com mais capacidades ao nvel tcnico e ao nvel de entendimento
processual - como existem menos processos formais as decises ficam mais
dependentes de cada indivduo, e como tal as boas decises dependem da sua
capacidade.
Quanto mais a avaliao dos factores se aproxima do centro do grfico mais gil deve ser o
mtodo.
8
Balancing Agility and Discipline, Barry Boehm, Richard Turner, Addison-Wesley, 2004
24
Gesto do desenvolvimento de software
Por outro lado considera tambm uma anlise de risco associada ao tipo de abordagem,
ponderando diversos factores, baseado num modelo de processo em espiral [Boehm2001] e
[MBASE2003].
Considerando estes cinco factores estabelecido um mtodo que prescreve como devem
ser utilizadas as abordagens geis e menos geis (Figura 18Figura 18 - Mtodo Boehm de
seleco de metodologia e Tabela 3).
9
Balancing Agility and Discipline, Barry Boehm, Richard Turner, Addison-Wesley, 2004
25
Gesto do desenvolvimento de software
Risco de ambiente
E-tech Incerteza tecnolgica
E-coord Complexidade de stakeholders
E-cmplx Complexidade de sistemas
Riscos geis
A-Scale Escalabilidade e criticidade
A-Yagni Uso de desenho simples
A-Churn Rotatividade de pessoal
A-Skill Poucos recursos formados em mtodos geis
Riscos mtodos no geis
P-Change Mudana rpida de requisitos ou prioridades
P-Speed Necessidade de resultados rpidos
P-Emerge Requisitos facilmente emergentes
P-Skill Poucos recursos formados em mtodos no geis
Processo de desenvolvimento
26
Gesto do desenvolvimento de software
Processo de negcio
Recursos humanos: as organizaes devem aprender a acomodar assuntos
relacionados com recursos humanos tais como registos de tempos, descries de
funes, prmios e gesto de competncias. As pessoas por outro lado devem ser
capacitadas para procurar abordagens no tradicionais.
Gesto do progresso: os contractos tradicionais e as tcnicas de recolha de
informao podem ser consideradas desadequadas para suportar as prticas geis
Avaliaes de standards: a maior parte das prticas geis no esto preparadas para
suportar as evidncias necessrias, em termos de documentao, para suportar as
avaliaes relativamente a standards como o CMMI e a ISO 15504 (SPICE).
27
Gesto do desenvolvimento de software
28
3 Anlise comparativa e critrios de
seleco de modelos
Este captulo comea apresentar uma srie de concluses sobre o estado da arte analisado
no captulo anterior, introduz o tema do custo da qualidade, e estabelece os princpios para um
mtodo global de planeamento de projectos de desenvolvimento de software, que integra os
diversos modelos referidos.
O Scrum uma metodologia gil iterativa, orientada para a gesto de projectos, que
promove a comunicao entre os elementos das equipas, desenho simples e pouco pensado a
nvel estratgico e pouca documentao. Est orientado para permitir mudanas de mbito ao
longo do projecto, promove entregas constantes e no muito prescritivo nas prticas de
engenharia.
O XP uma metodologia gil iterativa que foca em aspectos de engenharia, assenta sob
actividades que devem ser realizadas em conjunto, tais como o pair programming, refactoring,
simple desing e test driven development. uma metodologia prescritiva em termos de processos
de engenharia, que evita os requisitos detalhados e documentados, evita o desenho detalhado e a
documentao.
30
Anlise comparativa e critrios de seleco de modelos
O TSP/PSP f-lo e o Scrum e XP no. O TSP/PSP portanto mais previsvel e como tal
escalvel para grandes projectos em termos de dimenso, localizao ou risco.
31
Anlise comparativa e critrios de seleco de modelos
Foi abordado que consoante a organizao, o cliente, o projecto deve ser implementada
uma postura mais ou menos gil (Figura 23).
32
Anlise comparativa e critrios de seleco de modelos
O custo da performance tem a ver com todas as actividades que visam a produo de algo
que necessariamente tem que acontecer no projecto e o custo da qualidade com o custo de
actividades de controlo de conformidade (testes ou actividades de preveno) e com o custo de
actividades de correco das no conformidades (trabalho repetido ou correco de erros).
10
Raytheon Electronic Systems Experience in Software Process Improvement, CMU/SEI-95-TR-017
,
1995
33
Anlise comparativa e critrios de seleco de modelos
A anlise efectuada eficincia de remoo de defeitos de diversos mtodos, que tem sido
confirmada atravs de estudos posteriores [Nichols2009],, vem demonstrar que os mtodos de
remoo de defeitos em fases anteriores do desenvolvimento, nomeadamente com revises e
inspeces formais, so mais eficientes do que testes unitrios, testes integrados e de sistema.
Alguns valores so ingredientes chave para o sucesso dos projectos, e estes esto
espelhados em todos os mtodos apresentados:: desenvolvimento em iteraes, boa comunicao
com o cliente e entre a equipa, equipa motivadas, capacitadas e comprometidas e boas prticas
de engenharia.
Uma organizao normalmente no executa apenas um projecto, pelo que devem ser
definidas polticas organizacionais para a gesto de projectos, sendo que estas polticas devem
serr suficientemente flexveis para se poderem adaptar a contextos diferentes. A organizao
34
Anlise comparativa e critrios de seleco de modelos
deve procurar de forma uniforme, inovar, aprender com lies aprendidas, suportar a formao
de todos os colaboradores, ter processos definidos que evoluem e se adaptam conforme as
necessidade e devem ser geridas com mtricas.
Talvez faltem estudos mais rigorosos que comparem os modelos econmicos associados ao
Scrum e XP quando comparados com o TSP/PSP.
Pela informao disponvel o TSP/PSP parece ser de uma perspectiva racional mais
indicado em termos de adopo como metodologia de desenvolvimento. Tem no entanto um
custo de setup inicial elevado, que deve ser encarado como um investimento.
Para projectos de pequena dimenso ou criticidade, a utilizao de mtodos mais geis vai
responder de forma mais rpida e por vezes mais ajustada, mas sem documentao sustentada
algo que por vezes o cliente pede.
Em relao ao mtodo proposto por Boehm (ver captulo Combinando ), ser feita uma
proposta de modelo que abranja de uma forma mais global, a utilizao dos modelos
mencionados para aspectos de organizao e gesto de projectos.
35
4 Mtodo de seleco de modelos de
desenvolvimento de software
O terceiro passo tem a ver com a deteco de padres de implementao de mtodos geis
nos projectos. A deteco destes padres passam pelo objectivo inicial de que existe alguma
indefinio ou volatilidade potencial ao nvel de requisitos, para se poder explorar o conceito de
agilidade, mas deve garantir que todos os pressupostos seguintes esto assegurados:
A equipa tem alguma maturidade tcnica
A equipa est preparada para uma cultura no processual
O projecto ou fase no tem uma grande dimenso
O projecto ou fase no tem uma grande criticidade
Existe uma relao de confiana com o cliente
O cliente, ou representante, tem disponibilidade fsica e temporal
A equipa de projecto no est localizada em locais distintos
O cliente no solicita documentao exaustiva
Por fim, para as fases ou mdulos restantes do projecto, deve ser adoptada uma filosofia
no gil, que pode ser baseada numa filosofia gil mas que deve ser complementada com
37
Mtodo de seleco de modelos de desenvolvimento de software
4.2 Eplogo
O tigre representa a combinao de mtodos geis e no geis (Figura 26). Tem o grau de
robustez necessrio para grandes projectos e desafios e por outro lado capaz de reagir
rapidamente a situaes imprevistas.
38
5 Concluses e trabalho futuro
Pretendia-se com isto perceber de forma mais clara quais as diferenas, semelhanas e
graus de aplicabilidade de diferentes metodologias de desenvolvimento de software, para assim
conseguir uma gesto de projectos com maior sucesso. Este sucesso medido atravs da
satisfao do cliente e das suas expectativas indissociveis: mbito, custo, prazo e qualidade.
Este mtodo utiliza os modelos aqui referidos para adquirir uma abrangncia que trata a
rea de gesto dos processos da organizao, a gesto dos projectos e as prticas de engenharia.
Este mtodo salientou tambm as caractersticas que so transversais a qualquer modelo
seleccionado e que passam por uma evoluo iterativa dos projectos, uma gesto cuidada das
equipas, atravs do envolvimento, comprometimento, autonomia, motivao e coaching, e por
um foco no cliente, uma relao prxima, alinhada e de confiana.
Concluses e trabalho futuro
A conjugao do movimento gerado pelos mtodos geis e pelos mtodos menos geis
pode trazer uma fora virtuosa evoluo engenharia de software uma constante preocupao
pela excelncia dos produtos entregues, atravs de processos de desenvolvimento controlados e
sustentados aliados a uma capacidade de adaptao e inovao, e a um foco cuidado nas
pessoas.
Tantos os mtodos geis como os mtodos no geis tm sofrido evolues ao longo dos
ltimos anos, bem como tm surgido novos modelos (por exemplo o mtodo gil scrum-ban).
Estes novos mtodos devem ser analisados de forma a perceber que contribuies podem trazer
para o mtodo definido.
Deve existir uma constante ateno comunidade cientfica e indstria que continuam a
produzir contribuies sobre o tema. No fcil encontrar experincias sustentadas por dados
quantitativos, especialmente nos mtodos geis, dados que eles assentam precisamente em
processos leves que no promovem a recolha de exaustiva de mtricas.
40
Referncias
[AgileMan2001] Manifesto for Agile Software Development - http://agilemanifesto.org
[Aoyama1998] Agile Software Process and Its Experience, Mikio Aoyama, IEEE, 1998
[Boehm2001] Balancing Discipline and Flexibility With the Spiral Model and MBASE,
Barry Boehm, Daniel Port, Crosstalk 2001
[Boehm2004] Balancing Agility and Discipline, Barry Boehm, Richard Turner, Addison-
Wesley, 2004
[Glazer2008] CMMI or Agile - Why not embrace both! Hilel Glazer, Jeff Dalton, David
Anderson, Mike Konrada, Sandy Shrum, CMU/SEI-2008-TN-003, SEI, 2008
41
Shrinivasavadhani, 2008
[Konrad2007] CMMI, 2nd Edition Guidelines for process integration and product
improvement, Mary Beth Chrissis, Mike Konrad and Sandy Shrum, Addison
Wesley, 2007
[MCHale2005] Technical Report Mapping TSP to CMMI SEI - James McHale, Daniel S.
Wall, April 2005
[Nichols2009] Deploying TSP on a National Scale: Na expirience report from Pilot Project
in Mexico, Carneggie Mellon 2009
[PMBOK2008] PMBOK Guide 4th Edition , The Project Management Institute, 2008
[Schwaber2002] Schwaber, K. and Beedle, M., Agile Software Development with SCRUM ,
Prentice-Hall, 2002
[Schwaber2004] Agile Project Management with Scrum, by Ken Schwaber, Microsoft Press,
2004
[Standish2009] The software development project success -rates The Standish Group 2009
[Stephens2003] Extreme Programming Refactored: The Case Against XP, Matt Stephens and
Doug Rosenberg, Apress, 2003
[Young2008 ] How we did adapt agile processes tou our distributed development?, Cynick
Young, Hiroki tereshima, Agile 2008 Conference
6 Mapa conceptual