5

I'm currently a student (soon have my MSc in Computer Science) in Germany. In parallel I work in a small company which does NOT sell software products. But they decided to improve their internal process automation with some small software products (simple interconnected Excel macros, which I find not that professional, but that's another story).

They once hired me in order to help development of these macros, but at some point we decided to start working on a huge software system which should progressively replace the current Excel system. (It was my own idea and, back then being a beginner student, I thought "why don't we do it correctly?") Later I realized that this step was going to be huge. Too huge for me as a student, not being technically mentored by a senior software developer or somebody even near that kind of role.

We continued developing the software (they hired two more students to speed it up, which partly worked... but they now left and I'm the only one again). Now we're at a point where the software product is starting to be used. I'm very proud of what I did so far, especially considering that this piece of software is going to be used in the automation of the most important tasks of the company.

I guess my concerns are also relevant to others, as software development / IT becomes more and more important in every kinds of companies. And not all companies like the way to out-source development / buy products which they then need to adjust to their needs. I think it is then a common problem that such companies need developers which are then feeling in a "foreign" environment without having a technical supervisor.

I'm now concerned about my future. I have basically two options what to do after I graduate:

  • Stay in the company. Reasons:

    • I'm feeling very comfortable right now. I'm feeling home in the company, and taken very seriously by my boss. He trusts me a lot and I think this is worth a lot.

    • They really need me (which should be a minor argument for me, right?) as I developed a product which is only partly maintainable by others. Yes we documented, yes we cared about internal structure of the software, but it still is complex and they currently have nobody else working on the software.

    • I'm proud of our / my product and I guess I'd love to maintain it in the future and improve it.

  • Give the project in someone other hands and leave the company; looking for a job which fits better. Reasons:

    • I'm not being technically mentored by a software developer (or similar). I can only guess how to do things the correct way and hope it will turn out great (enough). I think regularly taking place in further trainings can help, but not solve this issue.

    • The project might very well be too big for me as a junior software developer (yet to-be, to be precise). The software is now starting to be used but we plan to gradually improve its features to automate more subprocesses in our company.

    • The company might pay me less than I can be payed in average in other software development companies. While money is not my major argument right now, it still "bothers" be a bit.

    • Even if I feel comfortable for, let's say, another 5 years, will it be hard to switch the company then? I have gained experience in software development, but not in a software development company. Will I feel misplaced in a real software development company then? Will I even find a job, since I am missing some important experience? (*)

Can the arguments for staying in the company justify my concerns?

The current situation is that my boss offered me a full time job after studying. I told him that I'm glad but I also told him about my concerns, which he totally understand. I promised him that in the case that I'll leave, I will not do that earlier than incorporation of (a) future developer(s) is complete.


(*) This is my main concern. My dad experienced a very similar situation. He studied engineering and after graduating worked in a software development company as a product consulter. Some years later the company went broke and he had a hard time finding a job either in the engineering or in the software sector, as he was neither experienced in engineering nor studied computer science. He "almost" fit most jobs, and I'm now concerned that I also "almost" fit future jobs since I might have not as much experience than they expect from me.

  • 1
    Have you thought about using that experience to create your own product that could potentially be used by other companies like that? I imagine there would be others in a similar situation. – user1220 Jul 24 '14 at 13:28
  • @user1220 I don't like the idea, yet I thought about it. It would not be fair, and reusing most of the code would even be illegal. (Most contracts in Germany have a rule which forbid to reuse products or parts of them in future jobs. Reusing experience of course doesn't fall into that rule, but I guess you're mainly talking about (some parts of) the product.) – leemes Jul 24 '14 at 13:37
  • fair enough, I just thought since this is not a software company, you could sell the idea to them that you create such company and have them as your main client. I guess things are different in Germany as you pointed out. Best of luck! – user1220 Jul 24 '14 at 13:40
  • 2
    Once it's finished, is there more work? Can they afford a full time software developer who only supports existing software? I'd say finish it, document it, and move on -- offer yourself up as a consultant should it ever break. Otherwise I'm with @user1220 -- I understand that they'd want to get away from off-the-shelf software, but if you offered customization, that's probably a different situation, one in which they could benefit financially by not having to pay someone's salary to support it. – bdimag Jul 24 '14 at 15:10
  • 2
    "They hired 2 more students to speed it up." That pretty much explains everything. Suggested reading: Mythical Man-Month. – user8365 Jul 24 '14 at 16:11
5

This small company seems, to me, like a wonderful opportunity for you to have an enormous effect on an industry, and to have an excellent career.

Yes, you could join some dotcom outfit. But this is your project. Don't walk away from it just in search of colleagues and mentors.

When my colleagues and I hired people, we often said -- only partly in jest -- "let's hire somebody straight from university because they will be too dumb to know our project is impossible, and they will do it." And often the people we hired actually did what we thought was impossible. Are you one of those "do the impossible" people? I think you might be.

You have had the vision to improve this company's processes. Does it matter if your vision is grand? Of course, but only because small visions are a waste of time. Be patient. Rome was not built in a day, etc etc.

You do need to have access to excellent colleagues in your work. This is a challenge in any company, but a double challenge when you are starting out as the only person practicing your trade. I invite you to consider this question: "How do I find good colleagues without abandoning this opportunity?" I think it's also worth talking over with the one who will be your boss. Don't forget that your presence is an opportunity for the whole company, not just you, and they have a strong interest in your excellence.

In a spirit of brainstorming, here are some ideas about finding colleagues.

  1. Join a professional association and participate actively.
  2. Establish the goal of hiring one or more people to work with you, as the fortunes of this company make it possible.
  3. See if your company can afford to pay a reasonable fee to one of your university professors to serve as a consultant, with the sole purpose of being your mentor.
  4. Get a subscription to http://safaribooksonline.com and use it to read at least one technical or trade book per month, to continue to improve your knowledge.
  5. When you're ready to do so, try to find a part-time university teaching assignment. (In the US we have adjunct professors, who are industry professionals teaching part time.) The discipline of teaching and the presence of students will serve you well in the life of your mind.

Good luck! But I doubt you are depending only on luck.

  • Do you know the joke "People said it's impossible. Until someone came and didn't know that, so he did it."? Your third paragraph sounds exactly like that ;) And yes, I indeed like to think out of the box, yet I try to not be too optimistic. – leemes Jul 24 '14 at 16:29
  • Thank you for your positive / optimistic answer. In particular, your list of opportunities for finding colleagues / mentors; I'll definitely try to keep them in mind on my way. :) – leemes Jul 24 '14 at 16:40
2

It seems to me that you already know the answer. ;)

All your concerns seem valid to me.

Regarding your reasons to stay: it makes sense that you value the good relationship with your boss, and feel proud of your project. Make these points a priority when you search for a new job. As you noted yourself, the fact that the company needs you shouldn't concern you too much. It's their responsibility to not make themselves dependent on a single student employee. Also, my guess is that your boss will be understanding, especially if you explain your reasons for why you want to leave, and train somebody else on the project.

  • 1
    Even though you and your boss have a good relation, he should consider your doubts as a big red flag that you will leave in the not too distant future. – user8036 Jul 24 '14 at 13:45
  • @JanDoggen Yes he knows that (he's even more pessimistic about that then I am, I believe). My worries are however that he underestimates the effort / time / cost it takes to transfer the project's responsibility to someone else. It takes time to understand a complex system to the point you can fully maintain it (not only implement single features for it, hoping it won't break). – leemes Jul 24 '14 at 16:43
  • @Daniel I thank you very much for your thoughts :) – leemes Jul 24 '14 at 16:45
2

I am going to address only your last question, since it seems to me the lynchpin for everything:

Will I even find a job, since I am missing some important experience?

You have shown great initiative in your job so far and that is entirely commendable. Your career can develop further in place just as well as if you left for greener pastures.

The secret is to keep innovating. You developed a great product. How is your life cycle? What quality assurance process is in place? Is it possible to market the product to other companies in your employer's industry? (They are not primarily a software company, but that doesn't preclude offering a software product, perhaps through a subsidiary)

As an aside, if you decide to stay in place, ask your employer to skip the customary "junior" designation for you in recognition of the leadership you have shown so far.

Also, if you stay and they decide to hire another developer, try to find one who has that experience to facilitate creating the process. He/She might be paid more than you but you can still request equal dignity for your tenure (i.e. you might be "lead" while the other is "senior").

As for whether you decide to stay or go, I propose the following question: If a seasoned software developer came in, looked at your code and decided that 90% of it needed to be rewritten for reliability, security, performance or any other reason ... Would you be okay with that?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.