Quais papeis fundamentais em um projeto de software?

19 respostas
LucianoTulio

Estou postando este tópico com o objetivo de descobrir a base de profissionais para um projeto
ter sucesso. Em um equipe, quais são os papéis necessários?

-Gerente de Projeto - aloca recursos, ajusta as prioridades, coordena interações com clientes e usuários e geralmente mantém a equipe do projeto concentrada na meta certa. O gerente de projeto também estabelece um conjunto de práticas que garantem a integridade e a qualidade dos artefatos do projeto.

-Arquiteto de Software - foco de resolver problemas relacionados ao negócio da empresa com uma visão estratégica.
Interação sistêmica
Arquitetos lidam com fronteiras, interfaces e interações sistêmicas.

Design
O arquiteto faz várias escolhas de design de alto nível (e algumas vezes de baixo nível).
Além disso, o arquiteto deve ditar os vários tipos de padrões, incluindo padrões de código, ferramentas e plataformas. A razão para essas medidas é mais para ajudar a atingir o objetivo estratégico do que arbitrariamente restringir as escolhas feitas pelos desenvolvedores.

-Analista - é a atividade que tem como finalidade a realização de estudos de processos a fim de encontrar o melhor caminho racional para que a informação possa ser processada.
O analista de sistemas ou atualmente mais conhecido como sistematizador de informações, é aquele que tem como finalidade realizar estudos de processos computacionais para encontrar o melhor e mais racional caminho para que a informação virtual possa ser processada. Este profissional estuda os diversos sistemas existentes entre hardwares (equipamento) e softwares (programas) e o usuário final, incluindo seus comportamentos e aplicações

-Teste
O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

-Algo mais?

Fiz uma busca rapida sobre essas funções. Mas quais as funções básicas para formação de uma boa equipe, pelo que vi, o gerente, arquiteto e analista compartilham conhecimento. Qual a real necessidade? Será q um projeto precisa conter todas esses papéis??

19 Respostas

charleston10

DBA & Arquiteto de Banco de Dados

spycall

E o programador?

javaflex

AD (muito importante caso tenha varios projetos de equipes diferentes)
Web Designer (caso projetos Web)

hannahh

Programador pra que né…

LucianoTulio

Ok, Sei que programadores também precisa, é o peão da obra.
Um DBA não acredito ser necessário, logo que será um único
projeto.

É que estou montando uma equipe para desenvolver um ERP
e estou estudando o gerenciamento da equipe, para isso levantei
esta pergunta no GUJ.

Quais seriam na opnião de vcs os papéis necessários?

charleston10

Um DBA não acredito ser necessário, logo que será um único
projeto.

Eu discordo totalmente, sem uma estrutura de banco de dados bem adequada o projeto fica péssimo, ja peguei
banco de dados com trocentas tabelas que nao eram necessarias que fazia vinculação demasiada apenas pra dificultar
a interação com o software.

Um banco bem estruturado vai dar menos dor de cabeça no futuro, falo isso pq a gente pensa que no começo do projeto
que ele vai ser pequeno, e dpois acaba crescendo, e vai ficando gambiarra atras de gambiarra no banco.

Uma dica, eu nao sou DBA trabalho com programação java e analise, só tive dor de cabeça com softwares grandes com
banco mal estruturado.

Eu penso da seguinte forma, o banco é coração, e o software é o cerebro, pois ele que vai conter toda informação e o software
que vai manipular elas.

javaflex

Gerentes as vezes atrapalham, o ideal é o time ser auto gerenciavel. A nao ser que o gerente seja uma pessoa que nao interfira diretamente no dia a dia e só cuide da parte burocratica.

Arquitetos puros tambem as vezes atrapalha, o ideal é todos os desenvolvedores mais experientes contribuirem na arquitetura, por projeto e sem ditaduras.

sergiotaborda

Se vc pensa assim não precisa saber os papeis… não lhe serão uteis.

sergiotaborda

LucianoTulio:
Estou postando este tópico com o objetivo de descobrir a base de profissionais para um projeto
ter sucesso. Em um equipe, quais são os papéis necessários?

Papeis necessários. Ora está ai uma coisa que nunca havia pensado … na “necessidade” dos papeis.

Vc ficaria melhor servido perguntando as responsabilidades envolvidas.

Escola clássica

Responsabilidade Perante os Stakholders - ou seja, se o produto for mal aceite pelos clientes quem roda ? : Gerente de Produto

Responsabilidade por alcançar objetivos num determinado tempo com um determinado orçamento ?: Gerente de Projeto.  Um produto pode ter mais de um projeto e os projetos podem ser paralelos.

Responsabilidade por levantar os requisitos e documentar os requisitos : Analista De Negocio ( é subalterno do Gerente de Produto)

Responsabilidade por traduzir corretamente os conceitos de negocio para conceitos de software : Analista Funcional

Responsabilidade por ter a visão do todo, organizar os elementos de software e atender os requisitos não funcionais: Arquiteto.

Responsabilidade por digitar o código da melhor maneia possível, obedecendo a um design : Programador

Responsabilidade de verificar que o software se comporta como especificado : Testador de Qualidade (QA)

Responsabilidade de verificar que o software atende o que o cliente espera : Gerente de Produto.

Escola Moderna

Responsabilidade Perante os Stakholders - ou seja, se o produto for mal aceite pelos clientes quem roda ? : Gerente de Produto, aka Dono do Produto, aka Product Owner (PO)

Responsabilidade por alcançar objetivos num determinado tempo com um determinado orçamento ? :Todos

Responsabilidade por levantar os requisitos e documentar os requisitos : PO e sua equipe. A equipe do PO são pessoas com capacidades variadas que o auxiliam ( que seriam os analistas funcionais no modelo classico)

Responsabilidade por traduzir corretamente os conceitos de negocio para conceitos de software : Equipe. Não é responsabilidade isolada de uma pessoa. A equipe de todos os tecnicos tem esta responsabilidade.

Responsabilidade por ter a visão do todo, organizar os elementos de software e atender os requisitos não funcionais : Equipe . O mesmo que antes.

Responsabilidade por digitar o código da melhor maneia possível, obedecendo a um design : Equipe. O mesmo que antes.

Responsabilidade de verificar que o software se comporta como especificado : Equipe e PO ( o PO pode delegar para pessoas da sua equipe especializadas em testes. Isto seria o QA classico)

Responsabilidade de verificar que o software atende o que o cliente espera : PO

Veja que na escola moderna não ha muitos papeis: apenas dois , basicamente : PO e Equipe. E um PO pode usar várias equipes em paralelo.

Falemos agora dos skills da equipe.
Realmente apenas pessoas que sabem escrever código não é suficiente. É preciso pessoas que tenham visão e saibam organizar as coisas para os porgramadores. É necessário que alguem tenha skils de arquitetura e design.
Na escola moderna todos são testes do seu codigo e do codigo de outros, portanto não ha ninguém especifico para testes. ou seja, na escola moderna, bugs são encontrados e mortos antes que o PO sequer os veja.
Mas o PO vai usar o software, experimentá-lo ( tarefa que pode ser delegada). Durante esta incursões no software ele pode encontrar coisas que precisam ser mudadas. Isto são Defeitos. Defeitos não são apenas coisas que não funcionam ( como erros inexperados e coisas assim) mas também coisas simples como a ordem dos botões ou a posilção dos botões, a distancia entre os campos, o logotipo , ou a falta de um , etc… qualquer coisa. Coisas que já foram realizadas mas precisam ser modificadas.

Quando se fala em Equipe está subentendido que é a Equipe de Construção. ou seja, aquela que realmente poe a mão no código. Mas o PO pode ter outras equipes (e deve ter outras equipes) e se relaciona com os liders de outras equipes. As equipes clássicas são UX ( user experience) e Marketing além das pessoas que trabaha diretamente com o PO auxiliando no levantamento de requisitos e nas incursões pelo software já pronto.

Se o seu objetivo é montar uma equipe é bom que tenha alguem com capacidade de arquiteto, design ( não é design gráfico, é design de código) , programadores e analistas. Lembre-se que são capaciades. Então existem pessoas com todas, e pessoas com nenhuma e pessoas com algumas. O preço do serviços delas varia em conformidade.

M

Uma vez pronta a especificação qualquer digitador é capaz de implementar.

sergiotaborda

charleston10:
Um DBA não acredito ser necessário, logo que será um único
projeto.

Eu discordo totalmente, sem uma estrutura de banco de dados bem adequada o projeto fica péssimo

Concordo que uma estrutura de BD ruim é horrivel, mas não que precise de um DBA para fazer uma estrutura correta.
O DBA é um conecito de advém da ideia do BD ser o servidor do sistema. Mas hoje em dia o BD é apenas um comodity, e ter um DBA é como ter alguem preocupado em manter seu file system organizado. é legal, pode ser relevante, mas na enorme maioria dos casos é irrelevante tem uma pessoa que só faz isso.

Pessoas com capacidade de DBA mas que têm outras como arquiteto ou programador, é melhor. Pois o design do BD acontece cedo na vida da aplicação. Se é preciso um DBA para manter a aplicação funcionando, ela não foi bem feita.

Não estou falando de pessoas de manutenção responsáveis por backups e essas coisas. Isso não é desenvolvimento.


Eu penso da seguinte forma, o banco é coração, e o software é o cerebro, pois ele que vai conter toda informação e o software
que vai manipular elas.

O banco não é o coração. É apenas a memória do cérebro.

spycall

Uma vez pronta a especificação qualquer digitador é capaz de implementar.
É isso aí, vamos acabar com os cursos de linguagens e voltar com os cursos de datilografia.

hannahh

Uma vez pronta a especificação qualquer digitador é capaz de implementar.
É isso aí, vamos acabar com os cursos de linguagens e voltar com os cursos de datilografia.

Ta certo então, cada coisa que eu leio aqui viu.

hannahh

Concordo.

LucianoTulio

Legal essa visão de todos, claro q existe uns comentários que seriam melhores serem guardados para eles próprios, mas no geral me retornou varias informações valiosas. Pessoas são condicionadas a defenderem suas ideias, não aceitam o que o outro tem a contribuir. Entendo com a metodologia de desenvolvimento ágil precisa de profissionais mais flexíveis, mas para realizar um projeto de sucesso precisa de pessoas com habilidades e empenhadas a alcançar o objetivo do projeto. Acredito que um digitador como o amigo aee sugeriu não tem o conhecimento necessário para desenvolver e opinar no projeto, logo que, a equipe precisa de pessoas habilidosas. Minha questão foi apenas sobre papéis os quais os próprios desenvolvedores poderiam ficar responsáveis em adquirir maior conhecimento para compartilhar a equipe, logo que ninguém é o FODAO em tudo.

spycall

Uma vez pronta a especificação qualquer digitador é capaz de implementar.
É isso aí, vamos acabar com os cursos de linguagens e voltar com os cursos de datilografia.

Ta certo então, cada coisa que eu leio aqui viu.
hehehehe, não tenho certeza, mas acho que assim como você e eu, o msato estava sendo irônico.

s4nchez

LucianoTulio:
Estou postando este tópico com o objetivo de descobrir a base de profissionais para um projeto
ter sucesso. Em um equipe, quais são os papéis necessários?

-[b]Gerente de Projeto/b
-[b]Arquiteto de Software /b
[b]-Analista /b
[b]-Teste /b
-Algo mais?

Seu post original da a entender que uma pessoa vai exercer apenas um papel no projeto. Eu sugiro evitar esse tipo de associacao a todo custo.

Nos projetos bem-sucedidos que participei o que acontecia era justamente o contrario: a maioria dos envolvidos exerciam mais de um papel e o nivel de colaboracao era altissimo. Desenvolvedores ajudavam a planejar e sabiam de arquitetura e testes. Analistas ajudavam desenvolvedores com testes e entendiam muito do negocio. Testadores sabiam programar e ajudavam a automatizar o maximo possivel. E por ai vai…

Quanto a sua lista, poderia adicionar outros papeis que notei serem uteis nesses ultimos anos:

  • User Experience designer
  • Sysadmin
  • Build/Release Manager
  • Support engineer

Novamente, vale observar que me refiro a papeis, nao profissionais. Eu mesmo ja exerci a maioria desses papeis, e nao me vejo limitado a apenas um deles.

s4nchez

[duplicado]

hannahh

Uma vez pronta a especificação qualquer digitador é capaz de implementar.
É isso aí, vamos acabar com os cursos de linguagens e voltar com os cursos de datilografia.

Ta certo então, cada coisa que eu leio aqui viu.
hehehehe, não tenho certeza, mas acho que assim como você e eu, o msato estava sendo irônico.

sim haha

Criado 6 de março de 2013
Ultima resposta 7 de mar. de 2013
Respostas 19
Participantes 8