Académique Documents
Professionnel Documents
Culture Documents
PS- GRADUAO
Engenharia de Software:
Desenvolvimento Java
Engenharia de Software:
Desenvolvimento .NET
GRADUAO
Engenharia de Computao
Anlise e Desenv. de Sistemas
F ORMAES
Desenvolvedor Java
Desenv. Java: Sist. Distribudos
Gestor de TI
Desenvolvedor Web .NET 2008
MCITP Server Administrator
SQL Server 2008
r/esti
Acesse nosso site e conhea todos os nossos programas: www.infnet.edu.br/esti
TURMAS
NO RIO DE
JANEIRO
www.infnet.edu.br - cursos@infnet.edu.br - Central de Atendimento: (21) 2122-8800
maraujo@devmedia.com.br
Corpo Editorial
Editor
Rodrigo Oliveira Spnola
Colaboradores
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Jornalista Responsvel
Kaline Dolabella - JP24185
Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine. bacharel em Cincias da Computao pela Universidade Salvador (UNIFACS) onde atualmente cursa o
mestrado em Sistemas e Computao na linha de Engenharia de Software, sendo membro do GESA
(Grupo de Engenharia de Software e Aplicaes).
Na Web
www.devmedia.com.br/esmag
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. Se
voc tiver algum problema no recebimento do seu exemplar ou precisar de algum
esclarecimento sobre assinaturas, exemplares anteriores, endereo de bancas de
jornal, entre outros, entre em contato com:
www.devmedia.com.br/mancad
(21) 2220-5338
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
EDITORIAL
empresas iniciam este processo de adoo com Scrum, por tratar-se de um framework simples e
de fcil utilizao. Apesar de ser um framework que permite uma melhora significativa da produtividade e da gerenciabilidade, o Scrum peca em no trazer nenhuma orientao sobre as prticas de
engenharia. Ele permitir maior agilidade em responder s mudanas impostas pelo mercado, mas
responder a estas mudanas pode ser traumtico caso no estejamos preparados com uma base
de cdigo slida e que nos permita real segurana na hora de mudarmos nosso software. Como
a maioria das empresas que querem adotar mtodos geis no tiveram o uso de boas prticas de
engenharia, adotar o Scrum sem dar a devida ateno ao cdigo pode ser realmente doloroso.
Por este motivo, criou-se um conceito que visa auxiliar as empresas a equilibrar corretamente o uso
de prticas, princpios e valores em todos os nveis de uma organizao, com o objetivo de promover uma mudana segura e sustentvel na cultura interna e nos mtodos de desenvolvimento.
Este conceito foi batizado de A Pirmide Lean, ttulo do artigo de capa desta edio da Engenharia
de Software Magazine. Neste artigo veremos como equilibrar a aplicao de prticas, princpios e
valores no desenvolvimento de software a fim de criar uma cultura organizacional enxuta e gil. O
conceito abordado neste artigo serve para a criao, adoo e disseminao da cultura Lean e gil
de forma efetiva em uma organizao que desenvolve software.
Alm desta matria, esta edio traz mais seis artigos:
MacGyver: Gesto Perigo
Uma viso geral sobre o Scrum
A Gerncia de Projetos de Software em Duas Perspectivas Parte 2
Uso de metodologias geis em uma organizao baseada em linha de produto
Modelagem de processos usando ARIS
Refatorao para Padres Parte 11
Desejamos uma tima leitura!
Caro Leitor,
Para esta edio, temos um conjunto de 4 vdeo aulas. Estas vdeo aulas
esto disponveis para download no Portal da Engenharia de Software Magazine e certamente traro uma significativa contribuio para seu aprendizado. A lista de aulas publicadas pode ser vista abaixo:
NDICE
Por trs do bvio
06 MacGyver: Gesto Perigo
Glnio Cabral
Agilidade
07 - A Pirmide Lean: O Equilbrio das Foras geis
Samuel Crescncio
Tipo: Processo
Ttulo: Curso Scrum Product Owner Partes 1 a 4
Autor: Rodrigo Oliveira Spnola
Mini-Resumo: Esta uma srie de aulas de um treinamento voltado exclusivamente para Product Owners. O Product Owner um papel prescrito
pelo mtodo gil SCRUM responsvel pelo sucesso ou fracasso do desenvolvimento de um produto. Este um papel complexo de ser exercido no
dia-a-dia e, este curso, distribudo em uma sequncia de vdeo-aulas, tem
como objetivo tornar mais fcil a transio para aqueles que pretendem
ou necessitam trabalhar como Product Owner.
Engenharia
33 - Modelagem de processos usando ARIS
Ronney Moreira de Castro, Wellington Moreira de Oliveira e Jos Luis Braga
Desenvolvimento
40 - Refatorao para Padres Parte 11
Jacimar Fernandes Tavares e Marco Antnio Pereira Arajo
Administrador de Empresas, ps-graduado em Gesto de Pessoas e msico. Idealizador do site de educao infantil www.novainfancia.com.br.
D
s
Feedback
eu
sobre e
s
edio
ta
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
A Pirmide Lean
O Equilbrio das Foras geis
Samuel Crescncio
samuel.crescencio@oncast.com.br
Twitter: @screscencio
baixssima qualidade e, em alguns casos, desumanos. Sendo assim, encontrar uma maneira efetiva e menos dolorosa
para a adoo de mtodos geis tornou-se vital. Em geral, as
empresas iniciam este processo de adoo com Scrum, por
tratar-se de um framework simples e de fcil utilizao. Apesar
de ser um framework que permite uma melhora significativa
da produtividade e da gerenciabilidade, o Scrum peca em no
trazer nenhuma orientao sobre as prticas de engenharia.
Ele permitir maior agilidade em responder s mudanas impostas pelo mercado, mas responder a estas mudanas pode
ser traumtico caso no estejamos preparados com uma base
de cdigo slida e que nos permita real segurana na hora de
mudarmos nosso software. Como a maioria das empresas que
querem adotar mtodos geis no tiveram o uso de boas prticas de engenharia, adotar o Scrum sem dar a devida ateno
ao cdigo pode ser realmente doloroso.
Por este motivo, criou-se um conceito que visa auxiliar as empresas a equilibrar corretamente o uso de prticas, princpios e
valores em todos os nveis de uma organizao, com o objetivo
de promover uma mudana segura e sustentvel na cultura
interna e nos mtodos de desenvolvimento. Este conceito foi
batizado de A Pirmide Lean, apresentado na Figura 2.
Integridade
Mary e Tom Poppendieck definiram dois tipos de integridade:
conceitual e percebida, como exibido na Figura 4. Integridade
conceitual aquela que s os construtores sabem que existe.
Exemplo: os engenheiros de um avio sabem se a aeronave
pode suportar certa carga de peso, pois fizeram uma srie
de clculos para isto. J a integridade percebida aquela que
os usurios podem notar por exemplo, o design do avio, o
acabamento das poltronas, etc. O mesmo ocorre em software,
e para que se tenha integridade, preciso uma comunicao
efetiva, a fim de criar um fluxo contnuo de informaes entre
os desenvolvedores, usurios e clientes (e vice-versa).
Respeito
Seria timo se pudssemos lidar somente com a complexidade envolvida no desenvolvimento tecnolgico e no mundo
dos negcios. Porm, temos tambm que lidar diariamente
com o organismo mais complexo que existe na Terra: o ser
humano. Respeitar as pessoas do ponto de vista do Lean no
significa apenas aplicarmos o bom senso e a boa educao que
aprendemos em casa. A forma como uma equipe se organiza
Ver o todo
Tipos de Desperdcio
Quando comeamos a identificar desperdcio, criamos tambm uma oportunidade para melhoria no processo. Ainda para
entender um pouco mais sobre desperdcio, vamos ver os trs
tipos definidos pelo Lean.
Entregar rpido
10
Muda
Todo o tipo de atividade que no gera valor para o negcio.
Aplicando a ferramenta de mapeamento da cadeia de valor, podemos identificar como desperdcio alguns itens: filas, espera,
processos ineficazes que geram retrabalho e outras coisas mais.
Um outro exerccio que podemos fazer para identificar o muda
listar 15 atividades comuns que executamos diariamente,
incluindo ler e-mail, almoar, conversar, fumar (quando for
o caso), codificar, desenhar, documentar, testar, etc. Depois
classificamos estes itens, dando um peso de 1 a 5, sendo 5 o
que gera mais valor para o cliente e 1 o que menos gera. Aps
isto, basta contar quantas atividades tm o valor 4 ou 5 e voc
ver o grande nmero de coisas que faz diariamente que no
geram valor direto.
Muri
Sobrecarga de processo. comum empresas imporem perodos de rush, onde as pessoas precisam trabalhar longas
jornadas de trabalho, s vezes 12 ou 14 horas por dia, durante
dias seguidos. Ou seja, buscam ocupar seus funcionrios em
at 150% de sua capacidade. Porm, o que acontece se carregarmos um avio com 110% de sua capacidade? Possivelmente
teremos um acidente areo. Se subirmos isto para 130% ou
150%, certamente teremos uma tragdia. O mesmo ocorre com
o ser humano e com os processos que utilizamos para desenvolver software. Se estivermos funcionando a 100% de nossa
capacidade, certamente no teremos espao para absorver
Mura
Irregularidades. Todo o tipo de defeito existente considerado Mura. Mura tudo aquilo que no desejado, uma
inconsistncia ou, no jargo mais comum, um bug. O Mura
tambm pode ser oriundo do muri ou do muda. comum
observarmos a forma como as pessoas tratam o mura e vermos
que geralmente no h uma correo de fato, mas apenas uma
soluo paliativa para o problema. Vamos pegar como exemplo
um bug em um sistema, que foi identificado em uma fase de
homologao ou em produo. O bug relatado aos desenvolvedores que geralmente vo depurar o cdigo at encontrar o
problema. Consertam-no, compilam e devolvem outra verso
do binrio para a produo. Neste caso, grande a probabilidade deste defeito voltar ou de algum efeito colateral ser gerado
a partir desta correo sem considerar o tempo desperdiado
tentando achar o problema atravs de debug.
Equipes um pouco mais preparadas utilizam testes automatizados e vo reduzir o tempo com debug. Primeiro, iro criar um
teste automatizado que reproduz o problema e posteriormente
vo direto ao ponto para corrigir o bug. Como utilizam testes
automatizados, esta equipe saber imediatamente dos efeitos
colaterais causados com a alterao no cdigo e ter maior
segurana em devolver uma verso corrigida para a produo.
Esta equipe ainda ter o benefcio de no ter regresso, ou seja,
o problema dificilmente ir aparecer novamente, pois est bem
cercado pelos testes automatizados que podero ser facilmente
reproduzidos a qualquer momento. Aos olhos da maioria das
pessoas este procedimento parece bom. De fato , mas ainda
falta algo para que seja considerado excelente.
O pensamento Lean orienta reflexo sobre a causa raiz cada
vez que encontramos um problema. Em outras palavras, qual
foi a falha em nosso processo de desenvolvimento que permitiu que este erro passasse para a produo? Por que nossos
mtodos de testes no detectaram este erro antes? Trabalhar
na causa raiz do problema ser sempre o meio mais eficaz de
preveno. E a preveno, quando efetiva, ser sempre mais
barata do que a cura.
Princpios do Lean
Vamos explorar um pouco mais a fundo os princpios que
deram origem ao Lean e que permeiam todo o conceito da
Pirmide Lean.
Jidoka
Tambm conhecido como Autonomation ou Inteligent Automation,
a automao com um toque humano. Este foi um dos primeiros
conceitos criados por Sakichi Toyoda, fundador do Grupo Toyota. Ainda no sculo XIX, Sakichi observava sua me trabalhar
em teares manuais feitos de madeira e procurava maneiras de
facilitar o trabalho de tecelagem. Em 1890, Sakichi inventou um
tear de madeira manual que possibilitou um aumento de 50%
na produtividade, fazendo com que sua me utilizasse somente
uma das mos para fazer o trabalho que antes precisava das duas.
Seguindo esta ideia de automao, ele aprimorou seu invento e em
11
1906 criou o primeiro tear mecnico automatizado. Implementando o conceito de melhoria contnua, em 1924, Sakichi e seu filho
Kiichiro chegaram ao Modelo G, um tear automatizado de alta
velocidade que detectava quando um fio arrebentava e parava
automaticamente a mquina para que no produzisse tecidos
defeituosos. Suas inovaes para parada automtica e preveno
de desperdcios foram extraordinrias.
Com o invento, Sakichi eliminou a necessidade de ter um
operador monitorando as mquinas de tear continuamente.
Agora, um nico operador poderia monitorar at 30 mquinas,
possibilitando uma diminuio expressiva no custo, bem como
um aumento da qualidade e produtividade das mquinas de tear
da poca. Assim, com a automao, Sakichi criou um meio para
que as mquinas parassem automaticamente quando qualquer
problema ocorresse e, desta forma, nunca produzissem defeitos.
Sobretudo, o Jidoka eliminou a necessidade de monitoramento
humano contnuo e deu origem a uma cultura que uma das
bases do Lean, a Stop the Line.
Sistema Puxado
Um sistema puxado de produo determina a carga de
trabalho de acordo com o consumo do cliente. Se no houver
consumo no haver produo, eliminando completamente o
desperdcio com a produo excessiva. Diferentemente de um
sistema empurrado, onde h produo independentemente da
demanda, o sistema puxado gerencia toda a cadeia produtiva
desde a extrao da matria prima at a transformao em
um produto acabado. Para auxiliar neste processo, Taichi Ohno
concebeu uma ferramenta chamada Kanban, que permite um
gerenciamento visual e colaborativo da produo puxada. O
Kanban tornou-se tambm uma ferramenta muito importante
para gerenciar o desenvolvimento de sistemas complexos.
Veremos mais adiante como aplic-lo a software.
Heijunka
O Heijunka uma tcnica de anlise da produo que auxilia no nivelamento da produo e consequente eliminao
do Muda, permitindo criar cadncia na demanda e nivelar a
produo para potencializar a vazo do sistema e o fluxo de
entrega de valor. Para aplicar o Heijunka, necessrio entender
o funcionamento do Kanban para identificar como so distribudas as cargas em um processo de desenvolvimento.
Poka-Yoke
Pessoas
Mecanismos a prova de erros. As linhas automatizadas de produo na Toyota so dotadas de mecanismos de deteco de falhas
que no permitem a insero de erros no processo. Nas mquinas
de solda, por exemplo, um mecanismo verifica se a mquina est
apta a fazer a soldagem se tudo estiver certo, a solda ser realizada. Aps o processo, outro mecanismo faz uma verificao para
ver se tudo ocorreu bem. Caso algum dos testes falhe, a linha de
produo para automaticamente. Para os procedimentos manuais,
existe uma srie de checklists que permitem validar cada etapa do
trabalho dos funcionrios. Novamente, quando uma etapa falha, a
linha de produo parada e o problema solucionado a partir de
sua causa raiz. Juntando a automao inteligente do Jidoka com os
mecanismos a prova de erros Poka-Yoke, e com uma cultura Stop
the Line, temos um processo produtivo maduro, padronizado e
de alta qualidade. Quando desenvolvemos software, precisamos
tambm ter estas caractersticas inseridas no processo vamos
discutir mais a frente como fazer isto.
Just in Time
Ter um processo just in time significa reduzir desperdcio
fazendo somente o que necessrio, na quantidade necessria,
12
formada de modo completo, compreendendo todos os conhecimentos e habilidades necessrias para transformar a viso em
produtos que gerem valor efetivo para a organizao. Equipes
geis possuem a autonomia necessria para definir o que
valor de negcio e tambm para determinar qual a tecnologia
ser necessria para entregar tal valor. A Figura 6 demonstra
como uma equipe gil pode ser formada.
Quebrando a Viso
Uma vez que a organizao tenha definido adequadamente
sua viso e estratgia de negcios partimos para a implementao, aplicando os princpios e valores do Lean e do
desenvolvimento gil nas demais camadas da organizao.
Dependendo do nvel de maturidade da empresa e das caractersticas dos projetos, ela poder optar por usar Scrum
ou Kanban para criar um processo de entrega de valor. Antes
disso, precisamos quebrar a viso em objetivos menores que
sejam especficos e mensurveis. Tanto no Scrum quanto no
Kanban vamos utilizar uma ferramenta para isto as estrias do usurio. Sendo assim, vamos entender melhor como
utilizar esta ferramenta antes de entrar em detalhes sobre
Scrum e Kanban.
13
Estrias
Uma estria, ou User Story, uma frase simples que descreve uma necessidade ou requisito de sistema. Estrias so
utilizadas no desenvolvimento gil para especificao de
requisitos, em conjunto com critrios de aceite devidamente
elaborados. Estrias so uma forma rpida e eficaz de coletar
e manter requisitos sem a necessidade de uma formalizao
burocrtica, adicionando agilidade no processo e facilitando
o planejamento.
Uma estria pode ser considerada a funcionalidade em si
dentro do ciclo de desenvolvimento de software. A estria, em
geral, uma requisio do Product Owner que, passada para
o time de desenvolvimento, se transformar em uma poro
do software funcionando. Detalhes sobre a estria emergem
durante as discusses nas sesses de planejamento. Entretanto,
algumas informaes adicionais podem acompanh-la desde
sua concepo, tais como: motivao do Product Owner para
requisit-la, critrios que iro reger sua aceitao e descries
tcnicas mais detalhadas, quando necessrio.
O time de desenvolvimento colabora com o ciclo de vida das
estrias na medida em que as transforma para que possam ser
classificadas como SMART:
Especfico: refere-se a uma interveno pontual no software
e no ao desenvolvimento de um artefato muito grande ou
complexo;
Mensurvel: deve ser possvel mensurar o custo de desenvolvimento e o valor gerado, alm de prever sua situao futura
aps o desenvolvimento da estria;
Alcanvel: na medida em que seu custo pode ser mensurado,
uma estria deve ser um objetivo possvel de ser alcanado,
cujo comprometimento com a entrega por parte da equipe
seja efetivo;
Realista: A tecnologia escolhida deve contemplar de forma
realista fatores como custo, tempo disponvel e capacidade
tcnica da equipe;
Time-boxed (tempo fixo para o desenvolvimento): uma estria
deve ser planejada para ser entregue por inteira dentro de um
ciclo de desenvolvimento. Porm, em um eventual atraso, ela no
deve ser motivo para atrasar ou adiantar a entrega do ciclo.
Figura 8. Backlog
14
Priorizao
Estrias de desenvolvimento normalmente so criadas pelo
Product Owner, mas outras pessoas podem exercer esta funo.
Estrias de manuteno corretiva podem ser criadas por uma
equipe de suporte. Estrias de refactoring criadas pelo time
de desenvolvimento e estrias de novas funcionalidades, em
geral, podem ser criadas por uma equipe de marketing ou
at pelo usurio final. Independente da fonte, a estria ser
obrigatoriamente priorizada pelo Product Owner.
Um Product Owner focado em maximizar o retorno do seu
investimento certamente realizar um bom trabalho de priorizao. Uma priorizao adequada pode levar o desenvolvimento a alcanar um nvel de produtividade representado pela
Lei de Pareto. A Lei de Pareto diz que, com 20% do esforo de
desenvolvimento, pode-se gerar 80% do valor no software. O
mesmo poder ser observado durante a manuteno corretiva
do software, quando 80% dos problemas podem ser resolvidos
atacando 20% das causas. A Figura 9 demonstra essa razo de
esforo e resultado da Lei de Pareto.
Diversas tcnicas de priorizao podem ser utilizadas, e dentre elas podemos citar o clculo do Retorno do Investimento
(ROI), onde se mensura o custo do desenvolvimento e o valor
gerado, a tcnica MoSCoW (Must, Should, Could, Wont) e a
anlise de Kano.
O clculo do ROI realizado elencando-se diversos fatores,
como custo do desenvolvimento, custo da estrutura fsica de
desenvolvimento e produo, e aspectos como capacidade de
aumento nas vendas, conquista de novos clientes ou mesmo
a reteno de atuais clientes. Para tanto, uma anlise mais
15
16
Visibilidade e Rastreabilidade
Processos geis proporcionam total visibilidade, controle
e rastreabilidade de tudo o que ocorre durante o ciclo de
desenvolvimento. De fato, os mtodos geis propiciam uma
oportunidade diria para anlise de riscos e tomada de deciso
de modo a corrigir o mnimo desvio indevido de curso. Todas
as ocorrncias so disponibilizadas atravs das ferramentas
de gesto como dashboard e burndown charts para todos os
membros do projeto. Alm disso, a comunicao direta entre
equipes gera maior colaborao, visibilidade e controle do
projeto. O prprio processo de ciclos curtos proporciona maior
aprendizado e feedback concreto sobre o exato andamento do
projeto, gerando maior segurana e consequente aumento de
auto-estima para todos os envolvidos.
Com base nas ferramentas e tcnicas de metodologias
geis, visibilidade e controle so potencializados da seguinte
forma:
Dashboard painel que contm as estrias e tarefas priorizadas no backlog e que demonstra a evoluo no ciclo de vida
do desenvolvimento;
Grfico de evoluo burndown charts proporcionam visibilidade sobre a velocidade de produo da equipe e se esta
velocidade adequada para os objetivos;
Aceites o cliente aceita ou rejeita as estrias entregues ao
final de cada ciclo de desenvolvimento. Tudo documentado,
incluindo o planejamento, o que foi realizado e eventuais
diferenas;
Software funcionando sempre ao final de cada iterao o
cliente recebe um software pronto para uso, proporcionando
feedback e retroalimentao da viso do produto;
Testes Automatizados
Testes automatizados so certamente uma das mais fundamentais tcnicas de desenvolvimento de software, que permite
uma adio severa de qualidade ao cdigo. O grande objetivo
criar esta qualidade durante a construo do cdigo, ao invs
de test-lo mais tarde. Em geral, equipes que no investem na
criao de testes automatizados necessitam de um longo perodo de testes ao final de cada ciclo de desenvolvimento. Esse
investimento tardio na qualidade compromete o conhecimento
da real situao do software durante o desenvolvimento, o que
gera atrasos, falta de visibilidade, gerenciabilidade e assertividade do produto final.
O investimento em testes automatizados oferece a oportunidade de obter feedback dos testes mesmo durante o desenvolvimento do software. A grande vantagem desta abordagem
o fato de se poder testar todo o sistema facilmente, a partir
de apenas um boto na IDE. A reprodutibilidade dos testes
encoraja sua execuo, minimizando a necessidade e o custo
de manuteno corretiva. A aplicao de testes automatizados
tambm a criao de um ambiente que permita o aprendizado de forma implcita, conforme mencionado no incio deste
artigo.
Os testes automatizados so blocos de cdigo, chamados
cdigos de testes, que exercitam o cdigo de produo. Os
testes confeccionados variam na sua abrangncia e no foco.
Quanto abrangncia, podem ser:
Testes unitrios: testam cada menor trecho de cdigo do
sistema;
Testes integrados: testam classes ou mdulos do sistema de
forma integrada;
Testes funcionais: testam funes especficas do sistema de
ponta a ponta, abrangendo todo o fluxo da informao;
Testes de aceitao: testes inspirados na condio de aceitao do cliente ou usurio. Geralmente s
o aplicados diretamente na interface do sistema.
Automatizao do Ambiente
A Engenharia de Software requer que processos repetitivos
sejam executados inmeras vezes. Estas atividades envolvem,
por exemplo, a execuo da sute de testes, compilao do
sistema, gerao de verso de distribuio, configurao do
ambiente de execuo (como base de dados), notificao dos
responsveis em caso de erros nos testes, criao de relatrios
de aderncia aos padres enfim, a lista bem extensa.
De maneira geral, estas atividades, se desempenhadas por
pessoas, requerem uma equipe dedicada e muito disciplinada.
No entanto, a propenso a erros durante a execuo da rotina
bastante alta, o que invariavelmente configuraria desperdcios (Mura).
Para a reduo destes desperdcios recomenda-se a automatizao de tais processos. Neste tpico sero discutidas aes
que podem ser tomadas para automatizar seu ambiente.
Builds Automatizados
Existem ferramentas que podem auxiliar a automatizao dos
processos repetitivos de desenvolvimento. Tais ferramentas podem variar de acordo com a tecnologia. Alguns exemplos so:
17
Integrao Contnua
Dispor de builds automatizados para seu projeto um
grande passo rumo automatizao dos processos, suporte
deciso sobre investimentos em qualidade, visibilidade,
entre outros. Entretanto, para que estes benefcios sejam de
fato gerados, necessrio que estes processos automatizados
sejam executados de maneira sistemtica e autnoma. Por
exemplo, a sute de testes e a rotina para execut-los no
obtero os benefcios desejados caso no sejam executados a
cada contribuio dos desenvolvedores sobre o cdigo fonte
do software do projeto. O disparo do processo de execuo
peridica poderia ser executado pelo pessoal responsvel por
Software Intelligence
18
Concluso
Em todos os nveis da Pirmide Lean possvel encontrar
elementos trabalhando em conjunto para criao de valor
na organizao. Podemos observar que falamos sempre de
pessoas, processos e ferramentas tudo isso para a criao
da melhor tecnologia. O Lean chama este processo de Systems
Thinking, e orienta a olhar para a juno de pessoas, processos e ferramentas como um sistema, que precisa ser afinado e
regulado de modo a gerar o seu melhor potencial.
A partir do momento que certas tcnicas testes automatizados, TDD, refactoring, arquitetura emergente, simplicidade e
integrao contnua, por exemplo so aplicadas corretamente,
formamos uma base slida para que a viso da organizao
seja rapidamente implementada e entregue com a mais alta
qualidade. O correto equilbrio na definio de valores e
princpios e na aplicao das tcnicas do Lean, Scrum e Kanban, conduz a organizao para nveis de excelncia ainda
no alcanados. Esta excelncia permitir a criao de uma
cultura baseada em relacionamentos fortes e duradouros,
estimulando a criatividade e a inovao. Responsabilidade,
disciplina, senso de propriedade, capacidade de auto-gesto,
respeito e colaborao permitiro a criao de uma equipe
extremamente gil e coesa, que tenha prazer naquilo que faz e
que, principalmente, construa uma relao de confiana entre
si e para com seus clientes.
Espera-se, pois, que a viso da Pirmide Lean ajude a indstria de software a tornar-se mais produtiva, humana e
sustentvel.
Referncias
Apresentao da Pirmide Lean na web
http://prezi.com/w6pjte9n4bsq/the-lean-pyramid/
Blog da OnCast Technologies
http://onca.st/blog
Site da Agile Alliance (rico em artigos)
http://www.agilealliance.org
D
s
edio
ta
Vale salientar que foram apresentadas algumas das ferramentas disponveis no mercado. O emprego de cada
uma delas no processo de desenvolvimento ser analisado
www.devmedia.com.br/esmag/feedback
19
sobre e
s
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
20
esenvolvimento de sistemas
uma atividade que requer criatividade. Esse um dos motivos
pelos quais no se pode automatizar
completamente a prpria atividade. Tal
criatividade, caracterstica marcante
da mente humana, requerida no s
na soluo de problemas complexos de
forma nica e inovadora, mas tambm,
e principalmente, na adaptabilidade a
situaes novas e inusitadas.
Desenvolvedores vem-se constantemente s voltas com situaes no
documentadas, mudanas de requisitos
durante o projeto, alm de variaes no
escopo levantado. Quando envolvidos
em um projeto de TI, cujo modelo de
gesto baseado em processos prdefinidos, desenvolvedores ficam sem
alternativas quando precisam lidar com
acontecimentos no previstos.
Modelos de gesto baseados em processos definidos estabelecem etapas
sequenciais e entregas intermedirias
rgidos, sem margens para manobra. Sistemas de informaes, ou outros projetos
SCRUM
Dentre as diversas propostas existentes, destaca-se o Scrum,
formalizado entre 1993 e 1995 por trabalhos de Jeff Sutherland
e Ken Schwaber, entre outros autores. Os fundamentos cultivados por Scrum baseiam-se em trabalhos muito anteriores,
de Ikujiro Nonaka e Hirota Takeuchi, da Toyota, que em 1986
publicaram um artigo onde propunham um estilo de gesto
holstico (considera que o todo maior que a soma das partes), onde a equipe busca, como em um jogo de futebol, de
forma integrada, chegar ao gol. Peter Degrace e Leslie Stahl,
ao mencionar o artigo de Takeuchi e Nonaka em seu livro
Wicked Problems, Righteous Solutions, comparam as idias
apresentadas a um movimento presente no jogo de rugby, o
Scrum. Surgia o nome do mtodo.
Em 1999, Ken Schwaber e Mike Beedle escreveram o primeiro
livro sobre Scrum: Agile Software Development with Scrum.
Os autores definem Scrum no como uma metodologia, mas
como um framework conceitual, um conjunto de ideias,
21
pequenos ciclos, dentro dos quais pode-se desenvolver desde projeto at implantao de incrementos e entre os quais,
pode-se acomodar sem grande dificuldade as mudanas ao
longo do processo. Isso na verdade produz um produto final
que invariavelmente mais adequado para o cliente do que
o produto idealizado a princpio; se os requisitos evoluem, o
produto evolui tambm.
Equipes de desenvolvimento gil s admitem integrantes
motivados. Para compor uma equipe produtiva, as pessoas
tm que dispor de condies materiais e mesmo emocionais
favorveis, sem o qu a produtividade esperada ser afetada.
A questo das comunicaes eficazes muito trabalhada nessas metodologias. consenso entre os signatrios do encontro,
que a melhor maneira de efetuar comunicao e transmitir
informaes entre os integrantes da equipe atravs de conversao face a face. claro que tais conversaes podem (e
segundo adeptos de metodologias mais tradicionais, devem)
ser acompanhadas de documentao no mnimo bsica, mas
isso no invalida esse fundamento. Uma conversa face a face
extremamente mais esclarecedora do que um e-mail.
Como um fundamento central final, a equipe deve, periodicamente, reunir-se e refletir sobre como tornar-se mais eficiente.
Acreditar que j se chegou ao mximo incentiva a inrcia e faz
com que a equipe estacione.
22
A dinmica do SCRUM
A partir das definies de elementos bsicos e de integrantes
e papis apresentada, pode-se descrever a dinmica do processo, ou seja, como esses elementos interagem para produzir
software de forma gil e com qualidade. Para descrever como
isso se d, considere-se sprints com time-box de 30 dias.
O primeiro dia de cada sprint dedicado ao Sprint Planning
Meeting, ou encontro de planejamento do sprint, composto
de duas reunies de time box de at 4 horas cada uma. A
primeira delas realizada apenas entre o Scrum master e o
product owner. Nessa reunio, os integrantes verificam o product backlog, quanto completude e quanto priorizao das
funcionalidades descritas no documento. Essas tarefas so de
responsabilidade do product owner. Itens no product backlog
obedecem a um critrio denominado itens potencialmente
implantveis, ou seja, itens totalmente operacionais que resolvem algum problema de um ou mais stakeholders.
A segunda reunio do Sprint Planning Meeting realizada
entre o Scrum master e o Scrum team, o time de desenvolvimento, embora o product owner possa ser convidado a participar. Nessa reunio, o time selecionar, do product backlog,
os itens ou user stories que se comprometero a desenvolver
nos prximos 28 dias do sprint.
Para fazer isso, as user stories so quebradas em tasks (tarefas), que constituem, idealmente, trabalho que pode ser realizado em um sprint dirio. Essa quebra em tarefas baseada
em estimativas de tempo com mtricas prprias da metodologia, como ser visto adiante, e gera como produto um sprint
backlog. Aqui, destaca-se uma caracterstica vantajosa do
Scrum em relao s metodologias mais clssicas. Sob Scrum,
quem faz a estimativa de tempo o desenvolvedor, aquele que
efetivamente cria o cdigo, enquanto que nas metodologias
clssicas esta tarefa realizada por analistas de sistemas que
no esto necessariamente envolvidos com codificao. A prtica demonstra que a experincia acumulada pelo codificador
torna-o significativamente mais apto para estimar tempo e
esforo do que um simples aplicador de mtricas.
Logo aps a criao do sprint backlog, o time pode adotar
como ferramenta de apoio um quadro denominado taskboard,
que rene e organiza as tarefas em categorias: stories, tasks,
tasks em execuo e tasks completadas. A Figura 2 apresenta um
exemplo de taskboard onde foi traado um grfico burndown,
que atualizado diariamente, mostra a evoluo do esforo
empreendido e o esforo remanescente.
A partir desse primeiro dia de planejamento, seguem-se 28
dias de trabalho baseados no selected backlog ou sprint backlog.
Cada dia tpico de trabalho comea com uma reunio rpida
denominada Daily Meeting, com time box de no mximo 15
minutos, para no comprometer a produtividade da equipe.
Nessa reunio, o Scrum master ouve a equipe e procura
remover impedimentos ao bom cumprimento das tarefas
23
Comprometimento e envolvimento
24
De maneira semelhante, dependendo do evento, cada participante pode ter sua importncia reclassificada, tornando-se
mais ou menos influente. A cada evento tpico de Scrum, so
identificados os participantes do tipo galinha, ou seja, pessoas
que esto envolvidas, os participantes do tipo neutro, que no
influenciam os resultados do evento, e os participantes do tipo
porco, aqueles que esto comprometidos. O participante do
tipo porco tem sempre muita responsabilidade no evento em
que participa e o sucesso de tal evento depende diretamente
de seu desempenho.
Concluso
Metodologias de desenvolvimento de sistemas existem s dezenas. Um grande empecilho a um grande painel comparativo
a diferenciada natureza dos sistemas de informao. no
mnimo arriscado afirmar que essa ou aquela metodologia
mais ou menos eficiente que outra. Parece sempre mais equilibrado perceber que cada uma delas tem qualidades e falhas,
e que sua aplicabilidade sempre depende de uma srie no
trivial de fatores de influncia.
Outra abordagem interessante, considerando metodologias
de desenvolvimento de sistemas, nunca consider-las e
aplic-las de forma dogmtica, ou seja, sem admitir adaptaes.
Equipes e profissionais criativos sempre foram o diferencial em
se tratando de inovaes, o prprio Scrum prova disso.
De qualquer forma, a adoo de metodologias mais tradicionais
ainda pode se fazer necessria quando o projeto for altamente
dependente de grande documentao, quando as equipes de
25
D
s
Feedback
eu
edio
ta
26
sobre e
s
Agilidade
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
Giselle Tavares
gitavares@hotmail.com
Felipe Furtado
felipe.furtado@cesar.org.br
27
Linhas de Produto
Empresas de Linhas de Produto so aquelas que produzem
um software possvel de ser utilizado por segmentos de
mercado diversos, mas que pode ser adaptvel para cobrir as
necessidades especficas de seus clientes, pensando ainda no
valor de negcio como um todo.
De acordo com o Software Engineering Institute, uma linha
de produto utiliza tcnicas e prticas de engenharia para
criar um conjunto de sistemas que compartilham caractersticas comuns, satisfazendo as necessidades especficas
de um determinado segmento do mercado ou misso, e que
so desenvolvidos a partir de um ncleo comum de maneira
prescrita. Tem como atividade principal a integrao ao invs
do desenvolvimento.
28
O Scrum um framework para planejamento e acompanhamento de projeto que segue os princpios do Manifesto gil.
Por ser iterativo e incremental, ele funciona bem em um
ambiente de constante mudana. Prov equipes autogerenciveis e prope uma forma de trabalho flexvel e adaptvel,
no apenas em relao ao escopo e requisitos de um projeto,
mas tambm quanto troca de equipes, de ferramentas, de
linguagens de programao, etc. [4].
O XP (eXtreme Programming) uma metodologia gil voltada para a Engenharia de Software, dando mais ateno
programao, e no tanto ao gerenciamento, como o foco do
Scrum, motivo pelo qual normalmente so metodologias utilizadas juntas [3]. Foi criado por Kent Beck em 1996 e busca
aprimorar um projeto de software utilizando cinco valores
essenciais: comunicao, simplicidade, feedback, respeito e
coragem. Foram definidas 12 prticas, sendo uma delas o Pair
Programming, que consiste em juntar dois desenvolvedores
em um nico computador, concentrando-se no mesmo cdigo. Isto ir fazer com que a qualidade do software aumente,
mas sem impactar na entrega. O principal benefcio passa a
ser a disseminao do conhecimento entre o time.
O Kanban traz consigo a filosofia do JIT (Just In Time)
veja Nota 1, que significa produzir apenas o necessrio,
no tempo necessrio, na quantidade necessria, e no local
necessrio, com qualidade e envolvimento das pessoas, eliminando assim o desperdcio, e garantindo o fluxo contnuo
de produo [2].
Para David Anderson, o fato do Kanban possuir limite
fixo do trabalho em progresso (WIP, Working In Progress
Nota 2), proporciona um tempo de ciclo previsvel e eleva a
expectativa da entrega com maior nvel de qualidade. Alm
disso, sendo um sistema puxado, facilmente se verifica onde
est o gargalo no fluxo de trabalho. Ainda de acordo com
Anderson, Kanban no um processo de ciclo de vida de
gerenciamento de projeto ou de desenvolvimento, mas sim
uma abordagem para gerenciar mudanas.
Nota 1: Just In Time
JIT, ou Just In Time, um sistema de administrao da produo que determina que nada deve
ser produzido, transportado ou comprado antes da hora exata. Pode ser aplicado em qualquer
organizao para reduzir estoques e os custos decorrentes.
Engenharia de Software Magazine - Uso de metodologias geis em uma organizao baseada em linha de produto
Caractersticas da Organizao
A empresa estudada existe a mais de 20 anos no mercado
e dedica-se ao desenvolvimento de sistemas de gesto em
diversas reas de atuao em todo o territrio nacional. Sua
matriz est localizada no Nordeste, e possui cerca de 250
funcionrios. O processo analisado utilizado para o desenvolvimento de um ERP (Enterprise Resource Planning), com
cerca de 20 anos, e que possui em torno de 80 colaboradores
ligados diretamente em sua fase de construo. O produto
possui verses liberadas a cada dois meses e releases liberados para o cliente semanalmente. Cada liberao de uma
nova verso considerada um projeto, que por sua vez, se d
atravs do backlog do produto, com as datas de cada customizao j acordadas com os clientes, baseadas em estimativas
realizadas pela equipe.
29
30
(Software Engineering Process Group) Nota 3, no era utilizada para melhoria do time no que se refere entrega da
Sprint com qualidade. Eram discutidos problemas de baixa
relevncia ao melhoramento de fato da produtividade do
Time. Essa reunio, com o passar do tempo, passou a no
ser mais realizada pelos times, alegando discutirem sempre
as mesmas coisas.
Nota 3. SEPG
SEPG, ou Software Engineering Process Group, o Grupo estabelecido e designado como
responsvel pela definio, manuteno e melhoria do processo de Engenharia de Software.
Para tentar melhorar o foco dessa reunio, foi criado um artefato especfico para preenchimento em tempo real de aes
de melhoria, separando-as por descrio, responsvel e prazo.
As aes de mbito organizacional tambm eram indicadas no
documento para que fossem periodicamente cobradas.
Alm disso, foi pedido pelos times que esta reunio fosse
mensal, e no mais por Sprint. O motivo dado foi o fato dessas Sprints quase nunca serem finalizadas corretamente, em
consequncia das suas constantes e inevitveis mudanas de
escopo. Logo, eles no viram necessidade em discutir o porqu
de uma iterao no ter dado certo, mas sim em focar nos Bugs
gerados, para tratarem das causas.
Lies Aprendidas
Os benefcios encontrados com a utilizao do Scrum e do
Pair Programming foram bons tanto do ponto de vista gerencial quanto tcnico. Problemas antes camuflados apareceram
por conta da visibilidade aumentada, fundamental para a
melhoria contnua.
Toda a equipe do projeto passou a se envolver mais durante
todo o ciclo. Antes da utilizao das metodologias geis, os
desenvolvedores apenas recebiam do analista de sistemas
o Plano de Implementao, que possua o local exato de
alterao do cdigo. Resumidamente, o desenvolvedor no
possua a oportunidade de dar opinies a respeito das solues, e o conhecimento ficava concentrado nos analistas.
A integrao entre a equipe de desenvolvimento e teste foi
bastante benfica. No era mais necessrio aguardar a liberao de um executvel para que a equipe de testes iniciasse
suas atividades. Neste novo formato de processo, logo que
uma implementao concluda, o teste iniciado e, caso
algum problema seja encontrado, a correo imediata.
Pessoas de outros departamentos passaram a frequentar
as reunies de planejamento e entrega como ouvintes. Isto
fez com que as interrupes aos analistas de sistemas e desenvolvedores para entenderem as funcionalidades fossem
diminudas.
Quanto s solicitaes de customizao, estas vm por
vrios canais, dependendo do tipo de ocorrncia (evolutiva, correo, customizao legal, etc.) e do cliente. Alguns
especialistas (que so os POs das equipes) so dedicados a
alguns clientes, independente do mdulo (utilizado para
Engenharia de Software Magazine - Uso de metodologias geis em uma organizao baseada em linha de produto
31
32
Engenharia de Software Magazine - Uso de metodologias geis em uma organizao baseada em linha de produto
Feedback
eu
sobre e
s
D
s
Concluses
Referncias
edio
ta
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
wellington.moreira@ifsudestemg.edu.br
ronneymc@gmail.com
A modelagem de processos hoje o principal motor da organizao para melhoria contnua de seus
processos internos e externos. Neste contexto, o
objetivo deste artigo esclarecer os diversos aspectos e benefcios da modelagem e gerenciamento
de processos utilizando o ARIS (Architecture of Integrated Information Systems).
Um pouco de histria
Na antiguidade, o homem descobriu
que era necessrio conviver em sociedade. Nesse momento da histria algumas
pessoas encontraram oportunidade para
um processo de comercializao de
produtos e servios com outros grupos.
33
Mais tarde as estruturas empresariais formais cresceram formando o grande sistema monetrio que conhecido hoje, onde
o objetivo principal o lucro. Isso demonstra que a finalidade
principal tanto dos proprietrios quanto dos empregados de
uma organizao a gerao do retorno financeiro em troca
de tempo e recursos financeiros investidos [2].
Cada tipo de negcio disponibiliza produtos ou servios
diferentes para seus clientes com o objetivo de gerar lucro em
forma de vendas e, alm disso, agregar um valor final que
pode ser criado de formas diferentes dependendo do tipo de
negcio. Um exemplo um lojista cujo principal ideal a entrega de produtos de qualidade para seu pblico alvo. Outro
exemplo do fabricante de veculos que consiste na produo
de diferentes tipos e modelos de carros para atender necessidades e desejos diferentes de seus clientes. Com o crescimento
da competio entre as empresas por diferentes mercados,
recursos e competncias, somente aquelas capazes de fornecer
valor para seus clientes podero sobreviver.
Henry Ford disse: O cliente pode ter o carro da cor que quiser,
contanto que seja preto [2]. Dessa forma, os clientes no poderiam expressar seus requisitos individuais, pois a cor era nica.
O principal objetivo de Ford era alcanar uma maior eficincia
em termos de tempo e custo usando o conceito de linha de produo ou linha de montagem repetindo continuamente uma
sequncia de tarefas. Atravs desse processo de decompor uma
grande tarefa em pequenas tarefas mensurveis, Ford reduziu
drasticamente o custo da produo. A cor preta possua uma
secagem mais rpida, com isso o valor era reduzido e o veculo
poderia ser vendido por um preo menor. Ideias semelhantes
podem ser associadas a Frederick Winslow Taylor com seu
Taylorismo [11] que continua influenciando organizaes at
os dias de hoje.
Praticamente tudo o que feito em negcios dirigido por
processos. At mesmo as pessoas tm processos em seu dia a
dia, mesmo que sejam totalmente ad-hoc (ler Nota 1). A ideia de
analisar e otimizar os processos foi transferida da indstria da
manufatura para outros setores como, por exemplo, o financeiro.
Tudo o que feito em uma organizao que possa gerar valor,
oferecendo produtos e servios, controlado por processos. Gerenciar esses processos implica em verificar e analisar detalhadamente atividades importantes e recursos da companhia, tais como
mercado, tarefas, pessoas, transaes financeiras, etc [8].
Nota 1. ad-hoc
Neste contexto, o termo ad-hoc se refere a ciclos de construo de software ou processos que
no foram devidamente projetados em funo da necessidade de atender rapidamente uma
determinada demanda.
34
Essa reengenharia de processos foi incorporada por AugustWilhelm Scheer, um professor alemo de administrao de
empresas e informaes de negcios da Saarland University, cuja
pesquisa concentrou-se em informao e gesto de processos
de negcios na indstria, servios e administrao. Ele ficou
conhecido por desenvolver uma arquitetura de sistemas de
informaes denominada ARIS (Architecture of Integrated Information Systems) [10]. Alm de incorporar esta nova concepo
de processos de negcios, August Scheer refinou e definiu sua
prpria metodologia de BPM (Business Process Management)
conhecida como ARIS Value Engineering. Esta metodologia
aplicvel a qualquer tipo de negcio e, juntamente com esta,
muitas ferramentas foram sendo incorporadas para dar suporte ao BPM. No caso deste artigo em particular, o foco ser a
aplicao dessa metodologia e ferramenta denominada ARIS
Platform para a modelagem de processos de software.
O ARIS uma arquitetura que foi criada em julho de 1984 pela
IDS Scheer, como uma resposta a uma necessidade de mudana
no foco na gerncia de negcios [22]. Na poca, a documentao
e o acompanhamento dos processos de negcio eram poucos
ou quase nulos. Todos os processos ficavam armazenados na
cabea de alguns gerentes/diretores e somente estes podiam
modific-los [9]. Quando uma empresa perdia um destes
funcionrios, toda ou boa parte do processo era perdida. Isto
acontecia porque os processos no eram documentados para
se tornarem um bem da empresa, ou seja, agregar valor a esta
empresa. Um exemplo de uma forma de perda pode ser descrito quando um funcionrio mudava de cargo e repassava o
processo pelo qual era responsvel para outro funcionrio. Na
maioria das vezes, os processos eram mal compreendidos pelo
novo funcionrio, porque no havia um padro de descrio
que pudesse ser adotado. Ele recebia as instrues e as interpretava de sua forma, sem um mtodo especfico determinado
pela organizao, e prosseguia assim moldando o seu prprio
processo. Consequentemente, esse fato impactava diretamente
na gesto de gastos e na qualidade dos produtos da empresa,
tornando-a menos competitiva no mercado.
Em 1992, a IDS Scheer firmou uma parceria com a SAP e, neste
mesmo ano, foi apresentada a primeira ferramenta de software
para analisar e descrever processos de negcios: a ARIS Toolset.
J em 2006, outra parceria foi firmada com a empresa Oracle e,
a partir da, a plataforma ARIS passou a oferecer o midleware
Oracle Fusion [23].
Alm de suas prprias ferramentas, o ARIS fornece um framework conhecido como ARIS House. Este framework conta com
cinco vises, sendo quatro estticas: Viso Organizacional,
Viso de Dados, Viso de Funes e Viso de Produtos; e uma
dinmica: Viso de Controle [1].
processo
desempenham um papel importante na determinao do sucesso econmico e, dessa forma, ao aplicar o BPM, a empresa
estar implantando uma gesto com foco na abordagem de
processos possibilitando uma integrao organizacional [16].
O Business Process Management (BPM) est longe de ser um
conceito novo. Ele uma abordagem de gesto que surgiu no
incio de 1990. As primeiras discusses estavam fortemente
centralizadas em aspectos organizacionais de curto prazo
(BPR). O objetivo era obter mudanas rpidas e radicais nos
processos de negcios baseado em um projeto. Atualmente,
uma abordagem integrada e contnua que trata conjuntamente
de questes organizacionais e tecnolgicas.
O BPM representa um processo composto de vrias fases
sendo elas: estratgia, definio, implementao e controle
de processos. O objetivo implementar essa tcnica em uma
empresa, tanto em termos organizacionais quanto em termos
tecnolgicos. O movimento de ser uma organizao funcional para ser uma organizao orientada para o processo est
diretamente associado com o BPM. Da mesma forma, existe
uma srie de questes que esto diretamente relacionadas ao
Business Process Management. Essas
incluem a gesto de qualidade introduzida pela norma ISO 9000-2002 que orientada
para o processo e exige um sistema integrado de gesto e
planejamento de necessidades de pessoal, que ser capaz de
oferecer apenas uma viso incompleta sem a utilizao do
BPM. A padronizao de processos, sistemas e equipamentos
de trabalho em empresas um exemplo tpico com foco a longo
prazo que implica em um enorme impacto sobre a eficincia.
Em termos de TI, o seu conceito se torna indispensvel.
Os sistemas ERP (Enterprise Resource Planning) ou SIGE (Sistemas Integrados de Gesto Empresarial) permitem s empresas
atingir um nvel mximo de integrao e flexibilidade somente
se o Business Process Management estiver implantado. Alm
disso, o processo de terceirizao vem se destacando muito
ultimamente. Para isso, necessrio que as empresas tenham
um nvel de padronizao definido para contratar estes servios. Ser impossvel tomar decises a este nvel sem possuir o
processo implantado na empresa [2] [8] [16].
Os principais objetivos do BPM so a satisfao do cliente e a
melhoria da produtividade e competitividade. Us-lo significa
aplicar mtodos e tcnicas para modelar, implantar, monitorar
e melhorar continuamente os processos com o objetivo de
alcanar agilidade operacional, maior confiabilidade, reduo
dos custos, maior capacidade de resposta s mudanas requisitadas pelos clientes internos e externos e, principalmente, o
alinhamento aos objetivos empresariais.
Why are you modeling? (Porque voc vai modelar?): Para documentar os processos organizacionais, capturar informaes
para melhoria do processo, apoiar a reestruturao do negcio,
fornecer requisitos para o desenvolvimento de TI, possibilitar
o lanamento de novos produtos, etc.
35
Who are the models for? (Para quem ser o modelo?): Usurios
do negcio, arquitetos de processo, usurios do processo,
profissionais de TI envolvidos no processo, etc.
What are you modeling? (O que voc est modelando?): Toda
a Organizao (Empresa), um processo de um departamento
especfico, processos envolvidos em atividades de melhorias,
processos que sero automatizados, etc.
When will the models be relevant? (Quando os modelos sero
relevantes?): Como so (os processos como esto agora),
Sero (considerando os processos no futuro). O tempo
importante para seu modelo? A modelagem pode durar alguns
dias, semanas ou at mesmo anos para ser feita.
Where will the models be used? (Onde seus modelos podero
ser utilizados?): Seus modelos sero publicados na Internet?
Sero utilizados para gerar documentao? Utilizados para
definir interfaces (regras) para os fornecedores (empresas
terceirizadas, por exemplo)?
How will you go about modeling? (Como ser a modelagem?):
Usando o ARIS (Quais ferramentas da plataforma, quais objetos, quais modelos), usando notaes de modelagem padro,
tais como BPMN (Business Process Modeling Notation) ou UML
(Unifield Modeling Language), seguindo padres especificados
prprios da empresa, etc.
O que ARIS?
O ARIS evoluiu de uma busca por melhoria contnua em
processos. Assim, o seu principal foco o Business Process
Management. Para tanto, o ARIS se cerca de um Mtodo de
Modelagem. Esse mtodo dividido em duas partes: as Tcnicas de Modelagem e os Mecanismos. Dentro das tcnicas
de modelagem tem-se o procedimento de modelagem que o
ARIS Value Engineering e as Linguagens de Modelagem que so
compostas pelas mais diversas formas de representao de modelos de processo como BPMN, BPEL, EPC, UML, etc [25].
O mtodo de modelagem ARIS se apia dentro de ciclo de
vida BPM com quatro plataformas bem definidas:
Plataforma de Estratgia;
Plataforma de Projeto;
Plataforma de Implementao;
Plataforma de Controle.
36
processo
37
Consideraes finais
Figura 4. Componentes e smbolos utilizados no EPC e no eEPC,
respectivamente
38
processo
D
s
www.devmedia.com.br/esmag/feedback
Referncias
1. DAVIS, Rob. ARIS Design Platform: Advanced Process Modelling and Administration. Springer-Verlag,
London, 2008.
2. DAVIS, Rob; BRABNDER, Eric. Aris design platform. Getting Started with BPM. Springer-Verlag, London, 2007.
3. DAVIS, Rob. Business Process Modeling with ARIS: A Pratical Guide. Springer-Verlag, London, 2001.
4. KARAGIANNIS, Dimitris and KHN, Harald. Metamodelling Platform. Springer-Verlag,Viena, 2002.
5. KELLNER, M. (1999). Software process simulation modeling: Why? What? How? Journal of Systems and
Software, 46(2-3), 91-105. doi: 10.1016/S0164-1212(99)00003-5.
6. RYAN, J., & HEAVEY, C. (2006). Process modeling for simulation. Computers in Industry, 57(5), 437-450. doi:
10.1016/j.compind.2006.02.002.
16. Aris Value Engineering Concept WhitePaper Junho 2005 - Disponvel em: http://www.sdn.sap.com/
irj/scn/go/portal/prtroot/docs/library/uuid/eae8e311-0b01-0010-0f9c-8d26e2714a91?QuickLink=index&ov
erridelayout=true
17. http://www.ariscommunity.com/users/rob-davis/2010-06-22-dont-leap-modelling-think-about-yourcustomers-first
18. http://www.ariscommunity.com
7. SPIEKERMANN, S. (2006). Introduction into ARIS : System Analysis and System Views Institute of Information
Systems. Information Systems, 1-21.
8. SCHEER W.A., KRUPPKE H., JOST W., KINDERMANN H., Agility by ARIS Business Process Management. Berlin:
Springer-Verlag, 2006.
19. http://www.omg.org
20. http://www.ariscommunity.com/aris-express/download
21. http://www.sap.com
9. SCHEER W.A., ABOLHASSAN F., KIRCHMER M., Business Process Change Management ARIS in Practice. Berlin:
Springer-Verlag: 2003.
22. http://www.ids-scheer.it/set/6473/9-monthreport_2004_en.pdf
10. SCHEER, W.A., JOST W., HELGE H., KRONZ, A., Corporate Performance Management: ARIS in practice. Berlin:
Springer-Verlag, 2006.
12. Engineering-, A. V. (2005). Business process management. Waves of efficiency. Health management
technology, 26(2), 46, 48. Disponvel em: http://www.ncbi.nlm.nih.gov/pubmed/20218073
13. Aris Academy - Before you start modelling Disponvel em http://cdn.ariscommunity.com/aris_online_
academy/before_start_modelling2/rebdnesz/player.html
39
sobre e
s
edio
ta
Desenvolvimento
Nesta seo voc encontra artigos voltados para diferentes
abordagens de apoio ao desenvolvimento de projetos de software
40
Desenvolvimento
41
42
Desenvolvimento
43
44
public AcessoBancoDados()
{
objConexao = new SqlConnection();
objConexao.ConnectionString = stringconnection;
objConexao.Open();
}
public SqlConnection getConexao()
{
new AcessoBancoDados();
return objConexao;
}
public static void fecharConexao()
{
objConexao.Close();
}
Desenvolvimento
45
46
A constante busca por projetos de cdigo cada vez melhores passa por diversas verificaes. Neste artigo foram
abordadas trs tcnicas de refatorao para padres com
esta finalidade. Ciente das formas de se implementar tais
melhorias, cabe ao conhecedor do projeto de cdigo existente
aplic-las e, com isso, obter um cdigo refatorado.
Referncias
GAMMA, Erich, 2000. Padres de Projeto: solues reutilizveis de software orientado a objetos,
1ed. Porto Alegre: Bookman, 2000.
KERIEVSKY, Joshua. Refatorao para Padres, 1ed. Porto Alegre: Bookman, 2008.
FOWLER, Martin. Refatorao: aperfeioando o projeto de cdigo existente, 1ed. Porto Alegre:
Bookman, 2004.
Feedback
eu
sobre e
s
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 }
Concluso
D
s
edio
ta
Desenvolvimento
47
48