Desenvolvimento de software no mundo real: Exigências

por admin em

Portanto apanhei ainda outro livro sobre o desenvolvimento de software e comecei a ler. Não fui capaz de terminá-lo porque ele me está dando tal dor de cabeça. Cada poucas páginas adquiro o impulso irresistível de esbofetear à minha testa. Nesta tarifa, estou indo adquirir uma concussão pelo capítulo três. Every few pages I get the irresistible urge to slap my forehead. At this rate, I'm going to get a concussion by chapter three.

Anyways, este tipo segue sobre exigências: Como não ter projetos de causas de exigências próprios de ser por cima do orçamento e atrás do horário, como a característica se arrasta leva a horário de projeto pouco manejável e reveladores desmoralizados, yadda, yadda, yadda. Não, realmente? No, really?

E a sua prescrição é que alguém escreve as exigências e consegue que todos os depositários de dinheiro de apostas terminem neles. Naturalmente, não há somente uma espécie da exigência - noooooo! - há muitos a espécie de exigências. Bem como as exigências de usuário, lá são exigências de negócios e projetam exigência e exigências thingajig e.... Não sei, mas muitas muitas exigências funky e Deus, se o gerente de projetos adquirir todas as exigências escritas e terminasse por todos os depositários de dinheiro de apostas, então aleluia, isto será UM projeto que terminará a tempo e no orçamento. Se só aqueles gerentes de projetos estúpidos podem escrever que a um bom jogo de documentos de exigência.... se chocasse! - there are many kind of requirements. As well as user requirements, there are business requirements and design requirement and thingajig requirements and .... I don't know, but lots of lots of funky requirements and gosh, if the project manager gets all the requirements written up and signed off by all the stakeholders, then hallelujah, this will be the ONE project that will finish on-time and on-budget. If only those stupid project managers could write up a good set of requirement documents....thump!

Desculpe, que foi a minha cabeça que bate na escrivaninha. Penso que perdi a consciência durante alguns segundos.

Okey, vai tentar refutar este ponto de vista que parece ser a sabedoria convencional com uma exceção onde as exigências escritas couraçadas são a regra: Sistemas embarcados. Basicamente, é realmente difícil modificar um pedaço depois que foi projetado. Duh. Basically, it's really hard to change a chip after it's been designed. Duh.

Para bastante bem todo outro trabalho de desenvolvimento de software, é uma boa idéia de escrever o grupo de exigências preliminares. E logo imprima-os. Mas imprima-os no papel muito suave que pode ser usado no quarto mais pequeno da casa. Como em um período muito curto do tempo, isto é o único quarto onde aquela folha de papel está indo ser útil. But print them out on very soft paper that can be used in the smallest room of the house. Because in a very short period of time, that's the only room where that piece of paper is going to be useful.

Há duas razões principais porque, um óbvio & um sutil. Começarei com o óbvio: Vai fingir que você é o cliente. Você assinou um contrato com uma casa de desenvolvimento de software para construir um programa elegante que faz algo. Você aceitou pagar o dinheiro. Na maioria dos casos, você está pagando muito dinheiro. Você pôs a sua assinatura em uma folha de papel para algo que não existe no presente. Você é também terrivelmente consciente que quando esta parte do software é criada, se for não satisfaz as expectativas dos seus depositários de dinheiro de apostas, eles estão indo avisá-lo sobre ele. E como os tempos um lançamento de software encontram 100 % das expectativas do cliente? Let's pretend you are the customer. You have signed a contract with a software development house to build a nifty program that does something. You have agreed to pay money. In most cases, you are paying a lot of money. You have put your signature on a piece of paper for something that doesn't exist in the present. You are also painfully aware that when this piece of software is created, if it's does not meet the expectations of your stakeholders, they are going to let you know about it. And how times does a software release meet 100% of the customer's expectations?

Agora, depois de assinar uma folha de papel para o que muitos na sua organização consideram um montante obsceno do dinheiro, certo período de tempo passa e você consegue que outra folha de papel leia, com um título afirmando que é um desenho/usuário case/business/whatever documento de exigências. Você lê o documento do princípio ao fim. Parece okey. Há um espaço da sua assinatura. Talvez você assina-o. Talvez você retorna um e-mail dizendo que você assinou uma folha de papel de milhões inúmeros de dólares, e isto é a única folha de papel tem de assinar, alguma vez. Mas vai fingir que você termina nas exigências o doutor. Isto significa que você, cliente, abandonou o direito de contatar alguma vez, comunica ou resmunga a equipe de desenvolvimento com novas características e/ou exigências? It looks okay. There's a space for your signature. Maybe you sign it. Maybe you send back an e-mail saying you signed a piece of paper for umpteenth millions of dollars, and that's the only piece of paper need to sign, ever. But let's pretend you sign off on the requirements doc. Does this mean that you, the customer, have given up the right to ever contact, communicate or nag the development team with new features and/or requirements?

Não. Nunca. Alguma vez. Não há nenhum cliente que existiu alguma vez desde o início dos tempos que não importunará constantemente o desenvolvimento de novas características diretamente até o momento do lançamento e depois. Vir. Usado. A. Ele. Ever. There is no customer that has ever existed since the beginning of time that will not continually pester the development for new features right up to the moment of release and after. Get. Used. To. It.

Portanto a lição de qualquer gerente de projetos não é passam demasiado tempo em esboçar exigência doutores. Com certeza escreva-os rapidamente, e quero dizer escrevem-nos, mas se, os milagres dos milagres, o cliente retornar um okey e um documento terminado, até não pense que o seu emprego é terminado. O divertimento acaba de começar. The fun has just started.

Isto sobe o meu segundo ponto sobre a queda na armadilha de exigências da documentação: a obtenção de todas as exigências é superdifícil. Na maioria dos casos, é impossível. Não até o cliente, e o cliente do cliente, podem dar-lhe 100 % das exigências. In most cases, it's impossible. Not even the customer, and the customer of the customer, can give you 100% of the requirements.

Olhe, ele parece-se indo a clube de torcedor de Julia Roberts e provérbio: "Queremos fazer uma história de amor com Julia e Brad Pitt. Eles caem no amor, eles lutam & colapso, e logo eles compõem e queda no amor novamente. No fim do filme, todo mundo no público porque o filme foi tão maravilhoso. Aqui está a escrita do filme. Você pode assegurar-nos que depois de ver este filme, você conseguirá o seu hankie?" They fall in love, they fight & break-up, and then they make up and fall in love again. At the end of the movie, everybody in the audience because the movie was so wonderful. Here is the script of the movie. Can you assure us that after seeing this movie, you'll reach for your hankie?"

Deixe-me recontar um exemplo do mundo real (modifiquei alguns detalhes para proteger a pessoa inocente): Um do cliente de Creo tinha um pouco de tecnologia de impressão que corria com uma suite de software desenvolvida no início dos anos 1990. Creo tem algum software de pré-prensa desenvolvido aproximadamente uma década depois que é vastamente superior. Contudo, houve algumas caraterísticas especiais que foram necessárias para ser desenvolvidas e acrescentadas à suite de software de Creo. Creo has some pre-press software developed about a decade later that is vastly superior. However, there were some unique features that were needed to be developed and added to Creo's software suite.

O gerenciamento de projetos do cliente era coordenado fora da sede aos meados dos EU ao passo que a tecnologia de impressão foi baseada no sítio de fábrica perto da Costa ocidental. Voei abaixo à fábrica para exibir suite de software de Creo e exigências de captura. Fez a apresentação, voou atrás ao Vancouver. Um par de semanas depois, adquirimos a mensagem diplomática da sede que possivelmente todas as exigências não foram capturadas. Portanto voo abaixo novamente. Também combino em mandar carregar a suite de software de Creo em um servidor e embarcado ao sítio de fábrica como um emprestador. Esta vez, durante a apresentação, eles têm o seu superusuário, o seu administrador de sistema à mão. Sou feliz que o cliente é bastante inteligente para tirar os seus usuários à apresentação para criticar a suite. O superusuário vai profundamente em mim. Isto significa que ela fura abaixo muitos níveis a alguns realmente obscurecem (para mim) mas importante (para eles) exigência de negócios que não está na nossa suite de software. Prometi acompanhar aquelas características com alguns SMEs de Creo (peritos de matéria sujeitos) quando volto ao escritório. Did the presentation, flew back to Vancouver. A couple of weeks later, we get the diplomatic message from head office that perhaps all the requirements have not been captured. So I fly down again. I also arrange to have Creo's software suite loaded on a server and shipped to the plant site as a loaner. This time, during the presentation, they have their super-user, their system administrator on hand. I am lucky that the customer is smart enough to get their users out to the presentation to critique the suite. The super-user goes deep on me. That means she drills down many levels to some really obscure (to me) but important (for them) business requirement that is not in our software suite. I promised to follow up on those features with some of Creo's SMEs (subject matter experts) when I get back to the office.

Entretanto, o servidor com o software de Creo chega local com um representante de campanha local para fazer instalam e treinamento preliminar. Também arranjo que um treinador siga uma visita local ao cliente uma semana depois. Pré-informo o treinador para olhar & informar para qualquer nova exigência. Seis semanas depois, envio outro treinador. Aproximadamente cinco meses passaram desde a minha primeira visita à suite de cliente. Finalmente, o superusuário é capaz de articular as exigências que a fábrica precise ao representante de Creo que é também um SME naquele determinado subtópico. Portanto capturamos as exigências e transmitimo-los à equipe de desenvolvimento e adquirimos a mensagem atrás que nenhuma das exigências é impossível de cumprir, vai se precisar de aproximadamente três meses para rolar no seguinte upgrade. Fim de história. I pre-brief the trainer to watch & report for any new requirements. Six weeks later, I send another trainer. About five months have passed since my first visit to the customer suite. Finally, the super-user is able to articulate the requirements that the plant needs to the Creo representative who is also a SME in that particular sub-topic. So we get the requirements captured and we pass them on to the development team and we get the message back that none of the requirements are impossible to fulfill, it will take about three months to roll into the next upgrade. End of story.

Agora, observe que neste caso estudam:
1. O cliente foi sofisticado, entendendo que tínhamos de fazer o superusuário passar muito tempo jogando com o nosso software portanto ela pode descobrir o que falhava.
2. Tínhamos muito tempo. Adquirir as exigências próprias tomou cinco meses. A codificação das exigências tomou duas semanas (a carga administrativa de rolar novos upgrades na suite de software considerada durante outros 2.5 meses). Coding the requirements took two weeks (the administrative load of rolling new upgrades into the software suite accounted for the other 2.5 months).
3. Isto foi uma modificação de uma suite de software preexistente. Não presentávamos ao cliente uma "folha de papel em branca.""
4. O negócio mereceu bastante para enviar um servidor de emprestador com o software à fábrica E ter um total de cinco visitas separadas à fábrica (duas viagens pelo gerente de projetos, um por um representante local, e dois por treinadores).

Finalmente, o ponto deste ensaio é que a obtenção de exigências no mundo real não é tanto um ponto da documentação, mas um processo iterativo com o cliente que continua pelo ciclo de vida do processo de desenvolvimento (e além).
Estou indo tentar terminar o livro que estou lendo, se me apresentar só a futuros empregadores como o fonte da sabedoria (convencional). Mas realmente, se as madeiras forem cheias de gerentes de projetos que pensam que eles são sem casa uma vez que eles documentam as exigências de um projeto no início do ciclo de desenvolvimento, então não é não é de admirar que muitos deles são rasgados depois de alguns anos nos negócios.




Desenvolvimento de software: Gantt traça um gráfico contra o banco de dados PR Deus e Desenvolvimento de software A latência faz pessoas inteligentes parecer estúpidas … Provisões de necessidade? Verifique o Irmão LC-21Y Cartucho de Tinta Amarelo (Irmão LC21Y)
Preaperte Peregrino

Preaperte Peregrino

{2 comentários … lêem-nos abaixo ou acrescentam um}

Zak Khan 5 de janeiro de 2010 às 8h12

Gostado o seu correio. Estou perto da graduação e somente querido para perguntá-lo que documentação é tipicamente crítica do projeto de software. Cobrimos tudo em projetos de design de mostra e seniores de exigências: SRS, desenho doutor, PMP etc. We have covered everything in sample and senior design projects from requirements: SRS, design doc, PMP etc.

admin 5 de janeiro de 2010 às 8h21

Eu diria que o documento mais importante é o plano de negócios, um doutor que os "engenheiros" nunca adquirem para ver. Segundo é o orçamento.
Demasiado muitas vezes durante um período de desenvolvimento razoavelmente longo, o plano de negócios tem de ser atualizado ou até fica obsoleto. Quando isto acontece, os homens de dinheiro (patrocinadores executivos) começam a torcer em volta com exigências.
Ele realmente ajuda a saber porque e quando aqueles tipos começam a sujar com a sua cabeça.
Em segundo lugar, é assombroso quantos gerentes de projetos não podem arranjar-se ou são ignorantes de um orçamento.
PMP é bonito ter mas um pouco dele é inatingível. Como a carta executiva? Avance, como são você suposto manter um VP ou até o responsável CEO. Eles são o chefe (s). Você não os mantém responsável, você somente tem o rolo com ele. Come on, how are you supposed to hold a VP or even the CEO accountable. They are the boss(es). You don’t hold them accountable, you just gotta roll with it.

Deixe um Comentário