How to cope at a company where technical improvement is actively discouraged. [closed]

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
5
down vote

favorite
4












A little background: I have been out of undergraduate college for a little under a year now. I work at a decent sized corporation as a software engineer. I am well paid and have good benefits.



My concern is I have not been working this job long at all and I feel as though it is completely a technical dead end. I am not someone who has ever struggled with learning new things in the field of computer science or software engineering. I can pick up most programming languages in a week (not just imperative or OO, but functional and logic language as well). I have never touched an API I could not learn in a weekend. It has been over a decade since I can remember looking at source code and not being able to figure out what it is doing.



My problem arises that at work, I feel like I have to consciously not use my technical knowledge to ever have any hope of fitting in. My workplace does have standards. I don't really have much of a problem with the coding standard, nor do I have a problem with a documentation standard for software. I think some of the things in those standards are unfathomably stupid, but they really aren't deal breakers. Some of the business process standards seem silly to me, but I go along with them because I am paid to. I'm not naive enough to believe that I will somehow change the business processes of a large corporation.



The thing is, it seems like any sort of technical improvement is actively discouraged. The examples are so scattered and numerous, it hurts to even think about, but here are a few examples:



If someone else can't immediately understand what I am doing, it's automatically out. Even if I do a phenomenal job of explaining it (not my words), it's probably going to be forced out.



Writing portable (i.e. code that can move from one architecture to another) is actively discouraged. I could speculate as to why, but I really have no idea why.



Using a standard set of functions to validate user input is completely inadmissible. I have actually been made to duplicate the same logic hundreds of times across a code base rather than use a single function to encapsulate it.



A coworker was once told to decouple his software from the mathematical concept of pi. It involved mathematics in spherical coordinates. He was not successful in fulfilling this request.



Trying to identify problems with software architecture decisions ends up with me getting treated like a heretic. Keep in mind this isn't the new guy refactoring the 6 million line of code base that started while he was in diapers. It's trying to suggest improvements to make everyone's life easier while developing new software. This resulted in the 'not your job' speech at least once in front of a room of 20 other engineers.



I feel like this career is absolute technical dead end. As in, if I never learned something new for the rest of my life, no one would ever notice. At this point, I have completely given up on trying to create anything of value. No matter how stupid of a request comes across my desk, unless it is not simply not possible I just go along with it. The only thing keeping me at my job is the paycheck and the location.



I could go on, but I would just like to get to my real question: Is all software engineering like this? I'm pretty young, so I could easily change careers. I haven't quite yet strapped on the life preserver to jump ship, but I would rather make a decision now than just become completely disillusioned with what I do.



What are my options here?







share|improve this question














closed as not a real question by Jim G., yannis, Elysian Fields♦, Rarity Sep 23 '12 at 23:35


It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.










  • 6




    If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
    – Elysian Fields♦
    Sep 23 '12 at 13:47






  • 1




    Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
    – IDrinkandIKnowThings
    Sep 24 '12 at 13:03






  • 3




    Leave before it kills you. Go work for a start up.
    – MrFox
    Sep 24 '12 at 19:00






  • 1




    Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
    – BryanH
    Apr 12 '16 at 16:05










  • As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
    – T. Sar
    Mar 13 '17 at 19:10
















up vote
5
down vote

favorite
4












A little background: I have been out of undergraduate college for a little under a year now. I work at a decent sized corporation as a software engineer. I am well paid and have good benefits.



My concern is I have not been working this job long at all and I feel as though it is completely a technical dead end. I am not someone who has ever struggled with learning new things in the field of computer science or software engineering. I can pick up most programming languages in a week (not just imperative or OO, but functional and logic language as well). I have never touched an API I could not learn in a weekend. It has been over a decade since I can remember looking at source code and not being able to figure out what it is doing.



My problem arises that at work, I feel like I have to consciously not use my technical knowledge to ever have any hope of fitting in. My workplace does have standards. I don't really have much of a problem with the coding standard, nor do I have a problem with a documentation standard for software. I think some of the things in those standards are unfathomably stupid, but they really aren't deal breakers. Some of the business process standards seem silly to me, but I go along with them because I am paid to. I'm not naive enough to believe that I will somehow change the business processes of a large corporation.



The thing is, it seems like any sort of technical improvement is actively discouraged. The examples are so scattered and numerous, it hurts to even think about, but here are a few examples:



If someone else can't immediately understand what I am doing, it's automatically out. Even if I do a phenomenal job of explaining it (not my words), it's probably going to be forced out.



Writing portable (i.e. code that can move from one architecture to another) is actively discouraged. I could speculate as to why, but I really have no idea why.



Using a standard set of functions to validate user input is completely inadmissible. I have actually been made to duplicate the same logic hundreds of times across a code base rather than use a single function to encapsulate it.



A coworker was once told to decouple his software from the mathematical concept of pi. It involved mathematics in spherical coordinates. He was not successful in fulfilling this request.



Trying to identify problems with software architecture decisions ends up with me getting treated like a heretic. Keep in mind this isn't the new guy refactoring the 6 million line of code base that started while he was in diapers. It's trying to suggest improvements to make everyone's life easier while developing new software. This resulted in the 'not your job' speech at least once in front of a room of 20 other engineers.



I feel like this career is absolute technical dead end. As in, if I never learned something new for the rest of my life, no one would ever notice. At this point, I have completely given up on trying to create anything of value. No matter how stupid of a request comes across my desk, unless it is not simply not possible I just go along with it. The only thing keeping me at my job is the paycheck and the location.



I could go on, but I would just like to get to my real question: Is all software engineering like this? I'm pretty young, so I could easily change careers. I haven't quite yet strapped on the life preserver to jump ship, but I would rather make a decision now than just become completely disillusioned with what I do.



What are my options here?







share|improve this question














closed as not a real question by Jim G., yannis, Elysian Fields♦, Rarity Sep 23 '12 at 23:35


It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.










  • 6




    If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
    – Elysian Fields♦
    Sep 23 '12 at 13:47






  • 1




    Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
    – IDrinkandIKnowThings
    Sep 24 '12 at 13:03






  • 3




    Leave before it kills you. Go work for a start up.
    – MrFox
    Sep 24 '12 at 19:00






  • 1




    Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
    – BryanH
    Apr 12 '16 at 16:05










  • As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
    – T. Sar
    Mar 13 '17 at 19:10












up vote
5
down vote

favorite
4









up vote
5
down vote

favorite
4






4





A little background: I have been out of undergraduate college for a little under a year now. I work at a decent sized corporation as a software engineer. I am well paid and have good benefits.



My concern is I have not been working this job long at all and I feel as though it is completely a technical dead end. I am not someone who has ever struggled with learning new things in the field of computer science or software engineering. I can pick up most programming languages in a week (not just imperative or OO, but functional and logic language as well). I have never touched an API I could not learn in a weekend. It has been over a decade since I can remember looking at source code and not being able to figure out what it is doing.



My problem arises that at work, I feel like I have to consciously not use my technical knowledge to ever have any hope of fitting in. My workplace does have standards. I don't really have much of a problem with the coding standard, nor do I have a problem with a documentation standard for software. I think some of the things in those standards are unfathomably stupid, but they really aren't deal breakers. Some of the business process standards seem silly to me, but I go along with them because I am paid to. I'm not naive enough to believe that I will somehow change the business processes of a large corporation.



The thing is, it seems like any sort of technical improvement is actively discouraged. The examples are so scattered and numerous, it hurts to even think about, but here are a few examples:



If someone else can't immediately understand what I am doing, it's automatically out. Even if I do a phenomenal job of explaining it (not my words), it's probably going to be forced out.



Writing portable (i.e. code that can move from one architecture to another) is actively discouraged. I could speculate as to why, but I really have no idea why.



Using a standard set of functions to validate user input is completely inadmissible. I have actually been made to duplicate the same logic hundreds of times across a code base rather than use a single function to encapsulate it.



A coworker was once told to decouple his software from the mathematical concept of pi. It involved mathematics in spherical coordinates. He was not successful in fulfilling this request.



Trying to identify problems with software architecture decisions ends up with me getting treated like a heretic. Keep in mind this isn't the new guy refactoring the 6 million line of code base that started while he was in diapers. It's trying to suggest improvements to make everyone's life easier while developing new software. This resulted in the 'not your job' speech at least once in front of a room of 20 other engineers.



I feel like this career is absolute technical dead end. As in, if I never learned something new for the rest of my life, no one would ever notice. At this point, I have completely given up on trying to create anything of value. No matter how stupid of a request comes across my desk, unless it is not simply not possible I just go along with it. The only thing keeping me at my job is the paycheck and the location.



I could go on, but I would just like to get to my real question: Is all software engineering like this? I'm pretty young, so I could easily change careers. I haven't quite yet strapped on the life preserver to jump ship, but I would rather make a decision now than just become completely disillusioned with what I do.



What are my options here?







share|improve this question














A little background: I have been out of undergraduate college for a little under a year now. I work at a decent sized corporation as a software engineer. I am well paid and have good benefits.



My concern is I have not been working this job long at all and I feel as though it is completely a technical dead end. I am not someone who has ever struggled with learning new things in the field of computer science or software engineering. I can pick up most programming languages in a week (not just imperative or OO, but functional and logic language as well). I have never touched an API I could not learn in a weekend. It has been over a decade since I can remember looking at source code and not being able to figure out what it is doing.



My problem arises that at work, I feel like I have to consciously not use my technical knowledge to ever have any hope of fitting in. My workplace does have standards. I don't really have much of a problem with the coding standard, nor do I have a problem with a documentation standard for software. I think some of the things in those standards are unfathomably stupid, but they really aren't deal breakers. Some of the business process standards seem silly to me, but I go along with them because I am paid to. I'm not naive enough to believe that I will somehow change the business processes of a large corporation.



The thing is, it seems like any sort of technical improvement is actively discouraged. The examples are so scattered and numerous, it hurts to even think about, but here are a few examples:



If someone else can't immediately understand what I am doing, it's automatically out. Even if I do a phenomenal job of explaining it (not my words), it's probably going to be forced out.



Writing portable (i.e. code that can move from one architecture to another) is actively discouraged. I could speculate as to why, but I really have no idea why.



Using a standard set of functions to validate user input is completely inadmissible. I have actually been made to duplicate the same logic hundreds of times across a code base rather than use a single function to encapsulate it.



A coworker was once told to decouple his software from the mathematical concept of pi. It involved mathematics in spherical coordinates. He was not successful in fulfilling this request.



Trying to identify problems with software architecture decisions ends up with me getting treated like a heretic. Keep in mind this isn't the new guy refactoring the 6 million line of code base that started while he was in diapers. It's trying to suggest improvements to make everyone's life easier while developing new software. This resulted in the 'not your job' speech at least once in front of a room of 20 other engineers.



I feel like this career is absolute technical dead end. As in, if I never learned something new for the rest of my life, no one would ever notice. At this point, I have completely given up on trying to create anything of value. No matter how stupid of a request comes across my desk, unless it is not simply not possible I just go along with it. The only thing keeping me at my job is the paycheck and the location.



I could go on, but I would just like to get to my real question: Is all software engineering like this? I'm pretty young, so I could easily change careers. I haven't quite yet strapped on the life preserver to jump ship, but I would rather make a decision now than just become completely disillusioned with what I do.



What are my options here?









share|improve this question













share|improve this question




share|improve this question








edited Sep 23 '12 at 15:08









Jim G.

11.8k105373




11.8k105373










asked Sep 23 '12 at 5:02









MostlyAnonymous

373




373




closed as not a real question by Jim G., yannis, Elysian Fields♦, Rarity Sep 23 '12 at 23:35


It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.






closed as not a real question by Jim G., yannis, Elysian Fields♦, Rarity Sep 23 '12 at 23:35


It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.









  • 6




    If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
    – Elysian Fields♦
    Sep 23 '12 at 13:47






  • 1




    Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
    – IDrinkandIKnowThings
    Sep 24 '12 at 13:03






  • 3




    Leave before it kills you. Go work for a start up.
    – MrFox
    Sep 24 '12 at 19:00






  • 1




    Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
    – BryanH
    Apr 12 '16 at 16:05










  • As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
    – T. Sar
    Mar 13 '17 at 19:10












  • 6




    If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
    – Elysian Fields♦
    Sep 23 '12 at 13:47






  • 1




    Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
    – IDrinkandIKnowThings
    Sep 24 '12 at 13:03






  • 3




    Leave before it kills you. Go work for a start up.
    – MrFox
    Sep 24 '12 at 19:00






  • 1




    Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
    – BryanH
    Apr 12 '16 at 16:05










  • As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
    – T. Sar
    Mar 13 '17 at 19:10







6




6




If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
– Elysian Fields♦
Sep 23 '12 at 13:47




If you are capable of everything you say you are, you should have no trouble finding a job at a company which values the things you value. Make sure during that interview you actually ask questions to let YOU understand the company you are interviewing with so you don't make the same mistake again.
– Elysian Fields♦
Sep 23 '12 at 13:47




1




1




Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
– IDrinkandIKnowThings
Sep 24 '12 at 13:03




Not every job is a good fit for every person. When you find yourself in a job that is not the right fit for you the best thing to do for all involved is to get a new job.
– IDrinkandIKnowThings
Sep 24 '12 at 13:03




3




3




Leave before it kills you. Go work for a start up.
– MrFox
Sep 24 '12 at 19:00




Leave before it kills you. Go work for a start up.
– MrFox
Sep 24 '12 at 19:00




1




1




Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
– BryanH
Apr 12 '16 at 16:05




Two red flags for me: I have been out of undergraduate college for a little under a year now. ...I have not been working this job long at all... Okay, so understand that you are VERY inexperienced. Nothing wrong with this, but realize that you are coming at this with little to no understanding about how the real world works. I'd suggest you stick it out at least a year, just so you don't get dinged when you apply for your next gig, AND to learn as much as you can from this job. You don't want to repeat the same mistakes!
– BryanH
Apr 12 '16 at 16:05












As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
– T. Sar
Mar 13 '17 at 19:10




As a team leader, if you tell me that you're able to learn any language in a week we would both laugh, and them your resume would be on the trash right away. Programming is hard and saying something like this makes you look really inexperienced and over-confident - two flaws that are a recipe for a disaster on a developer.
– T. Sar
Mar 13 '17 at 19:10










4 Answers
4






active

oldest

votes

















up vote
10
down vote



accepted











Is all software engineering like this?




No, it certainly isn't. Though it is more likely to be like this in larger organizations where software exists to support the business rather than being the business. Having said that, there are many large organisations where excellence in software is actively encouraged. Whether an organization does one or the other tends to mirror the focus of upper management and those of the IT management team. Such people may think of the situation as "if it is not broken don't fix it" and cannot see that it is broken.



Requirements like the one you describe about decoupling PI from a library (class/set of functions/whatever) used for spherical calculations sounds like something that came from someone who doesn't have an idea about programming or mathematics - someone like that is unlikely to care about code quality, let alone improving it, or the development experience.



Your options are:



  1. Prove to the higher ups, those that don't see the breakage, that things are broken. However, if they are not technical in the least, they will probably not be convinced.


  2. Leave. Find a job where they do care about code quality. When interviewing, make sure to ask questions about their coding processes - ask enough so you feel confident that you understand how they feel about this issue.






share|improve this answer


















  • 5




    #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
    – alroc
    Sep 23 '12 at 11:51






  • 2




    @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
    – Oded
    Sep 23 '12 at 11:52






  • 4




    +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
    – Lior
    Sep 23 '12 at 12:10











  • +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
    – Telastyn
    Sep 23 '12 at 16:30

















up vote
7
down vote














Writing portable (i.e. code that can move from one architecture to another) is actively discouraged.




This is kind of thing is common in corporate IT development teams. For example, you may encounter a team that's been using VB since the late 90's and, even though they're on .NET now, they still code in a VB6 style. In other groups, the corporate standard is to only use Microsoft products so being portable to *nix isn't a consideration. Others may be equally divided between IOS and Android developers who don't share code and have no desire to for 'religious' reasons.




Using a standard set of functions to validate user input is completely
inadmissible.




This is common too, simply because refactoring a large number of existing applications/code to deal with this has been deemed too costly. It's also likely someone tried to do this in the past and it ended up being a massive failure. If a company spend thousands on a failed refactor they're unlikely to take one up again, even a small scale one, in the short term.




Trying to identify problems with software architecture decisions ends
up with me getting treated like a heretic.




This is common too. Some people who've been at a company a while will be defensive about their code, especially criticism from a junior programmer. Some are just resistant to change. For example, I've encountered .NET programmers who're quite resistant to learning LINQ, MVC and other newer things and still code like they're on Framework 1.1 or 2.0.



But, each software development organization is different. There are good ones and bad ones, high pressure ones and laid back ones, ossified ones and dynamic ones. The one you're in right now seems rather bleak from what you've described. If it's making you that unhappy, it may be time to consider moving on even though the pay and location is good.



When you do interview, ask questions to make sure that you're walking into a situation that's a good fit for your personality and skills. Ask them how they handle portable code and standard functionality. Ask about other areas you have concerns about. Do this without mentioning your current employer's ways. Use non-threatening questions to get the answer you need without offending.






share|improve this answer



























    up vote
    3
    down vote













    You have confused the definition of job and career.



    You have a job with a particular company. If it isn't a good fit then start making plans to leave. That doesn't mean you have to switch to a completely different field.



    There are thousands of companies that have software engineers. You picked one that doesn't meet your needs.



    Don't quit today. Continue to work with them and take the time to investigate other companies. They can be competitors, sub-contractors, or companies you meet though trade shows. Try to figure out if their work situation is more like what you want. If it looks like a good match, apply for positions there.



    When you need a job, you have to spend the interview process convincing them that you are the perfect one for the job. When you have a job, but are looking for a better one, you turn that process on its head.






    share|improve this answer




















    • I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
      – BryanH
      Apr 12 '16 at 16:01

















    up vote
    2
    down vote














    Is all software engineering like this?




    Of course not. A better question might be 'Are all software development groups like this?', and the answer would still be no.




    What are my options here?




    Sounds like your best option would probably be to find a shop of like-minded engineers and work with them. If you, as a very new developer, are noticing his company's tech issues already, I'd imagine the issues run deep and are systemic and cultural.



    As a young engineer, don't be too discouraged by this. It's your first job, and although there are other groups like this, there are plenty that are more friendly to engineers like you.



    You mentioned that you are able to pick up new languages and APIs readily, so finding new work shouldn't take too long. Lots of companies seem to be doing more hiring in the junior level range as of late, so your freshness to the industry is a potential advantage.



    If your career is the main concern, even taking a small paycut to work in an environment that rewards learning and your type of thinking would be wise in the long run. Learning is the most important element of any job for you at this point in your career, and the money will come if you learn your craft well.






    share|improve this answer



























      4 Answers
      4






      active

      oldest

      votes








      4 Answers
      4






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      10
      down vote



      accepted











      Is all software engineering like this?




      No, it certainly isn't. Though it is more likely to be like this in larger organizations where software exists to support the business rather than being the business. Having said that, there are many large organisations where excellence in software is actively encouraged. Whether an organization does one or the other tends to mirror the focus of upper management and those of the IT management team. Such people may think of the situation as "if it is not broken don't fix it" and cannot see that it is broken.



      Requirements like the one you describe about decoupling PI from a library (class/set of functions/whatever) used for spherical calculations sounds like something that came from someone who doesn't have an idea about programming or mathematics - someone like that is unlikely to care about code quality, let alone improving it, or the development experience.



      Your options are:



      1. Prove to the higher ups, those that don't see the breakage, that things are broken. However, if they are not technical in the least, they will probably not be convinced.


      2. Leave. Find a job where they do care about code quality. When interviewing, make sure to ask questions about their coding processes - ask enough so you feel confident that you understand how they feel about this issue.






      share|improve this answer


















      • 5




        #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
        – alroc
        Sep 23 '12 at 11:51






      • 2




        @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
        – Oded
        Sep 23 '12 at 11:52






      • 4




        +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
        – Lior
        Sep 23 '12 at 12:10











      • +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
        – Telastyn
        Sep 23 '12 at 16:30














      up vote
      10
      down vote



      accepted











      Is all software engineering like this?




      No, it certainly isn't. Though it is more likely to be like this in larger organizations where software exists to support the business rather than being the business. Having said that, there are many large organisations where excellence in software is actively encouraged. Whether an organization does one or the other tends to mirror the focus of upper management and those of the IT management team. Such people may think of the situation as "if it is not broken don't fix it" and cannot see that it is broken.



      Requirements like the one you describe about decoupling PI from a library (class/set of functions/whatever) used for spherical calculations sounds like something that came from someone who doesn't have an idea about programming or mathematics - someone like that is unlikely to care about code quality, let alone improving it, or the development experience.



      Your options are:



      1. Prove to the higher ups, those that don't see the breakage, that things are broken. However, if they are not technical in the least, they will probably not be convinced.


      2. Leave. Find a job where they do care about code quality. When interviewing, make sure to ask questions about their coding processes - ask enough so you feel confident that you understand how they feel about this issue.






      share|improve this answer


















      • 5




        #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
        – alroc
        Sep 23 '12 at 11:51






      • 2




        @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
        – Oded
        Sep 23 '12 at 11:52






      • 4




        +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
        – Lior
        Sep 23 '12 at 12:10











      • +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
        – Telastyn
        Sep 23 '12 at 16:30












      up vote
      10
      down vote



      accepted







      up vote
      10
      down vote



      accepted







      Is all software engineering like this?




      No, it certainly isn't. Though it is more likely to be like this in larger organizations where software exists to support the business rather than being the business. Having said that, there are many large organisations where excellence in software is actively encouraged. Whether an organization does one or the other tends to mirror the focus of upper management and those of the IT management team. Such people may think of the situation as "if it is not broken don't fix it" and cannot see that it is broken.



      Requirements like the one you describe about decoupling PI from a library (class/set of functions/whatever) used for spherical calculations sounds like something that came from someone who doesn't have an idea about programming or mathematics - someone like that is unlikely to care about code quality, let alone improving it, or the development experience.



      Your options are:



      1. Prove to the higher ups, those that don't see the breakage, that things are broken. However, if they are not technical in the least, they will probably not be convinced.


      2. Leave. Find a job where they do care about code quality. When interviewing, make sure to ask questions about their coding processes - ask enough so you feel confident that you understand how they feel about this issue.






      share|improve this answer















      Is all software engineering like this?




      No, it certainly isn't. Though it is more likely to be like this in larger organizations where software exists to support the business rather than being the business. Having said that, there are many large organisations where excellence in software is actively encouraged. Whether an organization does one or the other tends to mirror the focus of upper management and those of the IT management team. Such people may think of the situation as "if it is not broken don't fix it" and cannot see that it is broken.



      Requirements like the one you describe about decoupling PI from a library (class/set of functions/whatever) used for spherical calculations sounds like something that came from someone who doesn't have an idea about programming or mathematics - someone like that is unlikely to care about code quality, let alone improving it, or the development experience.



      Your options are:



      1. Prove to the higher ups, those that don't see the breakage, that things are broken. However, if they are not technical in the least, they will probably not be convinced.


      2. Leave. Find a job where they do care about code quality. When interviewing, make sure to ask questions about their coding processes - ask enough so you feel confident that you understand how they feel about this issue.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 24 '12 at 17:29









      David Navarre

      1,5161112




      1,5161112










      answered Sep 23 '12 at 10:52









      Oded

      21.1k57597




      21.1k57597







      • 5




        #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
        – alroc
        Sep 23 '12 at 11:51






      • 2




        @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
        – Oded
        Sep 23 '12 at 11:52






      • 4




        +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
        – Lior
        Sep 23 '12 at 12:10











      • +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
        – Telastyn
        Sep 23 '12 at 16:30












      • 5




        #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
        – alroc
        Sep 23 '12 at 11:51






      • 2




        @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
        – Oded
        Sep 23 '12 at 11:52






      • 4




        +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
        – Lior
        Sep 23 '12 at 12:10











      • +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
        – Telastyn
        Sep 23 '12 at 16:30







      5




      5




      #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
      – alroc
      Sep 23 '12 at 11:51




      #2 is the only viable solution, long-term. What the OP describes is a cultural problem that likely permeates the entire organization.
      – alroc
      Sep 23 '12 at 11:51




      2




      2




      @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
      – Oded
      Sep 23 '12 at 11:52




      @alroc - I agree. Sounds endemic to the place, and I don't believe the OP will be able to affect a culture shift.
      – Oded
      Sep 23 '12 at 11:52




      4




      4




      +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
      – Lior
      Sep 23 '12 at 12:10





      +1 for leaving. The part which got me is the public shaming in front of other engineers - that's a deal breaker, and should never be done. In your next interview, dedicate its last part to "interviewing the company" yourself. You seem like a promising developer, and a company should meet your standards exactly as you should meet theirs.
      – Lior
      Sep 23 '12 at 12:10













      +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
      – Telastyn
      Sep 23 '12 at 16:30




      +1 for leaving. I'd love to find capable programmers who're even aware of functional languages, let alone be competent with them (and is aggressively aware of software improvement)
      – Telastyn
      Sep 23 '12 at 16:30












      up vote
      7
      down vote














      Writing portable (i.e. code that can move from one architecture to another) is actively discouraged.




      This is kind of thing is common in corporate IT development teams. For example, you may encounter a team that's been using VB since the late 90's and, even though they're on .NET now, they still code in a VB6 style. In other groups, the corporate standard is to only use Microsoft products so being portable to *nix isn't a consideration. Others may be equally divided between IOS and Android developers who don't share code and have no desire to for 'religious' reasons.




      Using a standard set of functions to validate user input is completely
      inadmissible.




      This is common too, simply because refactoring a large number of existing applications/code to deal with this has been deemed too costly. It's also likely someone tried to do this in the past and it ended up being a massive failure. If a company spend thousands on a failed refactor they're unlikely to take one up again, even a small scale one, in the short term.




      Trying to identify problems with software architecture decisions ends
      up with me getting treated like a heretic.




      This is common too. Some people who've been at a company a while will be defensive about their code, especially criticism from a junior programmer. Some are just resistant to change. For example, I've encountered .NET programmers who're quite resistant to learning LINQ, MVC and other newer things and still code like they're on Framework 1.1 or 2.0.



      But, each software development organization is different. There are good ones and bad ones, high pressure ones and laid back ones, ossified ones and dynamic ones. The one you're in right now seems rather bleak from what you've described. If it's making you that unhappy, it may be time to consider moving on even though the pay and location is good.



      When you do interview, ask questions to make sure that you're walking into a situation that's a good fit for your personality and skills. Ask them how they handle portable code and standard functionality. Ask about other areas you have concerns about. Do this without mentioning your current employer's ways. Use non-threatening questions to get the answer you need without offending.






      share|improve this answer
























        up vote
        7
        down vote














        Writing portable (i.e. code that can move from one architecture to another) is actively discouraged.




        This is kind of thing is common in corporate IT development teams. For example, you may encounter a team that's been using VB since the late 90's and, even though they're on .NET now, they still code in a VB6 style. In other groups, the corporate standard is to only use Microsoft products so being portable to *nix isn't a consideration. Others may be equally divided between IOS and Android developers who don't share code and have no desire to for 'religious' reasons.




        Using a standard set of functions to validate user input is completely
        inadmissible.




        This is common too, simply because refactoring a large number of existing applications/code to deal with this has been deemed too costly. It's also likely someone tried to do this in the past and it ended up being a massive failure. If a company spend thousands on a failed refactor they're unlikely to take one up again, even a small scale one, in the short term.




        Trying to identify problems with software architecture decisions ends
        up with me getting treated like a heretic.




        This is common too. Some people who've been at a company a while will be defensive about their code, especially criticism from a junior programmer. Some are just resistant to change. For example, I've encountered .NET programmers who're quite resistant to learning LINQ, MVC and other newer things and still code like they're on Framework 1.1 or 2.0.



        But, each software development organization is different. There are good ones and bad ones, high pressure ones and laid back ones, ossified ones and dynamic ones. The one you're in right now seems rather bleak from what you've described. If it's making you that unhappy, it may be time to consider moving on even though the pay and location is good.



        When you do interview, ask questions to make sure that you're walking into a situation that's a good fit for your personality and skills. Ask them how they handle portable code and standard functionality. Ask about other areas you have concerns about. Do this without mentioning your current employer's ways. Use non-threatening questions to get the answer you need without offending.






        share|improve this answer






















          up vote
          7
          down vote










          up vote
          7
          down vote










          Writing portable (i.e. code that can move from one architecture to another) is actively discouraged.




          This is kind of thing is common in corporate IT development teams. For example, you may encounter a team that's been using VB since the late 90's and, even though they're on .NET now, they still code in a VB6 style. In other groups, the corporate standard is to only use Microsoft products so being portable to *nix isn't a consideration. Others may be equally divided between IOS and Android developers who don't share code and have no desire to for 'religious' reasons.




          Using a standard set of functions to validate user input is completely
          inadmissible.




          This is common too, simply because refactoring a large number of existing applications/code to deal with this has been deemed too costly. It's also likely someone tried to do this in the past and it ended up being a massive failure. If a company spend thousands on a failed refactor they're unlikely to take one up again, even a small scale one, in the short term.




          Trying to identify problems with software architecture decisions ends
          up with me getting treated like a heretic.




          This is common too. Some people who've been at a company a while will be defensive about their code, especially criticism from a junior programmer. Some are just resistant to change. For example, I've encountered .NET programmers who're quite resistant to learning LINQ, MVC and other newer things and still code like they're on Framework 1.1 or 2.0.



          But, each software development organization is different. There are good ones and bad ones, high pressure ones and laid back ones, ossified ones and dynamic ones. The one you're in right now seems rather bleak from what you've described. If it's making you that unhappy, it may be time to consider moving on even though the pay and location is good.



          When you do interview, ask questions to make sure that you're walking into a situation that's a good fit for your personality and skills. Ask them how they handle portable code and standard functionality. Ask about other areas you have concerns about. Do this without mentioning your current employer's ways. Use non-threatening questions to get the answer you need without offending.






          share|improve this answer













          Writing portable (i.e. code that can move from one architecture to another) is actively discouraged.




          This is kind of thing is common in corporate IT development teams. For example, you may encounter a team that's been using VB since the late 90's and, even though they're on .NET now, they still code in a VB6 style. In other groups, the corporate standard is to only use Microsoft products so being portable to *nix isn't a consideration. Others may be equally divided between IOS and Android developers who don't share code and have no desire to for 'religious' reasons.




          Using a standard set of functions to validate user input is completely
          inadmissible.




          This is common too, simply because refactoring a large number of existing applications/code to deal with this has been deemed too costly. It's also likely someone tried to do this in the past and it ended up being a massive failure. If a company spend thousands on a failed refactor they're unlikely to take one up again, even a small scale one, in the short term.




          Trying to identify problems with software architecture decisions ends
          up with me getting treated like a heretic.




          This is common too. Some people who've been at a company a while will be defensive about their code, especially criticism from a junior programmer. Some are just resistant to change. For example, I've encountered .NET programmers who're quite resistant to learning LINQ, MVC and other newer things and still code like they're on Framework 1.1 or 2.0.



          But, each software development organization is different. There are good ones and bad ones, high pressure ones and laid back ones, ossified ones and dynamic ones. The one you're in right now seems rather bleak from what you've described. If it's making you that unhappy, it may be time to consider moving on even though the pay and location is good.



          When you do interview, ask questions to make sure that you're walking into a situation that's a good fit for your personality and skills. Ask them how they handle portable code and standard functionality. Ask about other areas you have concerns about. Do this without mentioning your current employer's ways. Use non-threatening questions to get the answer you need without offending.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Sep 23 '12 at 13:48









          jfrankcarr

          1,71698




          1,71698




















              up vote
              3
              down vote













              You have confused the definition of job and career.



              You have a job with a particular company. If it isn't a good fit then start making plans to leave. That doesn't mean you have to switch to a completely different field.



              There are thousands of companies that have software engineers. You picked one that doesn't meet your needs.



              Don't quit today. Continue to work with them and take the time to investigate other companies. They can be competitors, sub-contractors, or companies you meet though trade shows. Try to figure out if their work situation is more like what you want. If it looks like a good match, apply for positions there.



              When you need a job, you have to spend the interview process convincing them that you are the perfect one for the job. When you have a job, but are looking for a better one, you turn that process on its head.






              share|improve this answer




















              • I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
                – BryanH
                Apr 12 '16 at 16:01














              up vote
              3
              down vote













              You have confused the definition of job and career.



              You have a job with a particular company. If it isn't a good fit then start making plans to leave. That doesn't mean you have to switch to a completely different field.



              There are thousands of companies that have software engineers. You picked one that doesn't meet your needs.



              Don't quit today. Continue to work with them and take the time to investigate other companies. They can be competitors, sub-contractors, or companies you meet though trade shows. Try to figure out if their work situation is more like what you want. If it looks like a good match, apply for positions there.



              When you need a job, you have to spend the interview process convincing them that you are the perfect one for the job. When you have a job, but are looking for a better one, you turn that process on its head.






              share|improve this answer




















              • I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
                – BryanH
                Apr 12 '16 at 16:01












              up vote
              3
              down vote










              up vote
              3
              down vote









              You have confused the definition of job and career.



              You have a job with a particular company. If it isn't a good fit then start making plans to leave. That doesn't mean you have to switch to a completely different field.



              There are thousands of companies that have software engineers. You picked one that doesn't meet your needs.



              Don't quit today. Continue to work with them and take the time to investigate other companies. They can be competitors, sub-contractors, or companies you meet though trade shows. Try to figure out if their work situation is more like what you want. If it looks like a good match, apply for positions there.



              When you need a job, you have to spend the interview process convincing them that you are the perfect one for the job. When you have a job, but are looking for a better one, you turn that process on its head.






              share|improve this answer












              You have confused the definition of job and career.



              You have a job with a particular company. If it isn't a good fit then start making plans to leave. That doesn't mean you have to switch to a completely different field.



              There are thousands of companies that have software engineers. You picked one that doesn't meet your needs.



              Don't quit today. Continue to work with them and take the time to investigate other companies. They can be competitors, sub-contractors, or companies you meet though trade shows. Try to figure out if their work situation is more like what you want. If it looks like a good match, apply for positions there.



              When you need a job, you have to spend the interview process convincing them that you are the perfect one for the job. When you have a job, but are looking for a better one, you turn that process on its head.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Sep 23 '12 at 13:27









              mhoran_psprep

              40.3k463144




              40.3k463144











              • I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
                – BryanH
                Apr 12 '16 at 16:01
















              • I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
                – BryanH
                Apr 12 '16 at 16:01















              I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
              – BryanH
              Apr 12 '16 at 16:01




              I'd also add that part of the interview process is to interview the company. OP knows what questions to ask based upon their experience at the current shop - if technical innovation/refactoring/improvement isn't culturally allowed, then the interview is over.
              – BryanH
              Apr 12 '16 at 16:01










              up vote
              2
              down vote














              Is all software engineering like this?




              Of course not. A better question might be 'Are all software development groups like this?', and the answer would still be no.




              What are my options here?




              Sounds like your best option would probably be to find a shop of like-minded engineers and work with them. If you, as a very new developer, are noticing his company's tech issues already, I'd imagine the issues run deep and are systemic and cultural.



              As a young engineer, don't be too discouraged by this. It's your first job, and although there are other groups like this, there are plenty that are more friendly to engineers like you.



              You mentioned that you are able to pick up new languages and APIs readily, so finding new work shouldn't take too long. Lots of companies seem to be doing more hiring in the junior level range as of late, so your freshness to the industry is a potential advantage.



              If your career is the main concern, even taking a small paycut to work in an environment that rewards learning and your type of thinking would be wise in the long run. Learning is the most important element of any job for you at this point in your career, and the money will come if you learn your craft well.






              share|improve this answer
























                up vote
                2
                down vote














                Is all software engineering like this?




                Of course not. A better question might be 'Are all software development groups like this?', and the answer would still be no.




                What are my options here?




                Sounds like your best option would probably be to find a shop of like-minded engineers and work with them. If you, as a very new developer, are noticing his company's tech issues already, I'd imagine the issues run deep and are systemic and cultural.



                As a young engineer, don't be too discouraged by this. It's your first job, and although there are other groups like this, there are plenty that are more friendly to engineers like you.



                You mentioned that you are able to pick up new languages and APIs readily, so finding new work shouldn't take too long. Lots of companies seem to be doing more hiring in the junior level range as of late, so your freshness to the industry is a potential advantage.



                If your career is the main concern, even taking a small paycut to work in an environment that rewards learning and your type of thinking would be wise in the long run. Learning is the most important element of any job for you at this point in your career, and the money will come if you learn your craft well.






                share|improve this answer






















                  up vote
                  2
                  down vote










                  up vote
                  2
                  down vote










                  Is all software engineering like this?




                  Of course not. A better question might be 'Are all software development groups like this?', and the answer would still be no.




                  What are my options here?




                  Sounds like your best option would probably be to find a shop of like-minded engineers and work with them. If you, as a very new developer, are noticing his company's tech issues already, I'd imagine the issues run deep and are systemic and cultural.



                  As a young engineer, don't be too discouraged by this. It's your first job, and although there are other groups like this, there are plenty that are more friendly to engineers like you.



                  You mentioned that you are able to pick up new languages and APIs readily, so finding new work shouldn't take too long. Lots of companies seem to be doing more hiring in the junior level range as of late, so your freshness to the industry is a potential advantage.



                  If your career is the main concern, even taking a small paycut to work in an environment that rewards learning and your type of thinking would be wise in the long run. Learning is the most important element of any job for you at this point in your career, and the money will come if you learn your craft well.






                  share|improve this answer













                  Is all software engineering like this?




                  Of course not. A better question might be 'Are all software development groups like this?', and the answer would still be no.




                  What are my options here?




                  Sounds like your best option would probably be to find a shop of like-minded engineers and work with them. If you, as a very new developer, are noticing his company's tech issues already, I'd imagine the issues run deep and are systemic and cultural.



                  As a young engineer, don't be too discouraged by this. It's your first job, and although there are other groups like this, there are plenty that are more friendly to engineers like you.



                  You mentioned that you are able to pick up new languages and APIs readily, so finding new work shouldn't take too long. Lots of companies seem to be doing more hiring in the junior level range as of late, so your freshness to the industry is a potential advantage.



                  If your career is the main concern, even taking a small paycut to work in an environment that rewards learning and your type of thinking would be wise in the long run. Learning is the most important element of any job for you at this point in your career, and the money will come if you learn your craft well.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Sep 23 '12 at 13:11









                  fecak

                  2,9201017




                  2,9201017












                      Comments

                      Popular posts from this blog

                      What does second last employer means? [closed]

                      List of Gilmore Girls characters

                      Confectionery