Rafa Nascimento

#soudev

Posted in time by Rafa Nascimento on 02/07/2011

O que é desenvolver software?

 

Desenvolver um software envolve muito mais processos e pessoas do que o ato de escrever instruções que programem o comportamento de um computador. Todos os passos, artefatos, ferramentas e pessoas envolvidas em um projeto de construção de um software têm igual importância. Desenvolver um software é o ato milenar de desenvolver um produto. Quando trabalhamos em um processo como tal, não basta contarmos como “sucesso” somente o cumprimento da nossa parte. Durante o desenvolvimento de um software, somos uma comunidade de profissionais com objetivos em comum. Objetivos tecnológicos em comum e objetivos de negócio também em comum. Em um time de futebol, não basta a defesa defender. Isso não configura sucesso. O ataque precisar marcar gols.

 

Um projeto de desenvolvimento de software nada mais é do que uma ferramenta que nos ajuda na organização dos nossos esforços rumo à entrega de um produto de qualidade. Um equívoco comum na área é o fato de o projeto de desenvolvimento de um software tornar-se mais importante que o próprio software sendo desenvolvido. O produto deve ser o centro das atenções. Suas funcionalidades, qualidade e satisfação do cliente. Não as datas e previsões descritas em um cronograma. Deve-se pensar em gestão de produto, e não na gestão de projeto. Deve-se buscar excelência em qualidade de produto, não excelência em cumprimento de prazos.

 

Em um ambiente ágil, colaboração é a palavra-chave para que uma comunidade de profissionais conclua a construção de um produto. Aliás, colaboração é a palavra-chave em qualquer comunidade que possui um objetivo comum. Quando mães buscam seus filhos nas escolas e conversam entre si ponderando sobre a escola, vez ou outra surge um esforço colaborativo para viabilizar reuniões com professores e diretoria que visam buscar melhorias na qualidade de ensino e tratamento de seus filhos. Estas mães formam uma comunidade. Um grupo de pessoas com um objetivo em comum: dar a melhor educação e ambiente possíveis a seus filhos. Em um projeto de desenvolvimento de software, todos, do cliente ao desenvolvedor, devem formar uma comunidade de profissionais que colaboram em prol de um único objetivo: a entrega de um software de qualidade que atenda às expectativas do cliente e de seus usuários. Meu objetivo não é ser um excelente Scrum Master. Mas, sim, ser o melhor Scrum Master para a comunidade onde me encontro. A comunidade que desenvolve o mesmo produto que estou desenvolvendo.

 

Em um ambiente ágil, todos os esforços têm igual importância. Como em uma comunidade. O usuário desenvolve software, o patrocinador desenvolve software, o gerente de projetos desenvolve software, o scrum master desenvolve software, o testador desenvolve software, o designer desenvolve software, o desenvolvedor desenvolve software, o arquiteto desenvolve software. Embora trabalhemos como profissionais especializados, fazemos parte de times. E quando isso acontece, não basta que o nosso trabalho de codificação esteja excelente e o trabalho do designer esteja muito ruim. Se estamos desenvolvendo um produto como uma equipe, precisamos ajudar nossos companheiros designers ou testers a realizarem o seu trabalho também com a mesma qualidade que realizamos o nosso trabalho, e vice-versa. Então, em vez de afirmarmos “a minha parte eu fiz direito”, por que não questionar: como posso ajudar meu companheiro de jornada? O que mais posso fazer para ajudar a construir um produto de qualidade? Não uma tela de qualidade, um código de qualidade ou um planejamento de qualidade.

Tagged with: , ,
%d blogueiros gostam disto: