Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Dumbing down code so it can be maintained by junior devs

Dumbing down code so it can be maintained by junior devs

Scheduled Pinned Locked Moved The Lounge
csharpjavascriptpythonlinqcom
107 Posts 50 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Marc Clifton

    Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

    Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

    S Offline
    S Offline
    sasadler
    wrote on last edited by
    #61

    Heh, it's a cost saving plan. :) If you dumb down the code enough that a newbie developer can grok it you can then get rid of some of your senior (expensive) developers. Or at least you don't have to hire senior developers any more.

    L 1 Reply Last reply
    0
    • D DerekT P

      Conversely, how does having first-class code help the business, compared to having "mediocre" code? If the end result works, and doesn't require massively more expensive hardware to run at an appropriate speed, then why not? "Simple" code helps the business by reducing staff costs, increasing the pool of potential recruits, reducing "up to speed" time for new joiners ... all these things are helping the business far more than using Linq where it's not necessary. Each new language feature or concept is another thing to learn and get expert in - or not. Keeping things "simple" with a smaller subset arguably allows all staff members to become "expert" in the entire gamut of techniques, and therefore able to pick up and work on any bit of the code, regardless of their seniority / experience. Maybe playing devil's advocate a bit here, but if you look at things from management's point of view, there's something to be said for it. And if it means experienced (expensive) developers leaving in frustration - to be replaced by cheaper juniors - that's yet another win for the bottom line.

      R Offline
      R Offline
      R Giskard Reventlov
      wrote on last edited by
      #62

      Good point, well made. :thumbsup: My response would be that first class code should still be simple and robust.

      Keep your friends close. Keep Kill your enemies closer. The End

      1 Reply Last reply
      0
      • M Munchies_Matt

        Dear oh god. How does that help business? What is a software engineers job, to turn out the latest code or the latest product? Just what do you think the customer is actually buying ffs?

        R Offline
        R Offline
        R Giskard Reventlov
        wrote on last edited by
        #63

        Munchies_Matt wrote:

        What is a software engineers job, to turn out the latest code or the latest product?

        No, to turn out the best, most efficient, mist robust code. Otherwise, we might as well hire a bunch of script-kiddies and cut them loose on our latest trading platform.

        Keep your friends close. Keep Kill your enemies closer. The End

        M 1 Reply Last reply
        0
        • M Marc Clifton

          abmv wrote:

          Maybe a few walk-through session for the junior devs would be adequate.

          Yeah, unfortunately, management's view of training consists of watching Pluralsight videos rather than learning things directly from the senior devs on code that is actually relevant to the company and job.

          Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

          J Offline
          J Offline
          Jalapeno Bob
          wrote on last edited by
          #64

          My boss gives me grief for daring to read and understand CodeProject articles to improve my skills on company time!

          The ironic thing is that I limit my learning to material that I could apply at work, where I a limited to Visual Studio 2010 and SQL Server 2012! My desktop is 2 gigs of memory with 72 gigs of disk space. He is the kind of boss who does not trust his underlings to work while not in his sight

          At home, I currently use Visual Studio 2017 (community edition) and I just installed SQL Server 2017 (developer edition) on a desktop with 8 gigs of memory and a terabyte of disk space.

          __________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock

          1 Reply Last reply
          0
          • M Marc Clifton

            Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

            Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

            B Offline
            B Offline
            Bruce Patin
            wrote on last edited by
            #65

            How about dumbing down code so that it can be understood by senior devs?

            1 Reply Last reply
            0
            • M Marc Clifton

              Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

              Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

              C Offline
              C Offline
              ClockMeister
              wrote on last edited by
              #66

              Well, I'm all for keeping things as simple as possible when developing code but "dumbing it down" by avoiding the use of a technology that might help keep it simple, or retroactively doing it just so that some junior developer could understand it ... no.

              If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair

              1 Reply Last reply
              0
              • A Ashman786

                I've been managing various dev teams (java, .net) for around 15 years now. I would have never asked my dev's to dumb code down but I would suggest that there have been occasions where devs would use a new tech or dev method not because it was needed or warranted but because it was an opportunity to learn something new. The cost of that is a general slowdown in the output of your team as the overhead of working out how the new stuff works start to impact timelines and commitments. If the new way genuinely is better then I think its an easy discussion because the cost/benefit argument should win. I encourage my devs to focus on that and we haven't really had this issue.

                J Offline
                J Offline
                Jalapeno Bob
                wrote on last edited by
                #67

                You sound like the type of boss I would like to work for!

                If your company is in central Texas and you are hiring, please tell me! I would be delighted to apply!

                __________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock

                A 1 Reply Last reply
                0
                • R R Giskard Reventlov

                  Munchies_Matt wrote:

                  What is a software engineers job, to turn out the latest code or the latest product?

                  No, to turn out the best, most efficient, mist robust code. Otherwise, we might as well hire a bunch of script-kiddies and cut them loose on our latest trading platform.

                  Keep your friends close. Keep Kill your enemies closer. The End

                  M Offline
                  M Offline
                  Munchies_Matt
                  wrote on last edited by
                  #68

                  Why is code efficiency important in a product? For that matter robustness. What is robust code (as opposed to a robust product)?

                  R 1 Reply Last reply
                  0
                  • M Munchies_Matt

                    Why is code efficiency important in a product? For that matter robustness. What is robust code (as opposed to a robust product)?

                    R Offline
                    R Offline
                    R Giskard Reventlov
                    wrote on last edited by
                    #69

                    Munchies_Matt wrote:

                    Why is code efficiency important in a product?

                    Why would you want inefficient code in your product?

                    Munchies_Matt wrote:

                    What is robust code (as opposed to a robust product)?

                    Seriously? You set out to write code that is not robust? Why would you do that?

                    Keep your friends close. Keep Kill your enemies closer. The End

                    M 1 Reply Last reply
                    0
                    • M Marc Clifton

                      Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

                      Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                      R Offline
                      R Offline
                      RandyBuchholz
                      wrote on last edited by
                      #70

                      Statistically, half the people you know are below average. :) Programmers are no different. Maybe worse. In programming, the mean is well below the median. Web development reminds me of "departmental programmers" that write Excel macros. They can do some pretty good work (from a business needs perspective) quickly, and with limited technical knowledge. The thing is, if you can make it work with "commodity programmers", it makes economic sense. Things have changed a lot. Look at user expectations. Before the web, users used to complain if an app didn't respond within 1/4 second after a button push. Now a user might wait 4 seconds without complaining. The programmer that can squeeze those milliseconds out just isn't as valuable if their cost is much higher and they are not interchangeable with "just any" programmer. That said, there is a difference between "dumb" and "stupid". Extension methods and C# 7 features are all pretty simple and easy to understand/learn. I'd say on a scale of 1-10 they are about a 4. Using LINQ deeply is a little higher and the learning curve can be steeper, but still, once you grasp it, not hard. I approach this using a two-tiered approach. A small set (even just one) of advanced programmers are responsible for building "internal toolkits". Basically, domain specific libraries (wrapped with training wheels and pretty little bows and ribbons). The rest of the team just uses these libraries. It's like in manufacturing. You have your tool-and-die makers, and your commodity (lower-paid) workers that use the tools. Good tools make the workers job simple and efficient, and they don't need to know how to build the tools themselves. Management reduces labor costs and manages risk by encapsulating it in the tool/die makes realm.

                      1 Reply Last reply
                      0
                      • R R Giskard Reventlov

                        Munchies_Matt wrote:

                        Why is code efficiency important in a product?

                        Why would you want inefficient code in your product?

                        Munchies_Matt wrote:

                        What is robust code (as opposed to a robust product)?

                        Seriously? You set out to write code that is not robust? Why would you do that?

                        Keep your friends close. Keep Kill your enemies closer. The End

                        M Offline
                        M Offline
                        Munchies_Matt
                        wrote on last edited by
                        #71

                        Why does the latest C++ 7 features make for a better product?

                        R. Giskard Reventlov wrote:

                        You set out to write code that is not robust?

                        I asked you to define robust, in reference to a robust product. Do so before making assumptions.

                        R 1 Reply Last reply
                        0
                        • M Marc Clifton

                          Ever been asked to do this? I seem to be encountering this more and more -- the last company I worked for, I left because that was stated explicitly by the CTO as the new policy. What would you do if you were told to do that? And by dumbing down, I mean doing things like avoiding LINQ (except for basic things), metadata, reflection, extension methods, and any of the C# 7.0 language features. It seems that long gone are the days when companies actually invest in keeping developer skills up to par with the technologies the company uses. Or even more amusingly (not) keeping those technologies up to date.

                          Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                          L Offline
                          L Offline
                          Leng Vang
                          wrote on last edited by
                          #72

                          I guess that company wants to dumb down their developers, let them. Good that you got out of it. :-D

                          1 Reply Last reply
                          0
                          • S sasadler

                            Heh, it's a cost saving plan. :) If you dumb down the code enough that a newbie developer can grok it you can then get rid of some of your senior (expensive) developers. Or at least you don't have to hire senior developers any more.

                            L Offline
                            L Offline
                            Leng Vang
                            wrote on last edited by
                            #73

                            Nice try. Unless the company doesn't plan to stick around long. Sooner rather than later that simple saving will come back to bite the rear end good. Happens all the time. Think it is expensive to invest in good engineering, try a bad one. :wtf:

                            S 1 Reply Last reply
                            0
                            • S Steve Naidamast

                              I hate to throw rain on your perceptions but writing code for the least experienced in your team is what you are supposed to be doing. It is one of the first axioms that maturing developers should be picking up. The idea that you want to write code your own way using whatever complexities you deem fit only drives the cost of maintaining your applications up. If everyone in your team is familiar with LINQ for example, than you should be free to use it. If they aren't than you should be using what they do know in its place unless these team members are provided the time to learn how to use such technologiess efficiently. In addition, code is supposed to be as simplistic as possible so anyone can easily absorb it when it is necessary for new people to pick up on your work. Most of the so called latest and cool technologies are just fluff or junk technologies that do the same thing we have been doing for years with older, more mature technologies, yet far more complex since the younger professionals seem to be masochistic in their outlooks on what makes up good coding techniques. Like with Linux, harder and more complex is seemingly better than simple and intuitive... :confused:

                              Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                              L Offline
                              L Offline
                              Leng Vang
                              wrote on last edited by
                              #74

                              I don't mind the most cryptic, tricky piece of code as long as it is also accompany be good comments. I've seen some comment describing the code but not the meaning of it. Anyone call themselves programmer should be able to determine the syntax with meaningful comments.

                              1 Reply Last reply
                              0
                              • P Peter Shaw

                                As Iv'e said for years, this so called "Skills Shortage" in the industry, is as a result of businesses own practices, but they never learn, they just keep doing the same things over and over again.

                                J Offline
                                J Offline
                                Jim_Snyder
                                wrote on last edited by
                                #75

                                Unfortunately, the bottom line drives that. Businesses are not likely to change until they see ROI.

                                1 Reply Last reply
                                0
                                • M Marc Clifton

                                  Peter Shaw wrote:

                                  Do I get a pay rise and a position in your office if I'm working the same job as you?"

                                  :laugh: Good one!

                                  Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                                  P Offline
                                  P Offline
                                  Peter Shaw
                                  wrote on last edited by
                                  #76

                                  I'm not known for my Tactfulness, that's for sure :-) Blunt as a brick, and straight faced with it too.

                                  1 Reply Last reply
                                  0
                                  • abmvA abmv

                                    Usually the management should be in agreement that in-house training ( or sessions) for developers should be conducted periodically by the senior devs or the software architect, how boring they may be , but it is in they interest of the company to do so.Say the senior dev is on vacation.This could be pro-actively arranged and attendance recorded.This could be done with each major release or milestone of the project. Pluralsight videos or online tutorial are for people starting to code or learning and not even for junior devs.

                                    Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long

                                    J Offline
                                    J Offline
                                    Jim_Snyder
                                    wrote on last edited by
                                    #77

                                    My small team is highly vertically stacked. Our new management declared we would cross train each other. It is all great on paper, but the stress of learning a departed developer's undocumented code in every silo is palpable. In-house training sessions would be a joy in comparison.

                                    1 Reply Last reply
                                    0
                                    • D DerekT P

                                      Conversely, how does having first-class code help the business, compared to having "mediocre" code? If the end result works, and doesn't require massively more expensive hardware to run at an appropriate speed, then why not? "Simple" code helps the business by reducing staff costs, increasing the pool of potential recruits, reducing "up to speed" time for new joiners ... all these things are helping the business far more than using Linq where it's not necessary. Each new language feature or concept is another thing to learn and get expert in - or not. Keeping things "simple" with a smaller subset arguably allows all staff members to become "expert" in the entire gamut of techniques, and therefore able to pick up and work on any bit of the code, regardless of their seniority / experience. Maybe playing devil's advocate a bit here, but if you look at things from management's point of view, there's something to be said for it. And if it means experienced (expensive) developers leaving in frustration - to be replaced by cheaper juniors - that's yet another win for the bottom line.

                                      S Offline
                                      S Offline
                                      sdedalus
                                      wrote on last edited by
                                      #78

                                      The examples given of technologies to avoid are actually in the language to reduce code complexity and do a fantastic job of that. This won't make the code more readable for junior devs it will model the bad habits of the previous generation of programmers for the new generation. More likely this is a policy put in place by a manager who wants to micromanage developers and does not want to keep up with the new language features.

                                      1 Reply Last reply
                                      0
                                      • U User 12331290

                                        1. It would be unprofessional to write anything but the most efficient code possible. 2. How would a junior programmer ever progress if not presented with more challenging code. 3. It would not be possible to determine exactly what each junior programmer was capable of until they were presented with something they could not cope with alone. So how would you know how much to dumb down. 4. If I were a senior programmer on this team, I would take this as my cue to look for another job. 5. If I were a junior programmer on this team, I would take this as my cue to look for another job.

                                        L Offline
                                        L Offline
                                        Leng Vang
                                        wrote on last edited by
                                        #79

                                        5. If I were a junior programmer on this team, I would take this as my cue to look for another job.

                                        If I were a junior programmer on this team and I refuse to learn that more efficient paradigm, I should change career. :^)

                                        1 Reply Last reply
                                        0
                                        • M Munchies_Matt

                                          You havent answered the question. Is a carpenters job to make furniture, or to use the latest saw, plane, and screwdriver?

                                          L Offline
                                          L Offline
                                          Leng Vang
                                          wrote on last edited by
                                          #80

                                          You're not going to carve that table legs by hand with a rusty blade and charge customers 40 hours for each leg, are you? Hey it's made by hand and antique so the cost would be expensive. Most customers wouldn't pay for it. :)

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups