Depois de modelado o processo Scrum, é necessário identificar a categoria de cada padrão que será integrado, isto é, verificar se ele é organizacional ou de processo, para possibilitar a sua representação por meio dos estereótipos SPEM.
Por não ter sido encontrada na literatura definição clara para padrões organizacionais e de processo que facilite a sua representação por meio de modelos, adotou-se neste trabalho as seguintes definições:
• Padrões de Processo: documentam soluções para problemas no processo de
desenvolvimento de software, que prescrevem a criação de uma nova atividade, artefato ou papel no processo.
• Padrões Organizacionais: documentam diretrizes que devem ser respeitadas na
execução de uma atividade, cumprimento de um papel ou criação de um artefato no processo de desenvolvimento de software.
Um padrão de processo sugere a criação de uma atividade, papel ou artefato no processo, enquanto um padrão organizacional mostra como realizar uma atividade ou papel no processo. Ressalta-se que existem padrões que se encaixam nessas duas categorias.
A Tabela 4.2 apresenta a categoria dos padrões que serão integrados ao Scrum, tendo na primeira coluna o nome do padrão, na segunda a categoria a qual o padrão foi associado, e na terceira a justificativa pela qual o padrão foi associado à determinada categoria.
Tabela 4.2 – Categoria dos padrões integrados ao Scrum
Padrão Categoria Justificativa
Self Selecting Team Organizacional Sugere que as pessoas devem selecionar a equipe na qual elas querem trabalhar.
Scenarios Define Problem Processo Propõe a criação de casos de uso para extração e esclarecimento dos requisitos.
Small Writing Team Organizacional
Fornece informações sobre como criar casos de uso, sugerindo que eles devem ser criados por no máximo três pessoas.
Breadth Before Depth Organizacional
Fornece informações sobre como desenvolver e refinar casos de uso, sugerindo que os desenvolvedores devem identificá-los antes de começar a refinar cada um deles.
Spiral Development Organizacional
Fornece informações sobre como desenvolver e refinar casos de uso, sugerindo que seu refinamento seja realizado iterativamente.
Face To Face Before
Working Remotely Processo
Propõe a realização de uma reunião presencial no início de projetos geograficamente distribuídos, para que os envolvidos possam se conhecer.
Unity Of Purpose Processo
Propõe a realização da atividade de compartilhamento da visão comum no início do projeto para mostrar aos envolvidos o propósito do projeto.
Standards Linking
Locations Processo
Propõe a realização da atividade de estabelecimento de normas e convenções em projetos geograficamente distribuídos, para possibilitar a comunicação entre as partes do software que está sendo construído.
Lock ‘Em Up Together Processo
Propõe a realização de uma reunião presencial no início do projeto para a criação da arquitetura do produto que será desenvolvido em grupo.
Organization Follows
Location Organizacional
Fornece informações para repartição do trabalho em projetos geograficamente distribuídos, sugerindo que as responsabilidades devem ser atribuídas de forma que as decisões possam ser tomadas localmente.
Code Ownership Organizacional
Fornece informações para atribuição de tarefas no desenvolvimento do software, sugerindo que cada módulo do código deve ser atribuído a um desenvolvedor.
Generics And Specifics Organizacional
Fornece informações para atribuição de tarefas no desenvolvimento do software, sugerindo que os especialistas e principiantes devem implementar, respectivamente, as partes genéricas e as partes específicas do software.
Surrogate Customers Processo
Propõe a criação do papel de substituto do cliente no processo, para suprir a ausência do cliente quando o mesmo não está disponível.
Named Stable Bases Organizacional e
de Processo
Propõe a realização da atividade de integração do software no desenvolvimento, além de estabelecer a freqüência com que essa integração deve ocorrer.
Private Workspace Organizacional Fornece informações de como gerenciar as versões de produtos de trabalho.
Repository Organizacional
Fornece informações de como prover as versões corretas dos produtos de trabalho para os desenvolvedores.
Smoke Test Organizacional
Fornece informações sobre como verificar se a integração das partes do sistema não corrompeu o mesmo.
Application Design is
Bounded By Test Design Processo
Propõe a realização da atividade de criação de planos de teste baseados nos casos de uso.
Architect Controls Product Processo Propõe a criação do papel de arquiteto no processo para definir um estilo de arquitetura ao produto.
Architect Also Implements Organizacional
Fornece informações sobre a execução do papel de arquiteto no processo, sugerindo que ele deve implementar o software junto com os desenvolvedores
Por meio dessa classificação, é possível representar os padrões organizacionais e de processo integrados ao Scrum utilizando o SPEM, pois a categoria do padrão identifica quais estereótipos devem ser utilizados para modelá-los. Assim, os padrões de processo serão modelados utilizando os estereótipos da Figura 4.19.
Figura 4.19 – Estereótipos utilizados para modelar padrões de processo
Para a modelagem de um padrão organizacional, é necessária a utilização de outro estereótipo, o Guia (Guidance), pois essa categoria de padrão fornece informações mais detalhadas sobre o elemento do processo ao qual está associado.
O SPEM permite a adição de novas categorias de guia no processo e, neste trabalho, um novo tipo de guia é definido para representar os padrões organizacionais na modelagem, o estereótipo Padrão Organizacional, cuja notação é mostrada a Figura 4.20.
Figura 4.20 – Notação do estereótipo Padrão Organizacional
Assim, devido às propriedades dos padrões organizacionais e de processo de propor a criação de novas atividades, papéis, artefatos e diretrizes para solucionar problemas de desenvolvimento de software, antes de integrar os padrões, é fundamental modelar o processo Scrum para possibilitar a integração correta das práticas propostas pelos padrões.
Além da classificação dos padrões em categorias, é necessário identificar a disciplina Scrum a qual o padrão a ser integrado se relaciona, como mostra a próxima seção.