Documentação do Sistema

Olá pessoal!

Estava lendo alguns artigos sobre engenharia de software, especificamente nas insistências de que um sistema deve estar bem documentado.

Na própria faculdade de Análise de Sistemas, os professores batem muito nesta tecla. Se você pretende seguir esta área, saiba que não é apenas sistema que vai ser visto, muitas normas e teoria também serão dadas como parte da ementa e de uma documentação do sistema.

Antigamente o software era desenvolvido a toque de caixa, seguindo o modelo cascata, onde ao iniciar um projeto, os requisitos era coletados, o sistema desenvolvido e no término, apresentado ao cliente. Ocorre que com o passar do tempo, os requisitos podem mudar, e o sistema poderá não mais atender às necessidades do cliente.

Para contornar esta situação o próprio modelo cascata gerou o modelo mini-cascata, onde em cada etapa do processo de desenvolvimento de software deve conter todas as etapas do modelo, ou seja, os requisitos estarão constantemente sendo colhidos e analisados e implementados, e paralelamente a isto o feedback do cliente deve estar alimentando a equipe de desenvolvimento.

E a documentação entra aonde nesta história? Ela entra antes mesmo da elaboração do software, assim que o sistema é cogitado a existir, algum documento deve existir descrevendo este software. Quando ele entra em fase de concepção o gerente do projeto deverá ter em mãos toda a gerência do projeto já planejada, podendo a qualquer momento efetuar mudanças e evitar atrasos nos prazos.

Os artefatos de software, como são chamadas cada parte que constitui o software, incluindo aqui a sua documentação, devem ser feitos e acompanhados antes, durante e depois da elaboração do software. Pois desta forma, qualquer um dos desenvolvedores poderá efetuar alterações no sistema com muito mais facilidade, e se um outro desenvolvedor entrar para a equipe, poderá se situar mais rápidamente em que ponto de maturidade o software está e onde ele vai começar a mexer.

Se a equipe futuramente se dissolver ou se o gerente for substituído, o software não será afetado, pois se está documentado, qualquer profissional com conhecimentos técnicos poderá dar continuidade ao desenvolvimento e manutenção.

O problema neste cenário é o seguinte.

Sabemos muito bem como está a situação financeira no mundo. As crises financeiras não surgem como se fosse uma gripe, elas são projetadas para acontecer. E aqueles que projetam essas quebras financeiras se chamam “banqueiros”.

Sabemos também que sempre que há uma crise, a corda sempre arrebenta para o lado mais fraco, ou seja, aquele que está na ponta da produção, no caso o “trabalhador”.

O que nós temos visto no sistema capitalista é que o empresariado é sempre protegido quando há problemas financeiros no país e a classe trabalhadora é sempre a prejudicada e forçada a aceitar as novas regras do governo.

Recentemente o que se têm visto são empresas divulgando vagas de emprego com pré-requisitos absurdos por um salário ridículo. Na área de TI querem um profissional que saiba Java, PHP, .Net, ASP, Delphi, C, Bancos MySQL, Postgre, Oracle, tudo isso junto por um mísero salário.

Essa exigência do mercado além de ser ridícula, expõe o que está acontecendo nos bastidores desse ramo. Querem um super-profissional a preço de banana. E isto é reflexo do que vêm acontecendo em outras áreas, por exemplo, para ser gari é necessário ter segundo grau completo. Há umas décadas atrás ter 2º grau completo já era possível trabalhar em condições muito melhores, agora é requisito para varrer rua e jogar sacos de lixo no caminhão de coleta.

É óbvio que estudar e ter qualificação é importantíssimo, mas será que isto está certo? As coisas estão colocadas em pé de igualdade na balança? Não houve durante o desenvolvimento do capitalismo uma enorme inversão de valores?

A massa de assalariados precisa de um emprego, mas as exigências são altíssimas, sendo que não há condições oferecidas para que toda esta gente possa estudar e se capacitar, logo, estão condenadas a ficar na base da pirâmide. São apenas gado.

Com os profissionais de TI está ocorrendo algo parecido, estão exigindo que o cara estude várias tecnologias para atender á demanda do mercado e receber um salário miserável. Mais uma vez o sistema capitalista atuando na degradação de uma profissão.

Agora imaginem uma empresa que começa a contratar da mesma forma que faz uma empresa de telemarketing, isto é, contrata um, deixa uns 6 meses desenvolvendo e passado esse período e para evitar vinculos empregatícios, dispensa o cidadão para chamar outro em seu lugar e dar continuidade ao trabalho. Muitos vão dizer que isto não será possível num projeto de software, mas e se a empresa possuir o sistema bem documentado, será mesmo que não poderá fazer esse rodízio de desenvolvedores, arrastando estes profissionais ao mesmo nível de um operador de telemarketing?

Afinal de contas, o call-center possui uma “baia” (um cubículo para o operador atender o cliente), com um computador que lhe fornece um sistema e vários scripts pré-elaborados para enganar o cliente,  na ponta da baia ele encontra um supervisor para tirar dúvidas.

Agora reparem a semelhança.

Um operador de telemarketing é treinado por uns meses para aprender o produto e assim ter uma mínima condição de atendimento ao cliente para poder enganá-lo, além é claro, do segundo grau completo.

Um desenvolvedor precisa estudar muito, fazer faculdade, cursos de especialização, ler livros técnicos, participar de fóruns, entre outras atividades. E o que ele vai encontrar na empresa quando for chamado? Uma “baia”, um computador e um gerente. Veja como ambos são parecidos.

Um fato que lembra esta situação ocorreu quando os perfuradores de cartão passaram a ser digitadores, porque era a demanda do mercado naquela época. Com o passar do tempo, os CPD’s começaram a distribuir o fluxo de serviço para àqueles que eram os responsáveis daquela área da empresa, logo, os digitadores sumiram! Para quem não sabe, digitador não apenas inseria dados no mainframe,  por muitas vezes ele programava, recebia uma pilha de papel com códigos para digitar, quando dava pau, tinha que chamar o verdadeiro programador que havia criado o código. E graças ao “desenvolvimento” do capitalismo o digitador foi extinto.

A questão é que as empresas poderão num futuro incerto, usar a documentação do sistema para criar este ambiente de rodízio e desqualificar o profissional de TI. Isto permitirá que sistemas sejam construídos com baixo custo de mão de obra.

Acha que isto é absurdo? Pois saiba que é o sonho de TODAS as empresas, construir software pra “ontem” e a baixo custo! Qualidade? Bem, no sistema capitalista isso pode ser contornado com uma boa dose de MARKETING. CMMI e MPS-BR? Bom, o importante são os lucros.

Fazer ou não a documentação do sistema poderá, no futuro, se transformar num atestado de óbito, que poderá decretar o fim da carreira de desenvolvedor como a conhecemos ou a sua continuidade.

Fica aqui este humilde post como reflexão para esta classe repleta de pessoas inteligentes e que são a verdadeira fonte do empreendedorismo e inovação.

Abraço!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.