Anarquia está Bem

por admin no dia 3 de outubro de 2007

Este correio é uma síntese e a continuação de algumas idéias que foram cobertas em outros postos neste blog: Porque os investimentos voláteis chupam, a regra de 85/95 do gerenciamento de projetos, e diagramas de Gantt contra o banco de dados PR. Se você tenha lido todos daqueles postos, então o que segue poderia fazer-lhe sentido. Se não, então adivinho que veremos somente que bom um escritor sou. If you have read all of those posts, then what follows might make sense to you. If not, then I guess we'll see just how good a writer I am.

A mudo ele abaixo um tanto, usarei um dos meus dispositivos literários favoritos: A parábola. Aqui está a história de Ploddin' Paul o gerente de projetos que enfrenta uma decisão administrativa muito difícil. Ele tem uma equipe de 5 reveladores, dos quais três são reveladores seniores e são capazes de tratar miniprojetos sozinhos. Os seus nomes são Genius Gary, o Engenheiro Eric, e Liason Larry. Here is the story of Ploddin' Paul the project manager who is faced with a very difficult management decision. He has a team of 5 developers, of which three are senior developers and are capable of handling mini-projects on their own. Their names are Genius Gary, Engineer Eric, and Liason Larry.

O projeto é um um tanto arriscado, mas não demais assim. A meta é construir uma interface de arquivamento para vários modelos diferentes do passeio de fita para que os clientes que registram em log em um banco de dados tenham a opção de deixar os seus dados online, salvando-o a um passeio de fita, ou restaurar os dados da fita. Naturalmente, há número de outras características e projeta exigências. O projeto é ser entregue durante 6 meses. Of course, there are number of other features and design requirements. The project is to be delivered in 6 months.

A equipe tem três escolhas: 1) Escreva que ao código do zero 2) Retrabalhe algum código existente que foi produzido interior ou 3) Trabalho com a terceira pessoa API que promete entregar a maior parte da funcionalidade (publicado por um vendedor chamado Babooza).

"Os APIs de Babooza chupam bem sucedido, vai fazê-lo o direito. Escreva o código da terra em C #," diz Genius Gary, que é o melhor programador do lote mas tem a atitude para ir com ele.

"O caminho menos arriscado é retrabalhar a nossa base de código existente," diz o Engenheiro Eric. "Já sabemos como difícil ele deve trabalhar com os motoristas para os dispositivos de fita. Sim, há cabelo na velha base de código mas isto é o diabo que conhecemos." Yeah, there's hair in the old code base but that's the devil we know."

"Durante seis semanas, Babooza diz que eles entregarão um API que cuida da maior parte disto." diz Liason Larry. "Porque fazem algum disto se aqueles tipos o farão para nós?" "Why do any of this if those guys will do it for us?"

"Babooza de Confiança? Você é louco. E a nossa velha base de código chupa. Todo mundo sabe isto. Vá novo." And our old code base sucks. Everybody knows that. Go new."
"Concordei com você sobre Babooza. Mas você quer pular de na água profunda sem colete salva-vidas. Vá velho." Go old."
"Mas e se Babooza entrega algo funcional? A vontade pode fazer os nossos reveladores acrescentar mais características e um GUI realmente bom em vez de cometer um erro crasso em volta da tentativa conseguimos que os passeios de fita arquivem.""

Neste ponto na conversação, quase quando os reveladores estão a ponto dirigido ao seu desktop e ajustam a matéria jogando um deathmatch "no Torneio Irreal," Ploddin' Paul fala:

"Larry, o que você pensa desacordo é de Babooza entrega do API a tempo e ele sendo usuable?"

"Ai, eu dunno, talvez 50 %"

Tanto Eric como Gary fazem barulhos e Paul marca isto abaixo a 25 % na sua cabeça.

"Gary, se e outro revelador influírem na criação de que precisamos do zero, você pensa que podemos embarcar a tempo?" pergunta Paul.

"Naw, demasiado trabalho, eu precisaria de pelo menos outro tipo."

"E se lhe dei um tipo três meses em? Talvez dois.""

"Okey, possibilidade de 80 % de ser feito a tempo."

Agora é Eric e a tendência de Larry para rolar os seus olhos. Portanto Paul marca abaixo desacordo a 40 % na sua cabeça.

"Eric?"

"C'mon Paul, dê-me a equipe inteira e noventa por cento seguros que ele está indo ser entregue."

"Mais cabeludo do que as costas de uma gorila," diz Gary em um sussurro barulhento a Larry. "Pense o espaguete.""

"Eric, se você somente estiver retrabalhando o código, como você precisa da contagem de cinco?"

"Avance, o mais o mais alegre. Está indo haver muita depuração.""

"Você adquire um tipo por agora, com talvez mais durante três meses. Portanto são você por cento ainda de 90 % seguros?""

"Ai, nenhuma promessa," diz Eric

Paul mentalmente marca desacordo abaixo a 50-50. Ele deu uma olhada para o código. É terrível. It's terrible.

Paul toma a sua decisão. "Todo mundo vai-se e faz a sua própria coisa. Voltaremos durante três meses e revista." Todo mundo acena com cabeça a sua cabeça e vai-se embora. Ele pareceu-se sempre que, com Paul que nunca toma uma decisão do caminho final de tomar até o último momento possível. Ele deixou alguns reveladores completamente loucos às vezes, com a rosnadura ímpar que o grupo sempre parece estar à beira da anarquia completa. Mas Paul REALMENTE deixou todo mundo tentar o seu próprio caminho a maior parte do tempo, portanto as pessoas estiveram as mais felizes. Somente pareceu tão ineficiente... We'll come back in three months and review." Everybody nods their head and walks off. It was always like that, with Paul never making a decision on the final path to take until the very last possible moment. It drove some of the developers completely nuts sometimes, with the odd grumble that the group always seem to be on the verge of complete anarchy. But Paul DID let everybody try their own way most of the time, so people were most happy. It just seemed so inefficient...

***************************************************************************

Deste modo, em primeiro lido, ele parece que Paul está violando uma das regras de ouro do gerenciamento de projetos que é sempre trabalham muito para modificar os seus 85 para 95 (isto é, sempre tente ao seu ímpar do êxito, não importa que incremental pode ser). Paul está renunciando a alguns caminhos que prometem uma possibilidade de por cento de 90 % de êxito e permissão de reveladores perseguir algumas aproximações de alto risco. Também, tenho de dizer que esta aproximação pareceria à merda se você o jogasse para cima em um diagrama de Gantt: em vez da Pequena barra limpa mostrando cinco reveladores que colaboram como uma equipe em direção a um objetivo comum, você tem três barras que trabalham na paralela em direção à mesma meta. Em algum momento no diagrama, você tem de terminar duas daquelas tarefas, com todos os resíduos de recursos que contêm (No caso de Paul, o ponto de decisão é a meia distância no projeto ou três meses). Also, I have to say that this approach would look like crap if you threw it up on a Gantt chart: Instead of clean little bar showing five developers working together as a team towards a common objective, you've got three bars working in parallel towards the same goal. At some point in the chart, you've got to end two of those tasks, with all the waste of resources that implies (In Paul's case, the decision point is halfway into the project or three months).

Resumir: Os reveladores não pensam que Paul é gerente de projetos decisivo, e definitivamente, se o chefe de Paul vivesse e morresse pelo diagrama de Gantt, ele iria se admirar porque Paul desperdiçava recursos com todo o redundacy.

Mas mais uma vez, a matemática trabalha para Paul, porque no desenvolvimento de software, os caminhos paralelos com uma possibilidade razoável do êxito são um melhor do que um caminho com uma alta possibilidade do êxito. Observe que o caminho de paralelas significa que você acrescenta as percentagens em conjunto, não se multiplicam como em uma seqüência:

Um caminho: 90 % de êxito.
Três caminhos: 25 % + 40 % + 50 % = 115 % de êxito!!!

Naturalmente 115 % não significam que o projeto está absolutamente seguro de ser concluído com sucesso e a tempo. Estas percentagens são percentagens de jogador, significando que a soma é a adição de uma série de apostas de um pagamento de salários dado. Uma história metafórica poderia fazer coisas mais claras. A metaphorical story might make things clearer.

Vai fingir que estamos no cassino em vez de em um ambiente de desenvolvimento de software. Você tem US$ 500 no seu bolso e o prêmio é... Oh, eu dunno... uma marca novo Ipod (A melhor versão, aquele com 40 troles. Aquele minha esposa não me deixará comprar 'a causa não tenho um emprego, embora ele me fizesse realmente, realmente feliz se eu poderia).Oh, I dunno... an brand new Ipod (The best version, the one with 40 gigs. The one my wife won't let me buy 'cause I don't have a job, even though it would make me really, really happy if I could).

Você pode colocar todo o seu dinheiro em uma aposta e ter uma possibilidade de noventa por cento da vitória. Ou você pode fazer uma série mais complicada de apostas como Paul fez: Você suprime US$ 100 e tem uma possibilidade de 25 % da vitória. Você também simultaneamente suprime US$ 200 e tem a possibilidade de 50 % da vitória e suprime mais US$ 200 para ter uma possibilidade de 40 % da vitória. You put down $100 and have a 25% chance of winning. You also simultaneously put $200 down and have 50% chance of winning and put down another $200 to have a 40% chance of winning.

E aqui está onde o divertimento entra: Com a primeira aposta, há uma volta da roda e você sabe se você é um vencedor ou um perdedor. Se a estimativa do desenvolvimento for correta, você é vencedor nove vezes fora de dez. If the estimate of the development is correct, you are a winner nine times out of ten.

Mas com o três cenário de aposta, você tem três voltas da roda, e se uma das voltas subir um vencedor, você adquire a metade do seu dinheiro atrás de outras duas apostas. Por exemplo, se uma das apostas de US$ 200 sobe um vencedor, você devolveria US$ 150 (50 % de US$ 100 e US$ 200). Isto é, se a aproximação de Gary conta com ser vencedor depois de três meses no projeto, então você pode abandonar a aproximação de Eric e Larry. That is to say, if Gary's approach looks to be a winner after three months into the project, then you can abandon Larry and Eric's approach.

Mas o que acontece se nenhuma das apostas subir um vencedor? Ah-ah, bem se isto acontecer, o cassino lhe permitirá dobrar a sua aposta e volta novamente, tomando metade do valor total das suas apostas (US$ 250) e permitindo-lhe girar novamente (Com as possibilidades do êxito não sabem até que 3 primeiras voltas sejam concluídas). Isto é, se depois de três meses, o API de Babooza totalmente chupa, e a equipe de Gary não pode até fazer um diário constrói sem o compilador que entra em histeria, então Paul pode tomar a decisão de lançar todo mundo no projeto de Eric de retrabalhar a velha base de código. That is to say, if after three months, the API from Babooza totally sucks, and Gary's team can't even do a daily build without the compiler going into hysterics, then Paul can make the decision to throw everybody on Eric's project to rework the old code base.

Em curto o complexo, a alocação quase caótica de recursos em um ambiente de desenvolvimento de software leva em conta uma melhor possibilidade de um projeto que é concluído, e para mais uso eficiente de recursos de revelador. Tropecei através desta descoberta pela maior parte por acaso, quando eu rosnava da impropriedade de diagramas de gantt para descrever exatamente o que realmente entra em um ambiente de desenvolvimento verdadeiro. Com certeza, não esperei encontrar uma prova matemática do comportamento que vi no PWS (software) a divisão de Creo. For sure, I didn't expect to find a mathematical proof for the behavior that I saw in the PWS (software) division of Creo.

Anyways, para mim isto é uma descoberta realmente fresca, porque valida todo mundo dirigido em volta e faz a sua própria coisa e vão tomar uma decisão a aproximação posterior. Bem, subentendo que a matemática valida a teoria. Hmmm, não sei se eu ia para tentar "vender" esta aproximação em uma entrevista de emprego ou algo assim. Hmmm, I don't know if I would to try to "sell" this approach in a job interview or something like that.

Exclamações, Locutor

P.S. Se, na literatura de desenvolvimento de software, alguém tenha encontrado idéias similiar àqueles apresentados em cima, por favor deixe-me um e-mail portanto posso ligar-me a ela. É bastante possível (talvez até provável) que esta "Anarquia é a Boa" teoria já foi descoberto e sou somente ignorante dele. Thx. It's quite possible (maybe even probable) that this "Anarchy is Good" theory has already been discovered and I am just ignorant of it. Thx.

O conteúdo deste site web é fornecido por www.bluebutterfly




Provisões de necessidade? Check out Irmão Cartucho de Tinta negra de LC-25BK (Irmão LC25BK) Brother LC-25BK Black Ink Cartridge (Brother LC25BK)
Preaperte Peregrino

Preaperte Peregrino

Deixe um Comentário