-
Notifications
You must be signed in to change notification settings - Fork 13
Planejamento
Espaço reservado para planejar e discutir novos desenvolvimentos.
Toda vaga busca uma ou mais pessoas para desempenhar uma ou mais atividades dentro da entidade. Cada atividade tem um propósito dentro de um contexto maior, seja ele um projeto, uma iniciativa, uma solução (que nome genérico poderíamos dar a isso??), algo que vai de alguma forma contribuir direta ou indiretamente para que a entidade cumpra sua missão, entregando algum produto, serviço, benefício ou valor à sociedade. E cada projeto ou iniciativa pode ter caráter pontual ou contínuo.
Um dos serviços oferecidos pelo Voluntários é o "Clipping de notícias". Ou seja, quem se interessa por voluntariado pode nos acompanhar pelas redes sociais e ter acesso a notícias sobre voluntariado. Essa iniciativa envolve hoje as seguintes atividades:
flowchart TD;
prospeccao("Prospecção de notícias");
triagem("Triagem");
resumo("Elaboração de resumo");
arte("Trabalho de arte/design");
revisao("Revisão final");
postagem("Agendamento & postagem");
prospeccao ----> triagem;
triagem ----> resumo;
resumo ----> arte;
resumo ----> revisao;
arte ----> revisao;
revisao ----> postagem
Para cada atividade podemos pensar nos seguintes atributos:
- Nome
- Descrição (o que deve ser feito)
- Instruções/Orientações
- Quantidade de pessoas necessárias
- Requisitos (habilidades?) necessários para desempenhar a atividade
- Outras características desejáveis para desempenhar a atividade
- Local de trabalho (remoto ou não)
- Áreas de trabalho normalmente relacionadas ao desempenho deste tipo de atividade
Neste contexto, o que seria uma "vaga"? A vaga nasceria de uma necessidade de ter mais pessoas desempenhando determinada atividade. Portanto não haveria um modelo (tabela) "vaga". Poderíamos ter sim um modelo "Processo seletivo", relacionado a uma ou mais atividades, sendo que cada atividade poderia gerar mais de um processo seletivo ao longo do tempo. Inclusive muitos atributos do processo seletivo poderiam ser tirados de atributos da atividade (requisitos, áreas de trabalho associadas, o que será feito, etc.). Um detalhe a ser observado aqui é que numa grande empresa pode-se imaginar um grande processo seletivo envolvendo várias vagas, mas aqui o processo seletivo está sendo pensado como algo "por vaga". Ou seja, se uma entidade quiser selecionar candidatos para várias vagas, deverá abrir um processo seletivo para cada uma.
flowchart TD;
Entidade -- 1-N --> Projeto;
Projeto -- 1-N --> Atividade;
Atividade -- 1-Na --> DependenciaEntreAtividades;
Atividade -- 1-Nb --> DependenciaEntreAtividades;
Atividade -- 1-N --> AreaDeTrabalhoDeAtividade;
AreaTrabalho -- 1-N --> AreaDeTrabalhoDeAtividade;
Atividade -- 0-N --> ProcessoSeletivo
ProcessoSeletivo -- 1-N --> EtapaPrevistaEmProcessoSeletivo
Atividade -- 1-N --> AlocacaoRecursoHumanoEmAtividade
Voluntario -- 1-N --> AlocacaoRecursoHumanoEmAtividade
ProcessoSeletivo -- 1-N --> ParticipacaoEmProcessoSeletivo
Voluntario -- 1-N --> ParticipacaoEmProcessoSeletivo
ParticipacaoEmProcessoSeletivo -- 1-N --> ParticipacaoEmEtapaDeProcessoSeletivo
EtapaPrevistaEmProcessoSeletivo -- 1-N --> ParticipacaoEmEtapaDeProcessoSeletivo
flowchart TD;
em_elaboracao("em elaboração");
aguardando_aprovacao("aguardando aprovação");
aguardando_publicacao("aguardando publicação");
aberto_a_inscricoes("aberto a inscrições");
aguardando_selecao("aguardando seleção");
inexistente -- novo --> em_elaboracao;
em_elaboracao -- submetido --> aguardando_aprovacao;
em_elaboracao ---> cancelado;
aguardando_aprovacao -- aprovado com data de início passada --> aberto_a_inscricoes;
aguardando_aprovacao -- aprovado com data de início futura --> aguardando_publicacao;
aguardando_aprovacao ---> cancelado;
aguardando_publicacao -- data de início passada --> aberto_a_inscricoes;
aguardando_publicacao ---> cancelado;
aberto_a_inscricoes -- data limite passada --> aguardando_selecao;
aberto_a_inscricoes ---> cancelado;
aguardando_selecao -- seleção realizada --> concluído;
aberto_a_inscricoes -- seleção realizada sem data limite --> concluído;
aguardando_selecao ---> cancelado;
Dúvida: faz sentido incluir o estado "Pausado" em processo seletivo?
Rascunhos de modelos:
class Iniciativa(models.Model):
id = models.AutoField(primary_key=True)
entidade = models.ForeignKey(Entidade, on_delete=models.CASCADE)
titulo = models.CharField(u'Título', max_length=200)
descricao = models.TextField(u'Descrição', null=True, blank=True)
inicio = models.DateField(u'Data estimada de início', null=True, blank=True)
fim = models.DateField(u'Data estimada de término', null=True, blank=True)
# incluir máquina de estados com django-fsm e django-fsm-log? Estados: em elaboração, em andamento, encerrada.
# incluir noção de área/departamento de entidade? (Ex: iniciativas da área de TI, comunicação, etc.) Pensar melhor nisso..
Quais seriam os modelos ou etapas seguintes à inscrição em processo seletivo? O que o sistema poderia oferecer para gerenciar a seleção de candidatos?
Existe API do Google para poder vincular formulário de seleção a um anúncio de vaga?
E agora ativando o "modo viagem":
E se algum dia quiserem usar uma ferramenta como essa mesclando trabalho voluntário com trabalho remunerado? Será que deveríamos associar a "alocação de recurso humano em atividade" com usuário ao invés de voluntário? Ou seria melhor manter assim, bastando que a pessoa remunerada cadastre um perfil de voluntário no sistema?
"Modo viagem turbo++":
E se algum dia quisermos possibilitar projetos envolvendo mais de uma entidade??
- Criar novo branch aqui no repositório principal para trabalhar nesse conjunto grande de alterações.
- Criar um novo item no menu lateral interno da entidade chamado "Iniciativas" (ou projetos), com página própria exibindo uma lista de iniciativas cadastradas e com possibilidade de cadastro, edição e remoção de iniciativas (procurar seguir mesmo estilo do menu "termos de adesão").
- Permitir o cadastramento de atividades em cada projeto. Pensar na melhor forma de fazer isso... (possibilidade de usar o mermaid, assim como o github, para ter uma visão de diagrama das atividades).
- Criar um novo item no menu lateral interno da entidade chamado "Processos seletivos", com página própria exibindo uma lista de processos seletivos cadastrados e com possibilidade de cadastro, edição e remoção de processos seletivos (procurar seguir mesmo estilo do menu "termos de adesão").
- Permitir o cadastramento de anúncios de vaga em cada processo seletivo. Pensar na melhor forma de fazer isso...
- Pensar na melhor forma de gerenciar as inscrições em processos seletivos.
- Criar nova página para buscar vagas no menu principal "Voluntários", permitindo que voluntários se inscrevam nelas.
- ...