Sistema e a sua simplicidade | André Buzzo
contato@andrebuzzo.com.br | (11) 9-8551-3500 | facebook | skype:andrebuzzowebdesign

Sistema e a sua simplicidade

Publicado na categoria Artigos com 3.741 visualizações e 8 comentários

A viagem que normalmente a turma faz quando se depara com a construção de um sistema

Aos desavisados, um toque: eu posso falar redundâncias e coisas que parecerão sem sentido, mas que no final podem ser usados, porque não, como mau exemplo de programação.

Mas, como eu tive que aprender na raça e com muita pesquisa, eis me aqui tratando de um assunto que eu acho de extrema importância, e que pretendo dividir em uns alguns tópicos:

  1. Você precisa ser questionador/imaginativo e pensar pelo cliente;
  2. Levantar os requisitos do sistema;
  3. Programação estruturada em PHP;
  4. Banco de dados;
  5. Não, não é algo simples.

E aí a coisa começa …

Você precisa ser questionador/imaginativo e pensar pelo cliente

Sistema e a sua simplicidade

Seu cliente, em alguma hora de sua vida profissional irá formar a seguinte frase para que você trema na base: “Preciso de um sistema, mas é um sistema simples” …

E nunca nada é tão simples tão como se parece.

Primeiramente você precisa imaginar o que o seu cliente quer. Vou usar como exemplo o pedido de um carinha que está se formando num curso de Técnico de Informática e que me inspirou a escrita desse artigo.

Ele me disse precisar dum sistema simples onde os alunos pudessem ter acesso às notas, envio de e-mails e download de materiais didáticos.

Aí você precisa utilizar sua imaginação e iniciar o processo de “lambança cerebral” dentro de sua cabeça já um tanto perturbada:

“Se o aluno vai acessar algumas informações, quem vai disponibilizar as mesmas? Hum … precisarei criar um setor administrativo … “

“O administrador do sistema executará quais operações? O que ele vai subir no site? Arquivos de quais tipos? Ele poderá bloquear o acesso de determinado usuário ao sistema? Quem vai me fornecer lista de alunos? São muitos? Tenho uma rotina pronta para inserir os dados no banco?”

“Os alunos só poderão acessar suas informações? O que eu vou usar para integrar tal limitação? O aluno vai enviar um e-mail para alguém e isso será feito através do sistema mesmo ou vou disponibilizar apenas um e-mail para contato?”

“Onde tá hospedado o site? Dá suporte a linguagem que eu trabalho?”

“Quem administrará o sistema tem conhecimento na utilização de computador e sistemas via web”?

E aí você inicia, meio sem querer, o

Levantamento de Requisitos do Sistema

Sistema e a sua simplicidade

Essa é uma das partes mais importantes de um projeto. Nele, você para pensar nas tarefas que o sistema deve efetuar. Eles são divididos em dois grupos: Os Requisitos Funcionais e os Requisitos Não Funcionais.

De grosso modo, os Requisitos Funcionais descrevem o que o sistema DEVE FAZER. Os Requisitos Não Funcionais, normalmente, servem para especificar controles de qualidade, robustez, se ele vai ou não cumprir com as tarefas para as quais está sendo desenvolvido. Para mais informações, veja essa página: http://maozinhadaweb.blogspot.com.br/2007/05/anlise-de-requisitos-funcionais-x-no.html

Então, levantando as questões acima pensadas, a gente já consegue, também de modo grosseiro, pensar que, no setor administrativo do sistema, o responsável terá que:

  • Cadastrar/Alterar/Excluir usuários
  • Cadastrar/Alterar/Excluir documentos
  • Cadastrar/Alterar/Excluir alunos
  • Pesquisar usuários/documentos/alunos
  • Cadastrar/Alterar/Excluir notícias

E pensemos ainda que, para realizar as tarefas do primeiro item, precisaríamos dispor (os mais entendidos que me desculpem se serei redundante!) de no mínimo, 6 scripts: um formulário para cadastrar/alterar/excluir os usuários, e mais outros três para efetuar tais ações. Ilustrando, seria algo como :

  • cadastraUsuarios.php;
  • efetuaCadastroUsuarios.php;
  • alteraUsuarios.php;
  • efetuaAlteracaoUsuarios.php;
  • excluiUsuarios.php;
  • efetuaExclusaoUsuarios.php

Então, se basicamente fizermos as contas mais bestas possíveis, teremos por baixo 30 scripts APENAS NO SETOR ADMINISTRATIVO do sistema; e olhe que eu não contei os scripts para realizar o login nessa área, que dependendo da estrutura proposta, pode ser utilizado tanto para logar alunos quando administradores …

Programação estruturada em PHP

Sistema e a sua simplicidade

Esse foi outro ponto abordado pelo carinha. Precisaria ser estruturada (ainda bem, já que não mexo com POO – Programação Orientada a Objetos), pois ele alega que o curso dele foi ensinado o estruturado e, pela “fraqueza” do conteúdo exposto em aulas, deverá ser algo que possa “passar como” feito pelo mesmo.

Então, precisaria ser simples. E como ser simples sem prejudicar a segurança da informação? Como eu posso oferecer um sistema para o carinha que não tenha o mínimo de segurança de banco de dados, onde qualquer um pode jogar um Injection no MySql e acessar todos os dados?

A criptografia fica onde? Ah tá … já sei! Fica com quem tiver preocupação com o negócio e vai buscar conhecimento em sites e livros por aí, já que a faculdade não dá o peixe, mas ensina o peão a pescar …

Então, onde entra meu conhecimento sobre a linguagem nesse trabalho. Aqui, eu teria que fazer “algo meia boca” pois com muita sofisticação, o cara será reprovado pois os professores sabem que ensinar o cara a somar, mas não a dividir e multiplicar!

Se ele apresentar ainda subtração, aí que vai complicar tudo!

Mas voltando ao seu cliente e a simplicidade do sistema: como você vai tratar as informações que serão cadastradas no site? Qualquer um vai poder cadastrar o que bem entender ou você dará limitações a cada usuário?

Pense num usuário do sistema como um filho que sua mãe criou: você pode fazer tudo o quer? Se sim, você sabe muito bem (ou deveria saber) que isso não é legal. Você precisa de limites, assim como o usuário precisa.

Também, não podemos morar numa casa extremamente religiosa que não nos permita fazer nada … tem que haver um balanço, e quem vai informar isso ao cliente é você. E você vai bater o pé com ele, pois o sistema saiu de seu intelecto e ninguém mais correto para dizer “isso dá e isso não dá!” do que você está desenvolvendo.

Mas diga não acompanhando de um embasamento; você é inteligente o suficiente para fazê-lo.

Banco de dados

Sistema e a sua simplicidade

E finalmente, chegamos aos Bancos de Dados que o sistema utilizará.

Não há muita coisa que eu possa “falar” aqui, mas basicamente, você precisa se perguntar: “sei trabalhar com relacionamento de tabelas? E sei otimizar buscas e prever o que o sistema necessitará retornar caso haja interação? As tabelas criadas atendem a todos os Requisitos do Sistema elencados? No decorrer do desenvolvimento, eu vou ter voltar e refazer todo o sistema porque eu ESQUECI de algo?”

O cliente concordou com tudo o que você pensou, mas ele nunca, acredite, nunca sabe o que vai precisar … aí, chega na metade do processo de desenvolvimento, ele marca uma reunião e diz: “Ô meu amigo, esqueci que o meu filho vai trabalhar no sistema, e ele não pode excluir nada … e só vai postar as notícias, e não deve ter acesso as notas dos alunos …”

Aí então você volta lá para o item Levantamento de Quesitos do Sistema, e inicia um novo processo de cadastro de usuários, no qual o seu script para LOGIN tem que ser novamente adaptado porque agora você tem HIERARQUIA DE ACESSO e o Administrador tem acesso total sobre o sistema, enquanto o filho tem apenas parte dele…

E agora, temos que adaptar códigos, estrutura, funcionalidades, bancos de dados …

E, terminamos com a pergunta que já é a resposta:

Não é algo simples?

Não, não é …

Voltar à página anterior!

  • Alison

    Estou conhecendo seu site agora e gostei mto do visual limpo e de seus artigos.
    Já estou te add nos meus favoritos… Vlw!!!

    • Obrigado Alison!

      Essa é a intenção do site: promover a informação!

      Abraços e seja sempre bem-vindo!

  • Jacson Leite

    Exato André. Acredito que quem trabalha na área TI, independente de sua especialidade, sempre será um consultor, assim como em outras áreas profissionais. Ser um “fazedor de sites” é mole. Fazer um site que venda a imagem e os produtos e serviços da empresa não é para aventureiro.

  • Jacson Leite

    Nada é tão complicado que não possa se complicar ainda mais.

    Se você falar ao cliente que o ‘sisteminha’ que ele quer tem, teoricamente, é claro, 6 páginas, aí ele achará que R$300,00 paga.

    Um dos problemas de pensar como o cliente é que muitas vezes nos deparamos com clientes que não sabem o querem. Aí deve entrar a parte empreendedora do desenvolvedor estudar a estrutura e montar algo como se fosse um plano de negócios – algo que toda empresa deve por obrigação ter – para ajudar seu cliente a descobrir o que ele quer.

    • Fala Jacson.

      Por isso eu sempre insisto em dizer que somos mais “consultores” do que “fazedores de sites” … e concordo contigo: tem cliente que às vezes, ele mesmo não sabe bem o que precisa …

      Abraços!

  • Adorei o texto!
    A a propósito, você escreve bem pra caramba.

    • Fala Lucas!

      Obrigado pelas palavras meu amigo!

      Abraços!