Absolutely, the contract must be honoured. 100%. No two ways about it.
It's really simple, isn't it? You told him not to do it and he keeps doing it - I sense a deal breaker.
That being said, working for a start-up is no joke and the 'me time' goes out of the window, at times. When someone works for a company, it's a two way street - the developer is going to do his part for the company and make it great, but not at the cost of himself. He's also going to take care of himself.
I do not know why there's this new extremely infuriating trend of long hours in the valley and the software industry in general. A story is breaking out of the big 4 every other day in the valley. It's not OK to work for long hours. I don't know when it became the new normal.
Work is not the only thing in life, it's merely a part of it.
This would depend, really.
Is your team member slacking off when it comes to company work? If yes, then firing him could make sense. You say right now it doesn't have an impact, so why not wait until you know that it is having an impact?
Maybe your employee would realize when the work from your product piles up on him and slow down with his personal projects. I really think you should give things like these time.
Employee or Developer burnout is real, and if these side projects help your employee focus better on his work, I think there shouldn't be any problem.
This answer has received 4 appreciations.
I have a different perspective. Being a CTO of a startup if you are asking the developer to work for loooong hours say more than 11 hours a day then the developer cannot find non-office hours to work on side project. If the developer is good and values the work then most likely it is problem with the work culture. And as a CTO it becomes your responsibility to correct the work culture.
Most companies have a policy that any work done on premises and on company time are the property of the company. The exceptions to this are typically handled on a case-by-case basis in a contractual agreement.
If this person is valuable, it might be advisable to put out a company policy brief and discuss it with him as one final warning, advising him that from this point on, any work he does within the confines of your company's walls and on company time would be the intellectual property of your company. That might be enough for him to wise up and not work on his own stuff on company time.
If you don't feel it's worth it to keep this person around, then you've already warned him. It may be time for action.
I maybe a CTO in a very close futur (crossing fingers) and it was one of the questions an investor ask me: how I plan to manage this situation. Maybe to test my leadership and management skills.
My vision on this situation is if the developer is doing his job on time. No delay on the Gantt Chart/Scrum Rush, let him having some fun. Maybe he is testing a new framework that will have a good impact on your project. Also why don't you ask him about his side project, maybe this is something interesting and he maybe need help in advice or some co-workers with differents skills like marketing/sales to help him promote this application ? It maybe a second project for your company or just a good opportunity ? Who knows ?
But as every startup which consuming money (technology debt) and plan to reimburse it later, he have to focus on what he is paying for. So if the dev team is in a rush he have to focus on nothing else.
If you are a CTO you maybe have be a developer before or something relate. Just remember how hard it can be to focus 8hrs a day on the same algorithm. And how it's make you breath to work on something else, something new, just for an hour or two ? If you never be a developer I can tell you that's relaxing !
What does his contract and the employee handbook say? If CTO includes being head of engineering at your small company, then having that set out in the contracts and handbook is part of your job.
The usual structure in contracts is that any work done with company resources, during work hours at the company, or directly in competition with the company by an employee belongs to the company unless otherwise agreed in writing by the employee and the company beforehand. If you don't have those terms, then the work belongs to you only if it is within the scope of his employment, but you need to talk to a lawyer to find out exactly how that is defined.
So that's the legal side. On the practical side, look at his work and your environment. Does his work consist of an hour of effort followed by four hours of waiting for a huge job to run, followed by another hour of effort? If so, letting him work on side projects could be a reasonable accommodation. One of my professors describes not being allowed to study during an internship while jobs were running (back when jobs were submitted to mainframes), so he sharpened pencils down to nubs to look busy.
If you've ended up with a culture and work schedule where people are there for long hours, then allowing side projects as a stopgap until you fix your environment might be reasonable. I mention this because long hours based on machismo, not reality, is a common dysfunction at startups. Remember: most engineers have three to five hours of sustainable, hard mental work a day.
On the other hand, if you have someone who isn't constrained by waiting for a resource for long periods of time, and who is working a sensible day of 9AM to 4PM or equivalent, then you need to sit down and find out why he is doing this. If it's at the expense of work for the company, then fire him. He isn't fulfilling his fiduciary responsibility to the company. But really try to understand. As an executive, you will be the last to know what's going on. He may be doing this because he's entirely blocked, or he's burned out, or you are unaware of social problems in the company and he's planning his exit, or he doesn't regard you as someone he has to listen to for some reason, maybe because he thinks you're incompetent, or he has a different understanding of the politics and power at the company than you do.
Make it official. Grant him/her a number of hours (of course on his/her own expense) per day. Developers that have projects of their own are usually the best ones.
An alternative is to hire him/her as a freelancer. Will cost a bit more, but all invoiced hours will be truly productive. I work in a construction like that myself. Doing the same thing each and every day the whole day is just to much for me. Diversity in my work keeps me productive.
Working hours can be checked, output quality is much harder to check.
Having said this all, workers should be honest. Working on private project in company hours without agreement on this is unacceptable. Trust is a requirement for any work relationship.
J. de Hooge
I feel, with a startup, it's important that you should always concentrate on making it bigger, better and more efficient. I consider any "free time" as something extremely valuable, since I can now DRY things up or play in a sandbox and possibly propose ideas that may improve and impress. Focus is key, and you never want to break it.
Currently, with my full-time job, I find myself waiting for something to be assigned to me way too often. I've been on Stage 2 of designing and developing a product while Stage 1 is slowly working its way up to staging. Honestly, it could be months.
Also, they are not a startup, and some things seem too "sacred" for me to touch. So, there is no possibility of making the current workload lighter for other team members. However, I always look at this as an opportunity to create components that can be easily integrated - plus - they can be pushed to a second repo as skeletons, to be used within my own projects.
Maybe you can discuss their project with them, show some interest, and try to plan something that will benefit both of you, such as creating templates or components. I find this a great way of taking a possible lemon and turning it into lemonade. ;)
How related to work are they? Is there a chance that he may be viewing them as related to/part of work?
For example, one technique I've used before is say I need to be super proficient with the Windows API for work. I may start a side project or two using Windows API functions to speed up my learning curve in order to increase work performance.
Is it one of those or is this person just doing something completely unrelated and which won't benefit at all? How is his/her performance otherwise? I think it goes without saying but if they are a star performer and they have nothing to do, than I don't think that's a huge deal either. But, if they should be doing x work task and they are neglecting to do it because they are instead working on side project y, than that is an issue.
Someone else mentioned hours. That's the other thing. For example, if I were working 10-12 hr days on a consistent basis, then yes, I would expect to get some personal stuff done while at the office too because the workload/stress is obviously up. If the person is putting out serious work, then I say don't worry about a few hrs of side project time here and there.
Finally, even if you do decide this person is up to no good, talk to them. People often forget that you can talk to a person well... like a person. Don't just pull them in the office and fire them (unless you view them as useless in general, but then that also begs the question why are you even on here asking), say something like this: "I'm concerned because I've asked you to not work on side projects at work because you need to be doing xyz but xyz is not getting done and you are working on side projects anyway. This tells me that you are not interested with and/or satisfied with your work. Is there anything that needs to be changed to reignite your interest in working here?"
Observe how they reply to this question, you may be surprised. However, if they're just a jerk don't let them walk over you either.
If he was selling his hours to you, you bought them, and he is taking the time he has sold to you and doing something else with it is it any different than if he left the building for the duration he was working on his side project?
If an employee you were paying was absent for the same amount of time he was working on other stuff what would your decision be?