I am a software developer and I am in a team full of business analysts.

Before we were 3 developers but now I am just the only one.

My situation right now is a bit idle. I am just doing support work and maintaining the existing systems which is not too hard. I am concerned that when it comes to report my contribution to the company, my report will not be too impressive.

My supervisor does not also know what to do with me. There are no projects being requested to be delivered by me.

I know there are business processes in our company that I can automate but we just do not have them on our radar, or we are not on the radar of the teams that can potentially ask us for help.

Right now, what I can do is suggest little apps that people can use to make their lives easier. But other than that, I have not much to do.

I would suggest courses (Like on Udemy or Pluralsite) OR approaching your manager with your ideas. Saving money is something all companies like to do. If you can sell you idea as something that will save money, I wouldn't be surprised if they moved forward with those ideas. Just make sure the ideas add value and don't have much risk. The biggest challenge about changing a system that seems to work is convincing people that the change will be a net positive.
– ShinEmperorDec 18 '18 at 12:39

Your question is too broad and you're not even in a position to acquire new clients or projects for your company.apparently it's also a duplicate, voted to close. sorry.
– DigitalBlade969Dec 19 '18 at 1:37

3

What dream opportunity to catch up on technical debt, make sure there is full, up to date,, documentation, code more unit tests and fix the inevitable bugs that you will find, etc Sounds like a dream to me, unless you want to reword your question to say that you fear that the company will let you go.
– MawgDec 20 '18 at 7:28

7 Answers
7

First off, I would like to commend you for looking for more work. Lots of people in your situation sit around and do nothing. I am also software developer, here is what I do during slow time:

Write/update system documentation

Automate tasks

Write utility programs

Create training/handoff material

Analyze the current system to look for efficiencies

Attempt to "pay off" some technical debt

Most of these tasks are never complete. Even if documentation or handoff material exists, it can always be enhanced. Also, continue to follow up with your supervisor to see if there is anything they expect you be doing. If they say there is nothing, point out that you are not idle and working on X task until something comes in.

Big fan of "pay off" tech debt. I think it's something that's sorely missed in development environments. Everyone wants to build new shiny things, but no one wants to grind out the inefficiencies in the current systems. I'm a tech lead and I like to occasionally go over the code and give it a code cleaning. Name things properly, maybe structures the code better. I do a bit of refactoring when I'm in my downtime to get the system to a more efficient and more importantly, manageable place.
– ShinEmperorDec 18 '18 at 12:37

5

+1 for the documentation and training materials. All of these suggestions, though, will assist when your work ramps up again - not just for you, but anyone else that comes along.
– zr00Dec 18 '18 at 15:36

3

I'm not sure how to make this an edit and make it fit - Address these tasks in a way that does not tie you up for long periods of time. When new projects do turn up you do not want to tell your boss "okay but the build is broken because I added tests, I need a week to fix that". If a task will take a relatively long time (1-2 days in my world, might be less in yours) review the time commitment with your boss first and make sure you'll have that time to do it.
– FreiheitDec 18 '18 at 16:48

9

Note that attempting to document things may be a good way to identify what technical debt to prioritize. Especially with the OP being the sole developer, tech debt that makes hand off harder (because it's confusing) is probably a good thing to invest some time in. In other words, you can do a lot of these hand in hand.
– jpmc26Dec 18 '18 at 18:10

3

One other important way to pay off technical debt: write tests. (Unit tests, system tests, integration tests, however you divide those. Automated tests are cool because they go on checking the code for ever after.) Also: write/improve doc comments, and improve the code generally — after all, code is never perfect and you can almost always spot further ways to make it clearer, simpler, more robust, &c.
– giddsDec 19 '18 at 17:49

Use that free time you have to do something else. You could take some courses to improve your knowledge, for example.

However, that option doesn't seem to fit with what you want, so, let's go ahead with the other two:

"Sell projects": You seem to be a proactive person and to have many ideas, so, you could use your time to work on them, maybe preparing some documentation explaining how would that improve the processes, and how could you achieve it. In some way, you have to "sell" ideas to the company so they get interested in something and they could lend that work to you.

Look for another job: Sadly, sometimes there's nothing else to do and you find yourself in that kind of situations with zero interest of the company to change that. I think that that shows that is a good time to leave. This isn't bad at all, and also, you have a great advantage, that is that you already have a job! and that's the best time to look for another job.

You can even combine 1-3 and 2-3.

As a final advice, don't let that situation to continue for long. It burns one's mind and kill all your motivation and productivity.

Parts 1 and 2 of this answer as well as the one from @SaggingRufus go together well. Heck, even the 3rd part can be combined with all of them - you'll make yourself very marketable if you can point to specific examples where you proactively worked for your current company when you weren't asked to.
– zr00Dec 18 '18 at 15:38

Sadly, it sounds like option #3 may be one to prioritize based on the questions background given in the OP.
– FreeManDec 19 '18 at 15:32

You study. Your field is highly competitive and new stuff is happening everyday. Take your machine learning and statistics skills to the next level. Work on your programming. Build more detailed models. Build your own projects that interest you.

You need to push yourself here. Don't get caught up in laziness. Use this respite to grow.

Never, ever work on personal projects on company time or with company resources (such as computers). At every company I've worked at, that's a fireable offense. Even if you get permission to do it, the company would almost certainly own whatever you worked on and any intellectual property you created and that's generally not what you want either.
– aleppkeDec 18 '18 at 17:46

1

@aleppke True, depending on your contract your personal projects are the companies IP, but if you're not doing anything anyway training is better than nothing. You shouldn't get fired over that. I think the context really matters here. If you had work, you'd just be abandoning your duties, but since you don't it's just self directed training or continued education; the difference being that in one situation the company benefits from your actions and in the other the company loses productivity from you.
– user53651Dec 18 '18 at 17:58

OP should only do "R&D" or training if the manager allows or asks OP to do it. Deciding on your own is indeed a bad idea. Doing presonal projects on company time, premises and equipment arguably even worse.
– DigitalBlade969Dec 19 '18 at 2:47

If you're keeping the current systems working then you have nothing to worry about with regards to your contribution.

Your management team will likely have very little idea of how easy it is, since it would appear nigh on impossible to them to maintain. I agree with the other answers suggestions that you could use the time to study.

Another constructive use of your time would be to propose a few R&D projects. Some of these may amount to nothing more than some interesting research in to a new framework/tool. But how I'd sell it is that you will create demos from the projects that may have real world applications within your company, or even better products that your company could potentially sell.

I would find out & see what their planned life-cycles are (make them if they don't exist), put them on a calendar and then work out an upgrade path - you don't want to find out that you have critical applications running on an old version of windows 2003, or that they are running on a server for which you can no longer obtain parts, or that they are written in COBOL - then let management prioritize upgrades / overhauls & work on that

Besides the things the other people suggested:
In my opinion you should first try to get the supervisor on your side. If he/she currently has no projects for you but sees your interest and effort for (e.g.) ideas to improve the productivity, you might receive better support in future.
Even (if you want that) a position with more responsibility might be available as you manage to do your job so efficiently that there is spare time... The managers in the organization I work for would love to have employees like that - and your supervisor might think the same.

Sit down with the business analysts and find out what they need. Observe them as they go through their daily tasks and see what can be optimized.

This may turn into new work directly, and if it doesn't, time spent understanding your company's primary processes is still valuable because it will help you build programs that do what the company needs, rather than just what they ask for.

This. The OP has an amazing opportunity to show useful initiative and proactivity. They could potentially end up with a decent career boost out of this if they're lucky.
– Lightness Races in OrbitDec 19 '18 at 22:33

Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).