Jacek Medrzycki
2007-05-09 11:59:32 UTC
We are going to implement generic recrutiment system (as part of HR) and
we want to discuss one issue we have found.
There is a Position (in a company) which can be occupied or vacant (it
can also be closed when a company decides it's no longer useful, but
that's not important now).
The Position contains Position History objects (like Person contains
Career objects). There is a default_position_history (like
default_career) object which represents the current state of this
Position (the Person's Career object is linked to this
position_history). Other Position History objects are for historical
reasons.
Now - when a position is going to be vacant, the recruitment process
begins. However, the Position is not vacant at the moment of the
recruitment process, becouse the current employee is still working - he
would stop working in a few weeks or months. So we need a way to
indicate in the system the fact that the Position is occupied until -
say -31st of July and we are looking for a new employee which starts to
work since the 1 of august.
The idea is to create a new Position History object with magical id:
pending_position_history, which represents the future state of the
Position, like default_position_history represents the current state of
it. We can then conduct recruitment process for that Position, linking
Position Opportunities to the pending_position_history. When recuritment
process ends and a future employee is selected, his Career is linked to
that pending_position_history. We can than easily distinguish between
Person A, who is current employee for the Position and Person B who is
the future employe for the same Position and (as Postion History has -
among others - start and stop date) when one stops to work and the
second starts.
There should also exist a mechanism - similar to Career_shiftDefault -
which pushes current default_position_history to archive and renames
pending_position_history to default_position_history, so we can easily
switch it when a given date arrives.
Is our approach correct?
Regards
Jacek
we want to discuss one issue we have found.
There is a Position (in a company) which can be occupied or vacant (it
can also be closed when a company decides it's no longer useful, but
that's not important now).
The Position contains Position History objects (like Person contains
Career objects). There is a default_position_history (like
default_career) object which represents the current state of this
Position (the Person's Career object is linked to this
position_history). Other Position History objects are for historical
reasons.
Now - when a position is going to be vacant, the recruitment process
begins. However, the Position is not vacant at the moment of the
recruitment process, becouse the current employee is still working - he
would stop working in a few weeks or months. So we need a way to
indicate in the system the fact that the Position is occupied until -
say -31st of July and we are looking for a new employee which starts to
work since the 1 of august.
The idea is to create a new Position History object with magical id:
pending_position_history, which represents the future state of the
Position, like default_position_history represents the current state of
it. We can then conduct recruitment process for that Position, linking
Position Opportunities to the pending_position_history. When recuritment
process ends and a future employee is selected, his Career is linked to
that pending_position_history. We can than easily distinguish between
Person A, who is current employee for the Position and Person B who is
the future employe for the same Position and (as Postion History has -
among others - start and stop date) when one stops to work and the
second starts.
There should also exist a mechanism - similar to Career_shiftDefault -
which pushes current default_position_history to archive and renames
pending_position_history to default_position_history, so we can easily
switch it when a given date arrives.
Is our approach correct?
Regards
Jacek