In my application at the moment I have (as in so many other applications) an entity called Contact, which represents any person. At its most basic level this is
I would personally have a base class with all the basic things in it and a list of roles.
Each role has it's own properties and functionalities.
The advantages are two fold:
If you go with single inherritance going with inherritance will soon render you with classes like "ManagerProgrammer", "ProgrammerStockManager", "ProgrammerSupport"