-1

I'm a software developer and currently working for a small scale-up company that builds hardware products and delivers them to customers with companion software.

I'm hired to expand the companion software since it's build mainly with .Net and I have a background in this. (I must add that I'm actually a freelancer but my assignment evolved in me working long term fulltime for this sole client so the way I'm working could be compared to an employee really.)

There is no analyst, product owner or anything that could provide any layer between me and the founder of the company...

He and one of his employees give me tasks to complete.

In the beginning these were clear programming tasks for the companion software but now they have transformed in all sorts of stuff...


example 1

I get asked to build software solutions for use cases that have not been described and are unsure that will work...

For example: The hardware they build is controlled manually but I'm asked to have it work automatically based on camera's. (no details given, I have to figure it all out)

I end up not only programming but also doing quite some research and actually working as an inventor of sorts..


example 2

I'm automating a big part of their marketing flow with their internal office software.


example 3

since I'm the only IT'er here.. any IT problem lands with me... you can't print.. I'm solving it...


example 4

I have to deliver support on problems they have with clients while I have barely any idea how their hardware product functions...


meetings are unstructured and there are never any items on the agenda... things get made up on the fly (really strange features that break standards) and I have to make sure they get done... Every single time, they manage to surprise me with the things they want in such a way that I don't know what to say...

Because of all this:

  • I can't finish things and am jumping around between whatever is needed at that time.

  • I cannot deliver the quality I'm used to because of the broad responsibilities.

  • I feel like I'm never prepared for a conversation with them and no longer have any new input because I have too much on my plate

Next to all the things above, I've been noticing things on the workfloor...

  • the founder recently started to put employees on their place when they start early at work causing one of them to quit but he still keeps doing the same... But he tells them I'm an exception because I'm self employed...

  • One of the employees was complaining about the founder... the founder overheard and I saw him closing in to spy on the conversation

  • People are obviously afraid of the founder.... apparantly he handles them harshly in private if they do not comply. one of their employees recently told me he was yelled at untill he cried.

  • last year one of his most prized employees quit and went on to work for the competition. The founder immediately took legal actions. Perhaps that's not very strange but The founder tends to become emotional whenever someone quits. Only last week he came to complain to me that his employees needed to be pet on their heads regularly after someone quit because of non flexible working hours.

  • ...

I can't help but to think what will happen if another software developer starts to work here and starts to complain about my work...

The combination of out of scope work and company drama makes me want to leave....

Is this a valid reason? If yes, how to handle this?

  • 2
    Yes, it's a valid reason. Trust your gut. In either case, you don't need to explain anything when you leave. Just keep your future client/employer secret (don't tell anyone or the founder will find out by bullying them). And carefully read your contract. You don't want to get sued as soon as you start at a new company. – Stephan Branczyk Jan 22 at 11:13
1

Some words:

  • estimating;
  • planning;
  • prioritizing;
  • tracking;
  • reporting;

It is quite obvious that your manager does not understand very well the stress he lays on you. So you can handle it by doing it yourself.

Maintain a clear list of things you have to do. For each item, make a break-down structure (WBS) if it more complex. For each item and each element in the WBS estimate the effort and other resources needed (including cameras, recorders, cables, racks...).

Then ask your boss to provide:

  • the deadline for each activity;
  • the priority for each activity;

When they do not fit in the amount of time given, ask him again to revise the deadlines and the priorities.

In this way, you have a good chance to make him understand that he needs to hire new people. You will do "inventing", the other guys will plug back loose Ethernet cables.

Additionally, you may want to normalize the work performed. Examples:

  • setting up a new computer;
  • reinstalling all software on a computer;
  • installing a printer driver;
  • ...
  • performing analysis on customer complaints;
  • debugging;
  • "inventing";
  • implementing new features (sub-groups probably exist);

In this way, the boss will know beforehand what to expect when he asks something from you.

Do not forget that you spend time traveling between your desk and the desk of the colleague who needs support. Include that into the estimation / normalizing. If you need to travel across several floors and wait for elevators, the traveling might takes minutes - sometimes comparable to the time needed to actually do the work.


The combination of out of scope work and company drama makes me want to leave....

Leaving might be a good solution. But do not do that just because the founder is just (temporarily) lost in his job. Before you give up and quit, work with him as I described above. You might be surprised to find a very nice person behind the mask that you saw until now.

Please remember that "founder" does not mean empathic, experienced manager, leader, or any other quality. "Founder" means "somebody who had an idea and started a company". He might actually need a lot of learning to become a good leader / manager. He might not even know what and how much he does not know. Providing kind and informative feedback can work miracles.

| improve this answer | |
1

What you've described is every small company I've ever worked for. Sure they didn't all have all of those problems.

As I grew professionally, I learnt not to see problems and annoyances, but opportunities and was able to apply the maxim "if you touch something, make it better than it was".

Now I'm working with mainly legacy stuff, fixing tedious problems and your place sounds like a dream job.

There is no analyst, product owner or anything that could provide any layer between me and the founder of the company

So you have to wear many hats; that's fairly normal.

I get asked to build software solutions for use cases that have not been described and are unsure that will work

Again, very common. People don't know what they want and can't describe it until you deliver something...and then they know they don't want that.

I end up not only programming but also doing quite some research and actually working as an inventor of sorts..

Coool.

meetings are unstructured and there are never any items on the agenda... things get made up on the fly

OK so you can fix this. Don't attend meetings without an agenda. Make sure you tell them in advance. Take notes ("minutes") and email them afterwards, together with a list of action points. As its just you, keep it to a small number.

... But he tells them I'm an exception because I'm self employed... Well, you are.

...The founder tends to become emotional whenever someone quits

That's common.People become attached to their dream and cannot understand why their employees aren't (no investment/risk). Your founder is probably under an enormous amount of pressure and is likely aware of many of the issues you describe, but is unable to fix them. (Of course s/he may just be an ass hat, but I would give them the benefit of the doubt, as I only have your post to go on). The founder needs to hire professional management and stick to product vision / raising funds / overseeing the company etc, although I suspect any such hire will also have several hats. Again....think of the opportunity.

@Virolino's list is a really good summary of what you need to start doing.

Action Point: Go and have a look among the 1000+ articles written by Joel Spolsky ("The Founder" here). What you're looking for is a way to explain the issues to your founder and how to fix them. Don't just turn up with a bunch of observed problems. If you have no solution, say "still thinking about it". Present them as "costs", e.g. the cost of task switching (Here's a starter for you Human Task Switching Considered harmful)

Summary: I think you have a really great job, but like any it's not without problems. Roll up your sleeves and fix them. Get Management onboard with this. You can change your company, and in the years ahead you'll hopefully have a great life.

| improve this answer | |
0

Any reason is a valid reason is it's something you care about. However it doesn't mean you can't improve the situation.

What you need to reflect upon is:

  • Did I try to improve the situation and how?
  • Am I satisfied with the actions that have been put in place to improve the situation or do I foresee any improvement in the near future?
  • Why do I care about those point that much? Should I really care that much about those or should I take a step back.

Once you have taken a step back from the situation to check why you feel that way you'll have a better understanding if you should leave or not.

| improve this answer | |
0

I must add that I'm actually a freelancer but my assignment evolved in me working long term fulltime for this sole client so the way I'm working could be compared to an employee really.

You are a freelancer. You should have a contract. The terms of your contract should specify the length of the contract, deliverables, how to extend it, or how to provide notice.

Review the contract, and make sure that you have met all the provisions of terminating the contract and then do so.

Of course you need to start looking for another customer, or find an employer. If you can complete the search before ending the contract, that makes it easier for you financially.

The combination of out of scope work and company drama makes me want to leave....

Is this a valid reason? If yes, how to handle this?

Freelancers fire clients all the time. They decide that the pain and suffering have to be factored in, and they decide that there are either more lucrative or less stressful options.

How to do so? Review procedure, search for customers, provide the specified notice, and then leave. Don't forget to collect your final payment.

| improve this answer | |
0

This sound fairly typical of a startup company and particularly a startup tech company founded by someone who has no idea how technology works. As a result, your problems can more or less be solved by educating the founder ("CEO"), providing he is willing to learn.


Regarding asking you for features but described very vaguely: Explain that he (the CEO) probably has a picture in his head of what he wants the feature to do, but he needs to convey that picture to you, and until you understand it then you can't build it. There's a term in common parlance, "ELI5", that is useful here. It means "Explain it to me Like I'm 5 years old". You need to know in great detail what it is you are building so that you don't have surprises down the road. If the project that is being requested is big enough, you may want to ask for a "DevSpec", or "Development Specification", which is basically a document written by the project manager (in this case the CEO) for the developer (in this case you) to explain the project in detail, and to also have a documentation log of what needs to be built, so that 3 months into the project you don't forget what it was you were doing, and so that random asks don't get added to the project and add scope creep.


Regarding asking you for features you don't know how to build: Learning is always part of software development, in any job at any time. Simply "I don't know how to do this" is not a good reason for not doing it. On the other hand, you also have to be realistic. If you don't know how to do something, say so: "CEO, I'd love to implement this feature and it sounds like a great idea, but I don't have the expertise to do it. It will take me X time to learn the required skills I will need to begin working on this (ALWAYS overestimate this, because you will probably be wrong if you try to give a realistic estimate), and then it will take an additional Y time to implement. Is that OK with you?". The CEO will probably try to negotiate you down, like "Why can't you learn this faster?" or "it's probably not as hard as you think", or something like that. The reason is, he doesn't know any better; to him a computer is a magic box that does magic things, and you're a wizard with a spellbook who does things with the magic box. To him, learning any skill is "just flip to page 327 in the spellbook and there's the answer", but that's not actually how it works and he needs to understand that and you need to explain it to him. If he tries to push back on deadlines and estimates with you, explain to him that this is how long it will take; maybe you can do it faster but that will be a good surprise and not an expected thing. Then he can either accept it and you can work on your schedule, or he can reject it and forget the project.


Regarding reprioritizing your work: Whenever you get called for an "urgent task", if you are currently busy, ask the priority of the task and explain that you can't multitask. For example, if you have to fix the printer, explain that will take an hour (or whatever) and that's time taken out of your current project. If you have to take a support call, explain that's time taken out of your project. If you feel you need to, you can make notes of the times, dates, and lengths of these disturbances, so when the project is inevitably delayed, you can point to these disturbances and say that you are owed this time on your deadline due to these disturbances. Another thing to be aware of is to ask "let me finish this first". Don't get up in the middle of writing a feature to fix the printer; the printer can wait. Finish your current task and get to a point where you can stop and fix the printer; you will cause many more problems if you just get up mid-line-of-code.


Regarding people leaving: You are working at a startup, and it sounds like your CEO doesn't understand how startups work. People go to startups so they don't have to be in the corporate world. The corporate world provides job security and stability at the cost of elasticity and increased bureaucracy. Startups provide less security and stability but in exchange you get a lot of perks like more flex hours, work from home, easier time taking vacation, and so on. It sounds like your CEO wants to build a startup but run it like a corporation, and that's the worst of both worlds. You may want to bring this to his attention that this is causing attrition among his employees, but if you do be careful not to phrase it in such a way that he thinks you are thinking of leaving as well. Make sure to make the conversation about the health of the company and not your personal situation.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .