Pular para o conteúdo principal

A experiência de software

Hoje em dia está muito em voga se falar sobre o desenvolvimento de produtos e serviços de software. Sendo assim as iniciativas e startups estão alta. Mas para quem está no mercado de Brasília (e de alguns outros centros do país) como eu, sabe que a prestação de serviços nas famigeradas "Software Houses" (me recuso a chamar de Fábricas de Software) é bem comum. Porém, este trabalho costuma ser renegado ou, como eu vejo, tratado sob um ponto de vista um pouco equivocado.
Uma fábrica de software artesanal

Onde se enganam tais pessoas é em que elas estão vendendo. Muitas empresas acreditam, de fato, que vendem software. Eu porém digo que isso é não de todo verdade. Se você é um prestador de serviços e constrói software sob demanda, você não vende apenas o software. Aqui não me refiro aos milhões de outros "artefatos" que são empurrados goela abaixo entregues aos nossos clientes. O que vejo é que vendemos algo que não está limitado ao software que vai pra mão (ou seriam servidores?) do usuário. Nós prestamos toda uma experiência ao usuário com relação a como se construir o software.
Usuários se importam com mais que só o resultado final

Seja o seu projeto de 1 mês ou 1 ano. Seja seu processo cascata, RUP ou agile. Seja sua empresa certificada CMMI, MPS.BR ou ISO. Não importa onde você acha que você se encaixe neste mundo louco de desenvolver software para humanos, tenha a certeza que estes humanos participarão do processo. É justamente esta viagem que nos leva a mostrar alguma coisa no monitor que vendemos para estes caras. Assim, esta experiência é um dos pontos mais importantes de sucesso de um projeto. Compreender e ensinar nossos clientes a viver isto é uma tarefa para nós desenvolvedores.
Não fuja das suas responsabilidades

Nós, profissionais de TI, somos mestres em fugir desta responsabilidade. Desenvolvedores evitam falar com o cliente como vampiros da luz do sol. Gerentes blindam o desenvolvimento com atas, acordos e toda a papelada possível. Mas a grande questão é que nos esquecemos que é nosso papel ensinar e compreender como nosso usuário deve experimentar essa caminhada rumo a solução desejada. Independente do cliente ou da equipe envolvida, existe uma interação que deve ocorrer entre as partes. O que eu vejo nestes artifícios criados são muletas de como fugir da responsabilidade que possuímos de cobrar e educar nossos usuários em como se desenvolver o software.

O trabalho entres as partes deve ser conjunto

Não tem como nos desvencilharmos desta questão. Cada uma das partes guarda um pedaço da solução a que todos desejam chegar. Clientes e usuários possuem o conhecimento do que eles necessitam. Por mais que nós desenvolvedores queiramos acreditar do contrário. Desenvolvedores detém a solução que vai atender aquela necessidade. Portanto, se o usuário não está disponível para o desenvolvedor discutir aquela tela linda que ele bolou, não vai ser um belo documento assinado que vai garantir que ela estará certa. Cabe a nós mostrarmos ao usuário que é dele esta responsabilidade. Vale também nós aceitarmos que é parte do cliente nos exigir e demandar qualidade e apreço no que fazemos.

Profissionais de TI e clientes de TI existem aos montes, uns mais duros e moles que os outros. Minha crença é que estas partes tem que se entender em busca de uma convivência. E para que esta convivência exista eles tem que interagir e conversar. Ambas as partes estão interessadas na mesma coisa, software funcionando. E cada parte só saberá o que a outra busca se elas interagirem. Porém, coloco aqui que a responsabilidade maior de buscar tal diálogo reside em nós, desenvolvedores, afinal software é a nossa praia.

Créditos das Imagens

  1. http://www.dailyblessingsfarm.com/
  2. http://tech4therapists.blogspot.com/
  3. http://nellatnci.files.wordpress.com/
  4. http://www.thehousewatchman.com/

Postagens mais visitadas deste blog

TDD como ferramenta de aprendizado

Na penúltima sessão do DojoBrasilia surgiu a seguinte questão: Será que o TDD não atrapalha no aprendizado de novas tecnologias?  A grande questão girava em torno de que o respeito estrito as regras ao TDD tornariam o aprendizado lento e enviesado. Isso por que você estaria focado em passar o teste o que estaria limitando sua velocidade no aprendizado na tecnologia, bem como a visão do objetivo final. Caso do dojoBrasília No caso da sessão que levantou a questão acho que o principal sentimento de "lentidão" se deve a grande carga de tecnologias novas que estavam envolvidas. Escolhemos iniciar um problema conhecido em não uma, mas várias tecnologias ( Backbone.js , Undescore , CoffeeScript , Jasmine , etc). Ao final da sessão a sensação de pouco avanço era justificada pelo tempo gasto compreendendo as tecnologias em questão. A sessão seguinte não obteve o avanço que muitos esperavam. Mas nela podemos ver como o uso de TDD compensou. Tínhamos apenas 4 cas

De Híbrido a 100% remoto - o caso da bxblue

A bx nasceu como uma empresa remota. Durante os primeiros 18 meses, os três fundadores --  eu, Guga e Roberto -- trabalhamos de nossas casas. Passado esse período inicial de maturação da idéia, nosso time começou a crescer, e acabamos optando por seguir um modelo híbrido. Nele tecnologia e marketing permaneceram remotos porém nosso time de atendimento e vendas ficou atrelado ao nosso escritório. Mas, como em muitas outras empresa, isso mudou nas últimas três semanas. Depois de tantos anos, nos tornamos uma empresa 100% remota. O O grande incentivo veio da situação que vivemos no mundo atualmente. Tendo o isolamento social como uma medida necessária a todos que tem o privilégio de poder fazê-lo, era nossa responsabilidade fazer tal mudança. Pois minha intenção aqui é contar um pouco tem sido essas 3 semanas que marcam o começo de um período que a ainda tem muito pela frente. Porque Híbrido? Antes, deixe-me explicar por que escolhemos o caminho de ser uma empresa híbrida, tendo na

Formando pessoas desenvolvedoras na bxblue

Eu sempre fui apaixonado por ensinar. Trabalho com a formação e ensino desde 2003, indo desde o ensino das bases de computação até lecionar em cursos de pós-graduação. Estar no dia-a-dia com pessoas que estão no começo da carreira é um mix de satisfação e desafio. Satisfação por você ter a oportunidade de contribuir com um pedacinho tão especial da história daquela que será uma pessoa desenvolvedora no futuro. Desafiadora pelo fato de precisarmos nos despir de aprendizados já superados em nossas mentes e nos esforçamos por enxergar novamente pelos olhos de quem ainda não tem a mesma vivência que você. Por onde passei, eu sempre acreditei que um bom equilíbrio entre profissionais experientes e em formação é a melhor combinação para um time de tecnologia. Isso é benéfico não apenas para a retenção, como também é estímulo para uma cultura de aprendizado e humildade. Cultura essa que favorece o compartilhamento e interação não apenas entre quem faz o software, mas também as demais áreas da