Programação 101 - O que é um Software? Isso vai te surpreender.
20
0

Programação 101 - O que é um Software? Isso vai te surpreender.

Fala pessoal! Passei os primeiros dias de 2021 pensando no conteúdo que me dedicaria para esse ano de forma que pudesse contribuir para quem está interessado aprender mais sobre Programação, Tecnologia e afins.

Emerson Gomes
0 min
20
0

Fala pessoal! Passei os primeiros dias de 2021 pensando no conteúdo que me dedicaria para esse ano de forma que pudesse contribuir para quem está interessado aprender mais sobre Programação, Tecnologia e afins.

Então sejam todos muito bem-vindos(as)!

<i>Fonte:&nbsp;<a href="https://unsplash.com/@lukepeters">Luke Peters</a>&nbsp;(Unsplash)</i>
Fonte: Luke Peters (Unsplash)

Após algumas reflexões e conversas com amigos, decidi escrever uma série que vai explicar como tudo funciona na programação ao contrário de começar por ensinar códigos, como muitos fazem, que pessoalmente dado minha própria experiência não vejo como um caminho correto para se aprender.

Falo isso, pois no começo da minha carreira lá em meados de 2002 comecei por escrever códigos em PHP sem conhecimento nenhum dos fundamentos e até mesmo de como funcionava um processamento de dados e lógica, com isso vocês podem imaginar o quão difícil foi crescer na carreira em meio aos desafios e horas afinco tentando buscar o conhecimento que deixei de lado no início para que então eu finalmente pudesse chegar onde estou, liderando um time de Arquitetura de Soluções. Aprendi pela dor, mas o mais importante foi que não desisti e aqui estou compartilhando  um pouco do meu conhecimento para que vocês possam trilhar no caminho certo e progredirem mais rapidamente.

O primeiro artigo dessa série é justamente trazer uma reflexão sobre o que afinal significa um Software. Eu fiz essa pergunta, pois fiquei pasmo com a quantidade de colegas, amigos de profissão que até então não conseguiam explicar o que significa Software além do termo literal trazido por dicionários e pela Wikipedia. Entender o real significado de um Software vai fazer a diferença entre um bom programador(a) e aquele(a) que ainda não despertou.

Primeiro, vamos ver o que dicionário nos diz sobre o termo Software.

the instructions that control what a computer does; computerprograms
(Instruções que controlam o que um computador faz; programas de computador)

Até aqui nenhuma novidade, nós já sabemos que Software é um conjunto de instruções enviados para o computador a fim de realizar uma tarefa específica. Vamos agora olhar pra ver o que a Wikipedia nos diz:

Software[1] (pronúncia em inglês: ['sɔftwɛəɹ]), é um termo técnico (e anglicismo de tecnologia da informação) que foi traduzido para a língua portuguesa como logiciário ou suporte lógico[carece de fontes], é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado (informação) ou acontecimento.

Como visto acima, ambos o dicionário e a Wikipedia trazem a mesma informação, informação esta que pode satisfazer a dúvida de muitos programadores. Mas, gostaria de ir mais além e trazer pra vocês uma outra definição de Software, a que particularmente aprendi pela dor e acredito aqui ser a definição que vai te ajudar a se tornar um programador(a) melhor.

O que realmente significa Software (na visão de um programador)?

Pra entendermos mais sobre Software, precisamos pensar em valores, não no sentido monetário, mas no sentido ético (propósito). Por definição, um Software deve entregar 2 valores:

  • Comportamento
  • Estrutura

Comportamento

O primeiro propósito de um Software é justamente fazer com que a máquina se comporte de maneira a gerar ou economizar dinheiro para o investidor ou principal interessado, através de nós programadores que somos contratados para criar esse conjunto de instruções para fazer a máquina agir conforme os requisitos funcionais especificados pelas partes interessadas no programa (investidor, empregador, usuário), então gerando ou agregando valor para quem está investindo nesse produto ou idéia.

Estrutura

O segundo propósito está interligado com a etimologia da palavra "Software" - palavra esta que pode ser dividida em duas: "soft" e "ware". A palavra "ware" pode se traduzir para "produto" e a palavra "soft" pode se traduzir para "flexível".

É aqui que está o segredo para um bom software. O propósito de um Software é ser flexível ou seja uma forma fácil de mudar o comportamento de uma máquina.

Afinal de contas, se criamos um Software para gerar ou agregar valor para um grupo de pessoas interessadas (stakeholders) - Comportamento, o que acontece se esse(a) stakeholder mudar de idéia? Temos que rapidamente mudar esse Software para que ele se comporte na "nova"maneira desejada - Estrutura.

Qual é a lição que fica?

Bom, esse artigo tem a intenção de fazer você se perguntar: 

1) Esse código está ou vai gerar algum valor para meu stakeholder (empregador, usuário, investidor etc)?

2) O código que estou escrevendo ou alterando está estruturado de uma maneira que possa ser compreendido, estendido ou modificado facilmente?

Se você conseguir responder com clareza a essas duas perguntas acima, Parabéns! você realmente compreendeu o real significado de um Software. Agora, se não conseguiu responder claramente, eu lhe convido a tirar a mão do código agora mesmo e buscar entender o que realmente está produzindo, e aqui pode involver a ajuda da equipe de negócios, das partes interessadas ou do seu usuário.

Espero aqui ter contribuído um pouco para fazer você a se tornar um programador(a) do futuro!

Referências

  • Livro Código Limpo (Clean Code) de Robert C. Martin (Uncle Bob).