Prazo no desenvolvimento de software, qual é a ciência exata?
Newsletter about software engineering, team management, team building, books and lots of notes I take after reading/studying (mine or yours)… :D
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-las), com isso trabalhar muito mais para cumprir o que você assumiu (prazo).
Levantando conteúdo para esse blogpost achei no Quora o seguinte topico "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 tem haver com tempo, prazo, horas e etc são os mais falado.
Sou engenheiro de software a mais de 7 anos de experiência passando por diversas empresas, mercados, equipes, é que praticamente todo engenheiro de software que conheci começa com a premissa 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 outras área:
- Ilustrador
- Produtor de video
- Design
- Entre outras profissão que trabalha com a mente…
As áreas relatadas acima trabalham com uma parte mais intelectual onde precisa ter a criatividade para conseguir produzir um conteúdo. Esse final de semana estava almoçando com outros desenvolvedores e um deles foi no evento InterCon onde um palestrante estava apresentando um case de um video de no máximo 1 minuto onde esse 1 minuto envolvia no minimo 5 profissionais e a produtora levou media de 5 mês para desenvolver esse projeto.
Desenvolvimento de software não é diferente das área relatada acima, é uma área intelectual onde você precisa pensar como o software 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 é 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 é resolvido 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 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 é constando. Outra que nos engenheiro de software não somos maquinas onde usamos software para escrever software e sim uma cabeça pensante de onde sai toda a logica.
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!