9

I'm a junior "data scientist" at a research lab. I have a background doing bioinformatics/image processing research and I have a degree in electrical engineering - I've never taken a CS course. My boss isn't technical, and he's assigned me a project that I can't do, and have no desire to learn to do.

He had someone in 1998 create a program that ran on Windows NT that collected data from a machine in real-time, down to microsecond accuracy. Now he wants it to run on Windows 10 and he's assigned the migration to me, along with a bunch of high-level features. I've been struggling with the project on the side for several months and I've gotten nowhere. It's in some version of Windows C++ - I've never used C++ of any kind, and I'm not familiar with Windows OS programming; Here's an example of how little I know. It's split into thousands of C files and headers and I can't decipher any of the few comments or the coding style, and I have no documentation. I don't think that I can complete this project for him, but since I'm the "programming guy" at the lab he thinks I can.

How can I convince my boss that I can't do this project? He asked me for a deadline the other week and I told him I can't give one since I don't know what needs to be done and I don't know how to figure out what needs to be done.

Please note that I'm not looking for advice on completing the actual project, or how easy you think it is. This isn't an XY problem. I'm not able to do it and I need help getting my boss to believe me.

9
  • 4
    just tell him, and expect some reaction since you waited 5 months.
    – Kilisi
    Commented Jan 2, 2019 at 4:36
  • 2
    Your boss is pulling a fast one. What he asked for requires at least 3 developers already (migration from NT to 10, mobile app, and internet capable with video). He's now asking a junior "data scientist" to do all these three? I laughed...
    – Nelson
    Commented Jan 2, 2019 at 6:43
  • 4
    @Nelson never assume malice, OP's boss is non-technical and probably doesn't realise the difficulty of the task and how unfit OP is (in terms of work history) to do so. Commented Jan 2, 2019 at 8:12
  • 5
    Doesn't need malice, just plain ignorance. The manager is ignorant, and the OP is junior. Perfect recipe for disaster.
    – Nelson
    Commented Jan 2, 2019 at 8:21
  • 5
    Why did you wait 5 months before telling before it? How much time you spend on this project? I mean you may have done other works also in that fice month Commented Jan 2, 2019 at 9:05

4 Answers 4

8

You should have said right away you can't.

NOW

An email is in order.
Write in short sentences, maybe even a few bullet points.

Unfortunately the task has proven to be very complex and has an adverse effect on your data analysis assignments.

List something like.

  • You're not a Windows application programmer.
  • Your courses didn't cover C++ programming, nor Windows and Android/iOS development required for this app and the features he'd like implemented.
  • Your expertise is ... (explain what your qualifications entail, not just the title).

If he asks why you took it on (huge mistake btw.),let him know, that you took on the task because you wanted to help him out and thought you could adapt and expand your knowledge to finish it.

2

Of course, as Boss asked you to do this, you should have said:

"I am completely unable to do that, I have absolutely no knowledge whatsoever of Windows programming."

Here is the best approach I can think of,

to try to fix this unfortunate situation today:

"Hi boss, you know that Windows programming task you mentioned back in July? While doing my work I've been spending some time on the weekends looking at that project. As far as I can work out, it seems to involve programming in c++. I know absolutely nothing about that field. Is there anything more I can do to help on that specific project? As you know I'm very busy on A, B, C, but is there anything I can do?"

Hope it helps and happy new year! :O

2

5 months is a long time to have zero progress on a project. You need to tell the boss that this is out of your field of expertise as soon as you can.

I don't really see why you have no progress at all if you're the 'programming guy', you may be thinking of it the wrong way. Just because it's written in C++ doesn't mean your solution needs to be identical. It's a lot easier to see what needs to be done and rebuild, then to plan out a program from scratch, so if you can do it in another language you should have done so.

If you just have no interest in doing the project then plead your case from the angle that you do not have the requisite training to do that sort of programming and haven't gotten past the planning stage between your other work.

7
  • 3
    The OP has stated that he isn't a software developer and is completely unfamiliar with all of the required technologies. You're telling him to do something that isn't possible for him to do.
    – DaveG
    Commented Jan 2, 2019 at 15:44
  • @DaveG so how is the OP the 'Programming guy'? And I didn't TELL him to do anything, I said if he COULD do it in another language he should have..... obviously if he can't then the next bit of the answer applies, you need to read my whole answer, can take a sentence out of context and twist it to anything. I'm not a dev or even talented at it, but I make a nice chunk of money from software solutions.
    – Kilisi
    Commented Jan 2, 2019 at 15:48
  • "so how is the OP the 'Programming guy" Folks without a technical background sometimes think that all tasks involving programing are fungible, and that if you write some sort of code, you can write any sort of code. Note the OP characterizes the project as " a program that ran on Windows NT that collected data from a machine in real-time, down to microsecond accuracy." and also states that the only documentation on the project is the code itself. To translate it into another language the OP would have to learn at least enough C++ to reverse engineer a spec. Not going to happen in five months. Commented Jan 2, 2019 at 21:34
  • @CharlesE.Grant no, all he would need to do is run it, see what it does to re-engineer it, don't need to know any C++ for that. At the basic level anyway. I've done similar with no actual idea at all what the original was written in and no access to the code.
    – Kilisi
    Commented Jan 4, 2019 at 4:00
  • @Kilisi I have no doubt you've done that successfully many times, but it's silly to think that it will work for every and any program. I spend most of my time writing programs whose only apparent behavior is to read in an arbitrarily long list of floating point numbers and write out a different list of floating point numbers. The catch is that the output numbers are the result of a dozen mathematical transformations applied to the input numbers. You aren't going to be able to figure out what those transformations are, simply by watching which numbers come in and which go out. Commented Jan 4, 2019 at 4:38
-3

Point him to this comment.

I have programmed in nine different languages, from the simplest language to raw machine code. Yet I avoid programs written in C++ because they are the hardest to understand.

C++ can express the same idea in a different million ways, and if the way it was expressed isn't the one you know you have to investigate how it was done. For each single line of the program.

More broadly getting a program to work, and making it understandable by anyone, are two very different skills. The program can work fenomenal, and be very unreadable by a third person.

Mastering C++ usually takes years, even for capable programmers. Also many people think that C++ is a badly designed language, because it allows doing anything but gives little clue about what would be the right call. Its greatest strength is also its greatest weakness, having a free for all approach.

What you need is a skilled C++ programmer that, after looking into the code, can tell what would be the ideal approach to this particular situation.

In general you will want to write programs in the easiest to understand language that has good enough performance for your particular scenario, using harder languages only for the performance critical parts.

2
  • 3
    This addresses the difficulty of the presented task, not the OP's question of "how do I communicate with my boss?"
    – dwizum
    Commented Jan 2, 2019 at 17:11
  • Don't be so silly, I already pointed that out: show your boss this thread, so he has second opinions. Commented Jan 3, 2019 at 19:59

You must log in to answer this question.