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.
-
Desenvolvimento mais simples;
-
Interface uniforme.
-
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.
-
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.
-
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.