O PROGRAMADOR É ARTISTA OU TÉCNICO?

Taí um tema que encontra múltiplas e variadas versões, opiniões e experiências, em especial se confrontarmos escolas de gestão distintas.

Não há uma verdade única, mas há interessantes argumentos por (A) quem defende a codificação como uma atividade criativa análoga à arte, como pintar um quadro ou esculpir uma escultura, e (B) os que defendem que a produção de software, enquanto business, mais se assemelha à construção de um produto, como uma linha de montagem de um automóvel, por exemplo.

Segundo os defensores do conceito A, enquanto artistas, os desenvolvedores não devem ser pressionados com relação ao cumprimento de uma jornada fixa de trabalho, da mesma forma que a definição de prazo para conclusão de um projeto acaba por atrapalhar seu processo criativo.

Programadores seriam como artistas que esculpem uma obra de arte a partir do nada
Programadores seriam como artistas que esculpem uma obra de arte a partir do nada

Para os que percebem o software como um produto (segundo o conceito B), cuja construção aproxima-o mais das ciências exatas do que das artes, a etapa de alta criatividade está mais no projeto que antecede a montagem, e a codificação em si deve ser realizada por times com conhecimento das melhores técnicas, com método, processo e disciplina.

Profissional criativo é desejável em qualquer atividade, mas não é mandatório que todo programador seja criativo, desde que ele domine as técnicas mais atualizadas de programação para o projeto que esteja desenvolvendo.

Ou como diria o Sidney Lima Filho, especialista no tema:

– “Programar é igual a pintar, nem todo pintor é criativo, mas existem grandes obras de arte que são pinturas. Antes de me pedir para não ter horário, mostre-me o seu quadro. Criatividade é a habilidade de criar sistematicamente. Se você só cria de vez em quando, então você não é criativo, apenas teve algum rompante de criatividade. Programar é uma atividade criativa, portanto a qualidade da sua solução também reflete sua capacidade criativa.”

Ainda na ótica de quem acredita no conceito B, a criatividade na codificação se aproximaria das soluções que um engenheiro criativo aplica à linha de montagem, buscando melhor resultado do que aquele previsto no projeto original.

Neste caso, o conceito de times coesos, trabalhando juntos, no mesmo local e no mesmo horário, fazem muita diferença na produtividade, na eficácia e, por conseguinte, nos resultados alcançados na produção de software, em especial em projetos de grande porte.

Um trabalho que depende de uma equipe e no qual há uma interdependência de etapas, de compartilhamento de conhecimento e troca de experiências, seguramente terá melhores produtividade, eficácia e resultado, se toda a equipe trabalhar junta.

Programadores atuando como um time, trabalhando juntos no mesmo local e no mesmo horário, produzem software com maior produtividade, eficácia e resultados
Programadores atuando como um time, trabalhando juntos no mesmo local e no mesmo horário, produzem software com maior produtividade, eficácia e resultados

Ou seja, um time que desenvolve software de forma compartimentada, em que cada desenvolvedor é responsável por determinada funcionalidade ou trecho do código, será mais produtivo, eficaz e atingirá melhores resultados se todos atuarem no mesmo local e no mesmo horário.

A disciplina é mesmo um componente fundamental nesse tema e quando me refiro à comunicação presencial, destaco standup meetings diários, espírito de equipe, motivação pela criação compartilhada com amigos e colegas e reuniões de projeto, que é o que fazem o que chamo “team commitment”.

Entre produtividade ou eficácia definitivamente fique com os dois, mas atente que é um grupo de profissionais atuando juntos que impactará diretamente a conquista de resultados.

.

QUAL O “TRUQUE” DA SUA EMPRESA?

Segundo Steve Ballmer, ex-CEO e atual maior acionista da Microsoft, a maior parte das empresas tem apenas uma criação e se esta criação for brilhante, isto é suficiente para torná-la bem sucedida.

“Muitas empresas são o que chamamos de ‘mágico de um truque só’. Se você tem essa postura no mercado, você será bem-sucedido, pois fez algo de forma brilhante, criou uma coisa e acertou”, declarou ele durante palestra na Oxford University, Inglaterra.

Ballmer citou a Coca-Cola como caso clássico de criação de um produto revolucionário que sustenta a empresa até hoje, além de Apple e Microsoft como grandes companhias que se sustentam até hoje baseadas em um ou, no máximo, 2 “truques” (ou criações).

Segundo Steve Ballmer, a Microsoft opera até hoje baseada em dois "truques" criados por Bill Gates: o PC e a tecnologia corporativa
Segundo Steve Ballmer, a Microsoft sobrevive baseada em dois “truques” criados por Bill Gates: o PC e a tecnologia corporativa

No Brasil, quando uma empresa é criada a partir de um determinado produto ou serviço e, ao longo do tempo, se vê na situação de diversificar para crescer, a criação original é batizada de “vaca leiteira” ou de “galinha dos ovos de ouro”, dependendo da situação.

Ou seja, toda empresa pode e deve diversificar produtos e serviços, desde que evite por em risco a operação que suporta financeiramente a empresa, sob pena de lhe faltar o sustento para a sobrevivência.

Faça um exercício e imagine quais são os “truques” de grandes empresas que estão no nosso dia-a-dia: Friboi, Nestlé ou Samsung, por exemplo.

Ou ainda, identifique qual a criação original de grandes empresas do mercado de viagens e turismo brasileiro: Gol, CVC ou Blue Tree Hotels, por exemplo.

Melhor, reflita e responda: qual é mesmo o “truque” da sua empresa?

.

ESQUEÇA O “MOBILE FIRST”

O processo de desenvolvimento de novas soluções tecnológicas passa necessariamente por uma fase que chamamos de planejamento da arquitetura do sistema (ou “software architecture”), que nada mais é senão analisar todos os possíveis cenários de uso do sistema a ser desenvolvido, para construí-lo visando a máxima aderência do usuário.

Pode ser considerada uma das etapas do processo de “design thinking”, mas prefiro entendê-la como a integração entre o DT e o descritivo funcional, que é uma espécie de especificação técnica que antecede a codificação do sistema propriamente dito.

Abordo todo esse “tré-lé-lé” para comentar como o usuário final vem impactando o desenvolvimento de novos sistemas corporativos, sejam ERPs, Backoffices, OBTs, SGVCs, TEMSs (legenda no final do texto) ou quaisquer outros, em relação à migração de sua preferência nos últimos 15 anos: dos desktops para laptops, daí para tablets e, atualmente, para smartphones.

A dependência do smartphone começa cedo, influenciada pelo comportamento dos adultos
A dependência do smartphone começa cedo, influenciada pelo comportamento dos adultos

A explosão do mobile, bastante divulgada e debatida atualmente, causaram uma revolução também na produção de inteligência de software, o que levou muitas empresas de tecnologia a seguirem o que os centros de pesquisa e desenvolvimento já faziam há algum tempo: foco na plataforma mobile.

Sistemas pensados para uso via laptop passaram a ser desenvolvidos com versões App para plataforma mobile, um modelo caro de desenvolvimento e manutenção, devido aos diferentes sistemas operacionais das plataformas dominantes do mercado, que exigem equipes especializadas para cada uma, ou seja, vários profissionais fazendo basicamente a mesma coisa, para consumo por Apps diferentes.

Com as últimas versões dos “browsers” mais atualizados, que permitem praticamente todas as funcionalidades dos Apps, atualmente a tendência aponta para direção oposta, mais racional, prática, tão efetiva quanto os Apps e que não apresenta o risco do usuário encontrar versões diferentes de um mesmo sistema corporativo, de acordo com o sistema operacional de seu smartphone.

A metodologia de desenvolvimento baseda no “mobile first” venceu e a produção de software passou a focar nesta plataforma prioritariamente, deixando todas as demais (tablets, laptops e desktops) em segundo planos, gerando os sites chamados responsivos.

Os sites responsivos são desenvolvidos para se adaptarem à plataforma do usuário
Os sites responsivos são desenvolvidos para se adaptarem à plataforma do usuário

O fato é que a velocidade do predomínio do mobile sobre todas as outras plataformas está, agora, provocando nova ruptura no processo, não mais linear, de desenvolvimento de software, fazendo com que muitos sistemas passem a ser desenvolvidos com foco não mais prioritário, mas exclusivo, nas plataformas mobile.

É o tal do “mobile only”, uma tendência mundial (ainda distante para algumas famílias de sistemas) ditada pelo comportamento do consumidor, que compra e usa mais smartphones do que toda a soma de tablets, laptops e desktops, num movimento que o faz misturar definitivamente vida pessoal e profissional, sem qualquer diferenciação entre elas, a não ser a linha delimitatória que cada um consegue traçar no seu dia-a-dia.

Uma mudança de comportamento que parece interessante tecnologicamente, embora preocupante do ponto de vista das relações sociais, e que merece ser acompanhada de muito perto por quem produz sistemas para o usuário final.

Afinal, somos todos protagonistas desta revolução e co-responsáveis por aonde tudo isso vai dar…

A liberdade proporcionada pelo acesso ilimitado ao conhecimento trouxe também um novo tipo de não-liberdade, agravada pela escolha do usuário
A liberdade proporcionada pelo acesso ilimitado ao conhecimento trouxe também um novo tipo de não-liberdade, agravada pela escolha do usuário

.

Glossário de alguns termos técnicos deste texto:

– Software architecture = definição dos componentes e propriedades externas de um software, incluindo as interações com outros softwares, com foco principal na análise das necessidades dos usuários para um sistema a ser desenvolvido.

– Tré-lé-lé = o mesmo que blá-blá-blá, só que com algumas tecnicalidades.

– Design Thinking = abordagem do planejamento e desenvolvimento de soluções centrado nas pessoas.

– ERP = enterprise resource planning = sistema de gestão empresarial.

– Backoffice = sistema de gestão financeira.

– OBT = online booking tool = sistema de reserva online.

– SGVC = sistema de gestão de viagens corporativas.

– TEMS = travel and expense management system = sistema de gestão de viagens e despesas.

.