Greetings:
The department in which I work has a conundrum. We are a research lab environment staffed by Ph.D scientists mostly without EE or computer engineering backgrounds (they are primarily mechanical engineers, and among the world's best.)
Also, we have technologists with mostly 2 year technical degrees, and one software engineer with a great deal of experience in industrial controls, primarily in the engine industry (engine test stand type work).
I am an oddball among the techs. as I'm titled as Laser/Optical Technologist, but with a 4-year degree in Chemistry, but doing 75% of my work on electrical engineering related tasks.
5 years ago when I was only employed there for a year, my boss encouraged me to go to a week long LabView training course. We agreed it would be potentially useful and I complied, even though my initial impression was that, since I already could program in C and assembly, that I wouldn't like LabView very much. That turned out to be true. I haven't used it yet, though I keep it under consideration since I only know how to do mainly "close to the hardware" programming, and have not programmed under any OS since MS-DOS and the 8086. I know nothing about GUI programming under Windows or X, so LabView offers someone like me an easy way to do GUI interfaces, while focussing the bulk of my efforts on low-level stuff.But this is getting off the subject. The point is that I didn't understand at the time why my boss wanted me to learn about LabView.
Now I understand. It is because they are concerned about what would happen to them if the software guru got hit by a bus or otherwise went unavailable. They think he may be so difficult to replace, that they would be in real trouble finding someone to help them if he went missing and they had a major failure at the same time.
The same line of thinking is causing them to be squeamish about my proposals to build new laboratory control systems with very far-reaching capabilities. They simply don't understand anything other than PCs with COTS DAQ/DIO boards installed. Custom microcontroller boards, FPGAs, they think these things are "esoteric" and "highly specialized" so that they'd never find anyone who could understand what I've done if I vanished as well.
I am planning to present to them a case for why these concerns are overblown, as well as why I should be afforded some liberty to get more involved with software development, particularly on the close-to-the-hardware side of things for an upcoming large project. Even though that might cost them some added time to deploy the system, it's Ok in my view because it's to replace a legacy PC/DIO engine control system which presently works fine but would be very time-consuming to replace if it broke (the boards inside are no longer available and the PC runs DOS to perform real-time tasks). Also I have a prototype replacement system based on a TMS320F2812 which can be deployed within weeks if there was a failure of one of the legacy machines.
So in return for the price they would pay in greater labor costs if I build the embedded side of the new system (the software guy would still need to be involved to write a Windows GUI), is that we would achieve "cross-over" in the involvement of myself and the software dude in understanding the core of the new system.
I think it is better to have me do the embedded side from scratch, because I am one of those who finds it much easier to develop a program from scratch than to understand and extend someone else's. That's mainly a result of the fact that I only do programming "part-time." Whereas for the software guy, he could probably decipher my entire work and begin making enhancements on much shorter order than if I were trying to decipher his work.
No matter what, it will be to their advantage to have two people instead of only one able to work under the hood of the new system. Since the embedded side is more of a staffing challenge to find replacement skills than the GUI interface side, here is where the initial effort at achieving such "cross-over" should be expended.
There's another reason why it makes sense, and they are also aware of this: If they don't employ me to get more involved in the embedded system design and programming, then they may force themselves into exactly the situation they fear. For this particular project, as has happened a few times in the past, I would be relegated to the task of building only the wiring of the hardware to a bunch of user-accessible connectors. This is not work that allows me to accumulate experience in embedded development or FPGA development which is the other thing I'm venturing into. Thus, I would become increasingly motivated to move onward with my career somewhere else. Then they'd have to find a replacement which can function both at my level with the lasers/OPOs, and the electronics and embedded uC systems which I've already deployed. We had a disappointing outcome just trying to find an appropriate replacement laser tech. about a year ago.
I have been pushing them to allow me to build a custom DSP/FPGA board based on F2812 since I am already familiar with that CPU. But the software guy is not very happy about this, that it will take too much time and we should just use COTS. At this point I am actually starting to agree with him, but don't want to admit this and keep arguing for custom, because I know custom will lock him out of the embedded software side, at least until the FPGA-implemented peripherals are developed into a fairly stable form from the programmer's perspective.
But now that I see their concerns regarding becoming too dependent upon gurus, it might be in all of our best interests for me to compromize on the custom/COTS issue and go with a COTS board. I just re-discovered that Innovative Integration offers a DSP+user programmable FPGA board, though it is even more overkill than what I was planning to build. Then if I do the DSP/FPGA programming on the COTS, it will benefit them by initiating the process of crossing-over of skills that they want.
Does this sound like a sensible approach that provides mutual economic benefit to all parties?
Thanks for input.
Good day!