[quote=ViniGodoy]Eu sempre defendi que uma das razões pela qual a informática ainda se dá muito mal com os administradores é que um não quer, e não faz questão de aprender a lingua do outro. O pessoal de administração até tem tentado, mas a contra-partida na informática, o esforço é mínimo. É só ver parte das opiniões aqui, que claramente não fazem idéia do que um gerente faz, das pressões que sofre e, de maneira geral, chegam a julga-lo desnecessário - não estou só falando do gerente técnico de projeto, mas da figura do gerente de maneira geral.
Eu concordo com você em quase tudo que disse nas suas últimas colocações. No fato das nossas próprias estimativas serem muito irreais e de nossos processos ainda serem extremamente falhos. Mas não acho que uma regulamentação resolveria nada, nem que seja necessária, muito menos benéfica.
Vale ressaltar também que muitas vezes o “leão de chácara” pressiona para os profissionais cumprirem os prazos que eles mesmos deram - e que erraram grosseiramente. Já muitos profissionais de informática (e eu já fui um deles) se empolgarem e, deliberadamente, aumentarem os requisitos do software - uma prática tão comum que há vários capítulos evangelizando contra isso no início de todo livro ágil. E não estou nem entrando no mérito também da má preparação das faculdades, e dos erros grosseiros que muitos profissionais cometem por pura inexperiência (para não dizer incompetência).
O que temos de mais metodológico, que é a UML e os processos não ágeis, chega a ser irreal e patético. Envolve um esforço grande de estimativa (que por mais que os defensores queiram, não pode ser cobrado e por isso nunca é feito), seguido de um desenvolvimento quase em cascata e de péssimos resultados.
A saída ágil, apesar de mais precisa, também falha ao propor ausência de cronograma ou prazos de longo prazo, o que soa irreal para qualquer um que vai gastar o próprio dinheiro. Imagine você ir comprar um carro, e o vendedor dizer “vai pagando aí pelas partes, que um dia seu carro vai ficar pronto”, e se recusar a dizer quantas iterações ou qual vai ser o custo total da brincadeira. Embora eu ache que o ágil seja realmente mais seguro e correto, e saiba que na prática um software é muito diferente de um carro, creio que ainda precisamos equacionar a questão da expectativa de longo prazo e as previsões de investimento. Eu passei o último ano inteiro tentando - e essa é uma tarefa MUITO difícil.
Não estou dizendo que os gerentes fazem tudo certo. Há muitas empresas ruins, onde o comercial inventa prazos e funcionalidades, onde os gerentes são realmente ignorantes e leões de chácara (e devemos fugir de empresas assim). Há também o fator humano, ou seja, o gerente também é passível de erros por inexperiência ou por desconhecimento. E há a imprecisão natural da profissão - que é bem mais distante do preto no branco da área técnica e trabalha com variáveis bem menos conhecidas.
Agora, não acho que a solução também esteja na gente se fechar no nosso mundinho, e achar que seremos uma área isolada da administração e que poderemos desenvolver projetos sem nos preocupar com custos, prazos, riscos, planos de contingência, metas, indicadores, performance, etc. Que nossas equipes serão 100% auto-gerenciadas e independentes do resto da empresa. Auto-gerenciamento técnico é uma coisa, auto-gerenciamento total, é outra e utópica.
[/quote]
Esse é o motivo porque acho que nossa área é uma droga…
Administração e TI tem focos diferentes, um é voltado para soluções limitadas, o outro pensa em metas e resultados. A questão é que as organizações tendem em pensar em algo como hora trabalhada/pontos de função em que cada hora um profissional é capaz de criar x pontos de função. Essa é uma visão de administração, mas não de TI, simplesmente porque ela não é real. O problema não está na administração das empresas, está na nossa área. Nós não somos capazes de produzir estimativas e orçamentos confiáveis e por causa disso nossa área sofre uma descrença, o resultado disso é que nossos gerentes geralmente são profissionais que não sabem a diferença entre um mouse e um teclado (salvo exceções em tipos de serviços muito específicos, ou empresas com maior grau de conhecimento), porém sabem como maximizar a produtividade de sua equipe a troco da qualidade. Ele não é capaz de produzir uma estimativa, mas reduz o prejuízo do projeto e quem paga são os profissionais que apenas discutem formas de implantação (aka Go Horse).
Para mim, tanto os métodos ágeis quanto os tradicionais já provaram não funcionar, para mim um é acadêmico demais e o outro caro e não funcional, é impossível planejar um sistema inteiro para dar o preço dele como é feito em engenharia.
Eu entendo 100% o que você quer dizer, mas só vou fazer um parênteses quanto a parte que você fala que o próprio funcionário estimou o prazo e está sendo cobrado por ele, o trabalho na área de TI é 100% tecnológico e de certa forma, de pesquisa, sempre haverá essa variação de prazo e isso tem que ser entendido, eu já vi muita gente tomar esse tipo de cobrança, eu mesmo já tomei, mas não concordo, as dificuldades decorrentes do cálculo de prazo são relativos as novidades encontradas em cada etapa de um projeto, existem poucos erros de cálculos em domínio conhecido e principalmente, é necessária uma análise profunda do momento em que o prazo de uma demanda foi passado, a pressão exercida para passar o prazo e tantos outros fatores…
O problema é que trabalhamos com conceitos intangíveis para entregarmos um sistema rodando. Sempre haverá pressão enquanto não conhecermos a melhor a forma com a qual devemos criar estes. Recentemente, muitas empresas migraram de sistemas desktop para sistemas web, eu conheço as vantagens tecnológicas, mas não conheço as vantagens de negócio. Eu acho que precisamos repensar seriamente o que estamos desenvolvendo e até que ponto é útil e funcional o que desenvolvemos.
A questão da regulamentação não solucionaria hoje o problema que temos em relação a especificações, que convenhamos, é nosso trauma, começamos a fazer o sistema sem saber como ele vai ficar quando estiver pronto e por isso é impossível calcular o esforço e consequentemente o tempo e o custo, tudo que fazemos é estimar baseado na nossa experiência, as vezes mais embasado, as vezes mais estimado. Só que a questão vai muito mais longe do que isso, se existisse hipoteticamente uma documentação perfeita, em que todos os detalhes fossem cobertos, ainda sim existiriam vários problemas de implantação, pela falta de conhecimento nas tecnologias que estão sendo utilizadas, e isso decorre principalmente da mudança constante na nossa plataforma de desenvolvimento. O ponto é que quando um cliente contrata uma empresa, ele geralmente não sabe qual tecnologia será usada e mesmo que soubesse, ele não consegue avaliar se quem foi contratado está apto ou não para executar um determinado tipo de serviço. A responsabilidade técnica é uma defesa para o cliente, não é para os profissionais de TI, é injusto dividirmos a responsabilidade do sistema que criamos com ele, o cliente é apenas um consumidor e nada mais, e assim que deve ser visto.
Quando eu desenvolvo um sistema para terceiros, eu limito com o cliente as tecnologias que serão usadas, mesmo sabendo que o sistema pode precisar de mais recursos, eu acredito seriamente que é melhor ter domínio de algo limitado, do que utilizar erroneamente algo poderoso. E isso varia de cliente para cliente, quando tenho um cliente com conhecimento maior, eu utilizo mais recursos, quando não, utilizo o mínimo possível, pois no futuro, caso eu não esteja mais trabalhando para ele, o cliente pode ter dificuldades de manter o sistema, devido a mão de obra que ele não tem como avaliar.
Se existisse alguma forma de tornar obrigatória a certificação de uma empresa e habilitá-la para trabalhar apenas com o que suas certificações permitem, acredito que muitos erros seriam evitados e consequentemente, haveria um domínio muito maior do que está sendo desenvolvido. Essa é a forma que eu regulamentaria algo tão dinâmico quanto TI.