Versão 4.x

Evolução

A principal novidade desta versão é a externalização da autenticação do sistema para um produto especializado, trazendo muito mais segurança, bem como vários novos benefícios possíveis:

  • Módulos independentes do mesmo sistema com uma mesma autenticação;

  • Sistema independentes com a mesma autenticação;

  • Provedores de autenticação (google, facebook, twitter, etc);

  • Autenticação em dois fatores;

  • Controle granular de permissões;

  • Mais grupos e perfis.

Com o advento do módulo de autenticação e autorização, também foi possível iniciarmos a separação dos módulos da interface. Originalmente toda a interface era um único programa, dificultando iniciativas diferenciadas para objetivos distintos (exemplo, o módulo de alunos). Para nos preparamos para essa possibilidade o sistema atual de interface que era único já começou a ser quebrado em pedações menores, baseados nos principais perfis do sistema: gestor, professor e administrador.

Podemos ver melhor essas diferenças em Arquitetura.

Progresso

Estamos em fase final da disponibilização da nova versão, mas temos alguns pontos de atenção:

  • Ter todas as funcionalidade atuais, com o mínimo de perdas possível, tendendo a 0;

  • Evitar novas funcionalidades, já que elas dificultam inclusive a homologação da nova versão;

  • Maior foco em testes;

  • Documentar para o usuários mudanças no fluxo em relação a versão 3, por exemplo: login, recuperar senha, convite, etc

Recursos ainda em processo de migração e testes:

  • Finalização do módulo de professores, que já está publicado mais ainda possui alguns problemas;

  • Recursos mais interessantes para o hot site de entrada (opcional);

  • Melhor identificação de cada módulo de interface;

  • Mais automação/facilidade para mudanças de módulos (um professor que entrou pelo link de gestão por exemplo);

  • Reavaliação do recurso de convites, este recurso original precisa ser adaptado a nova realidade;

  • Suporte para idiomas no módulo de professor;

  • Testes de todas as rotinas do sistema, com foco em ter as mesmas funcionalidades da versão 3 em produção.

Módulos de interface

Na versão 3.x, todos os módulos faziam parte de um mesmo programa, com várias vantagens e desvantagens.

Vantagens:
  • Desenvolvimento mais simples;

  • Interface uniforme.

Desvantagens:
  • Interface uniforme, dificultando situações em que uma interface diferenciada é necessária, exemplo: professor e aluno;

  • Controles mais rígidos e não fluídos de mudanças de perfil, que dificultam a evolução e manutenção do sistema;

  • Maior tempo de carga, já que o sistema em si fica maior.

Com a nova versão, e a separação dos módulos de interface temos novas vantagens e desvantagens.

Vantagens:
  • Interface pode variar facilmente por módulo;

  • Rotinas podem ser reaproveitadas por módulo, exemplo: turmas e alunos;

  • Criação de novos módulos extremamente facilitadas, já que todo o arcabouço necessário já está testado e em uso;

  • Sistemas menores, já que possuem um foco mais definido, com isso menor tempo de carga e otimizações melhores;

  • Permissões podem ser mais granulares sem aumento no custo de manutenção.

Desvantagens:
  • Custo inicial de preparação muito maior que um módulo único (etapa quase vencida);

  • Equipe de desenvolvimento melhor capacitada a lhe dar com vários módulos, ou equipes separadas;

  • Controle especial em cima de módulos compartilhados em vários módulos, exemplo: rotinas de confirmação, loading, impressão, etc…​

Débito técnico

Atualmente no FUJI, temos um sistema em constante crescimento, o que acaba gerando situações complexas que exigem algum tive de reorganização de tempos em tempos. Essa separação de módulos foi feita meio que em conjunto com o sistema de permissões já pensando no novo módulo de alunos, mas existem diversas outras reorganizações que precisam ser feitas para permitir uma evolução mais sadia do FUJI a longo prazo.

Por exemplo apesar de termos uma cobertura de testes no projeto, ela nem chega a 50%, o que torno o sistema mais inseguro às mudanças.

Além disso, temos padrões visuais novos nas telas novas, que não foram aplicadas em telas mais antigas.

Também é necessário implantar um sistema de coleta de logs, que permita um melhor acompanhamento dos erros e avaliação do comportamento dos usuários.