1

I'm a software engineer at a small manufacturing firm writing custom software for the company to use in various areas, from the assembly line to managing documentation. We have a large number of software systems that have been built over the years by my manager, an electrical engineer by trade. He's had very limited formal training in computer science and in software development, and is not up to date on most of the trends in the industry. The rest of the systems have been built by their only in-house production software programmer, who also has had not formal training in software development. Since most of their systems have been built by "shooting from the hip" and without regard to things like source control, software project management, or other conventions, the code base can be very obfuscated and difficult to work with. It's basically a black box - it works, but I have no idea how. All development has thus far been done in VB.NET.

A little about me: I'm a rising 4th year CS student, who's working here as part of a co-op program at my institute - basically an extended internship that lasts 3 semesters. I'm not exactly a normal full-time employee, but I have a lot of the same kinds of responsibilities as a full time employee. And, I am honestly the most knowledgeable person at the company when it comes to computer science and software engineering concepts. This isn't to brag about how much I know, which is admittedly very little as I'm still an undergrad, but to note that software development is just now becoming a bigger priority for my company. My manager and the in-house dev know this, and put a lot of stock in my ideas since they know I've got the formal training that they're looking to bring to the team.

All of this context to say - how should I approach suggesting to my manager that we switch to C#?

The main reason that my manager gave for using VB is that it's easier to write in/use, but actually for most developers nowadays a C-like language would be easier to catch on to, as schools mostly teach C-like languages. In addition, VB is one of the most disliked languages out there. The management has expressed interest in really increasing the quality of software produced at our company, which means hiring more engineers. Using such a poorly regarded language is a liability, in my eyes, that will keep us from attracting the best talent.

I'd like to be a part of bringing this company into the modern day, but I'd like to do it in a way that doesn't hurt anyone's feelings or make anyone feel old-fashioned, or come across as condescending. Halp!

Edit: Just to be clear, I'm not looking for help about the merits of one programming language vs. another, but rather on having the conversation with my manager about changing technologies from something he's familiar with to something that's not his forte. Thanks!

6
  • 1
    I think it will be important to emphasize if you're looking for help with having the conversation (an topic Workplace question), versus a debate about which programming language is best (not a Workplace topic).
    – dwizum
    May 17, 2018 at 19:18
  • Aha, gotcha. Thanks! Sorry if all the technical detail was a bit much/off topic for this SE, I just wanted to give the whole picture and not leave anything out. I added a note at the end to clarify! May 17, 2018 at 19:25
  • I'm voting to close this question as off-topic because this question is not strictly workplace related. The question of "how should I approach suggesting to my manager that we switch to C#" makes this question more technical than workplace related and will not be useful to future users (unless they are also trying to switch to C#). May 18, 2018 at 11:41
  • @SaggingRufus hence my comment above - I do think there is an on topic component though. Imagine if the question had been, "How should I talk to my manager about changing from red office chairs to blue office chairs?" or, "changing from X to Y" in the generic sense. No matter what X and Y are, there's are "workplace" concerns about decision making that are independent of X and Y.
    – dwizum
    May 18, 2018 at 13:48
  • I also think there's at least some argument against that dupe thread, since in this particular question, the OP is only with the organization for a brief timeframe - whereas the company will need to live with the change long after the OP is out of the picture.
    – dwizum
    May 18, 2018 at 13:49

2 Answers 2

2

The challenge you're facing is balancing stability against "best" practices.

There's a difference between trying to determine "the best" programming language, in a vacuum, versus determining if a given organization can be successful with any specific language(s).

An organization can be comfortably successful with C#, VB, FORTRAN, whatever. Rather than make this about the language, you need to make it about the organization, the impact of the change, and the sustainability of whatever language you select. Some thoughts to raise during your discussion:

  1. How will current staff train on the new language? How will language choice affect future hiring decisions?
  2. You are an intern - there's an implication that you will be leaving soon. What will they do when their "expert" is gone?
  3. Presumably there will be a transition period, during which some software exists in each of the two languages, and effort will be invested into the conversion, versus specific features or functions in the software. Will that require extra staffing?

Before even considering the change, you need to discuss these points, and if they don't have satisfying answers, it's (likely) not worth trying to talk them in to switching, even if C# is "better" than VB.

You specifically asked,

but rather on having the conversation with my manager about changing technologies from something he's familiar with to something that's not his forte.

To directly answer that:

You've said they respect your knowledge on new ideas. Meanwhile, you're implying that they're experts on the organization. Approach the discussion as a new-idea expert, and ask for their input on the organizational factors mentioned above.

4

(Not really a Workplace question, but I'll give you an answer anyway)

You can argue semantics across the languages and get nowhere. My main two arguments would be

a) The community knowledge share uses C#, search out an example, or error message, and you'll likely find a StackOverflow or some other similar site, and 99% of the time these days you are going to see C# code related to .Net code.

b) The talent pool of applicants will want to use C#, if you ever see yourself hiring, many developers will flat out refuse to work with VB.Net unless they are desperate for a position.

1
  • 7
    To add to this, C# and VB.NET can live side-by-side in the same solution(s). I'd suggest a gradual migration for new development, and not a wholesale library rewrite. May 17, 2018 at 19:22

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