DevSecOps

6 dez, 2013

Prazo no desenvolvimento de software, qual é a ciência exata?

Publicidade

desenvolvimento-de-software

Falar de prazo é uma tarefa muito complicada hoje e sempre, pois não existe uma ciência exata (tirando 42). Outro ponto é que prazo é uma promessa e, consequentemente, promessa tem que ser cumprida (e você vai fazer de tudo para cumpri-la); com isso. trabalhar muito mais para cumprir o que você assumiu (prazo).

Levantando conteúdo para este artigo, achei no Quora o seguinte tópico “What is the hardest thing you do as a software engineer?” (Qual a coisa mais difícil para um engenheiro de software?), e os termos que têm a ver com tempo, prazo, horas etc. são os mais falados.

Sou engenheiro de software com mais de 7 anos de experiência, tendo passado por diversas empresas, mercados, equipes, e praticamente todo engenheiro de software que conheci começava com a premissa de que “código” é o objetivo e a solução de todo problema.

Para falar mais sobre esse assunto, acho necessário sairmos de nossa área de atuação (desenvolvimento de software) e olhar para outras áreas:

  • Ilustrador
  • Produtor de vídeo
  • Design
  • Outras profissões que trabalham com a mente…

As áreas relatadas acima trabalham com uma parte mais intelectual, nas quais é necessário criatividade para conseguir produzir um conteúdo. Recentemente, estava almoçando com outros desenvolvedores e um deles foi no evento InterCon, onde um palestrante apresentou um case de um vídeo de no máximo 1 minuto, em que esse 1 minuto envolvia no mínimo 5 profissionais, e a produtora levou uma média de 5 meses para desenvolver esse projeto.

Desenvolvimento de software não é diferente das áreas relatadas acima, é uma área intelectual na qual você precisa pensar como o software vai escalar, se o banco de dados relacional vai se sair bem na hora que tiver muito trafego (caso não, qual é a melhor alternativa), qual é o melhor design pattern para a implementação a ser feita e outros pontos que envolvem o desenvolvimento de software.

Então aprendam a primeira e mais difícil verdade do mundo: software normalmente não é resolvido com software, é resolvido com capacidades humanas. Numa distribuição de Paretto, eu diria que 80% de todo problema de software somente são resolvidos quando você investe aqueles 20% restantes em comunicação, articulação, pensamento claro e racional, quebra ambiguidades, negociação, compromisso.

Quando você passa um prazo (faz uma promessa), você vai ter que assumir o risco de que a proposta inicial vai realmente resolver o problema proposto, e isso nem sempre é possível, pois estamos trabalhando com tecnologia, e a evolução é constante. Outra coisa é que nós, engenheiros de software, não somos maquinas que usam software para escrever software, mas sim uma cabeça pensante de onde sai toda a lógica.

Dito isso, é possível cumprir todas as promessas? Não, infelizmente não é. Mas é nossa responsabilidade como profissionais estar sempre em busca desse ideal, não criar maneiras de evitá-las.

Ou seja, não existe uma ciência exata para prazo!