Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Disclaimer: Opinions expressed are solely my own and do not express the views or opinions of my employer.

I work for a small company, in which few people are developers, others are QA/Test and 1 is a Manager. I joined this company 1.5 years ago. 3 senior developers have 8+ years of experience.

These are the observations which I made about the team lead. (considering me as a fresher with less experience compared to them in all aspects )

  1. They never discuss 1:1 or they never consider the junior suggestion (I agree that it's up to them, whether they accept it or not, at least they should consider an opinion).
  2. As senior team leader they can try to refactor the codebase with new technologies ( including the factor of rolling out new technologies is possible and other developer and infrastructure also ready), but these team leader feel less in-secure to work with new technologies, as they are not up to date. (reason I am telling, they don't know what current programming trend, *(such as popular open source projects like modernizr, bootstrap and many others).
  3. In our codebase more than 10000+ lines are repeated, so I told them about DRY: Don't Repeat yourself. Their reply was : "It is a fascinating article, but never works in practice". I just told them if we do not make it 100% DRY, we can at least use interfaces, but that also was not considered. *(interfaces can be added for new features, not touching the previous codebase, if they are not ready to refactor)
  4. All senior developers do maintenance and hot fixing of patches. The rest of the time they just spend on entertainment sites. They are just happy to finish the task.
  5. Introducing new technology is bad? *(including factor of feasibility can be done).
  6. Manager also least concerned about the things which I am talking about.
  7. Junior expects they can learn many things from team lead. *(not by asking help or senior coding for them).

My questions are:

  1. Am I too aggressive about the changes which I am proposing?
  2. What should I expect from senior dev leads who have 8+ years experience?
  3. Am I wrong to expect to learn and gain experience from a company?

Update :

Why they feel DRY is impractical: because they don't want get involved with OOP concepts. They are happy with repeating tasks.

New technologies I am proposing:

  1. Usage of Minification of CSS, JS, SPrite images
  2. Usage of Interfaces and .net framework 4, generics and many others.
  3. Client side libraries such as modernizr, knockout js, bootstrap for responsive,
share|improve this question
37  
Just a note: Years of experience mean nothing. There's the adage "some people have 10 years of experience, some have 1 year repeated 10 times" (paraphrased). Base your expectations upon their skill and knowledge, not how long they have been there. –  user414076 Feb 7 '13 at 17:01
6  
Ravi, you would like to believe they have been learning and growing. What is far too common is that they have reached some plateau. Whether this is due to complacency, simply not being challenged, or they've truly reached their limit, that varies from person to person and situation to situation. –  user414076 Feb 7 '13 at 17:04
5  
@Ravi your perception is they are a team lead to guide you, though it's entirely possible their perception is they are a team lead to make good money and not have people tell them what to do so they can do what they want. Not everyone is looking to help you out just because they should, and many people don't bother improving themselves if they can avoid it by becoming a team lead without self-improvement along the way. –  Jimmy Hoffa Feb 7 '13 at 18:01
10  
You're already way ahead of them and they're not interested in elevating themselves into a position where they're ready to work with you. Fire your company. –  user16764 Feb 7 '13 at 19:38
5  
Usually I'm all for new technology that brings a cleaner way of doing something. However, one must be careful to avoid introducing lots of new technologies just because they are new and shiny. If a project is just beginning or if needs a new functionality or refactoring, then it might be a good opportunity to introduce something new. If the project is stable (needing only minor fixes), or if it's late, it would be better to avoid introducing new things. –  marcus Feb 8 '13 at 13:22
show 11 more comments

7 Answers

up vote 27 down vote accepted

Am I too aggressive about the changes which i am proposing ?

Without specifics (what new techs you're proposing, why they're rejecting them, where they feel that DRY is impractical and why, etc), it's hard to evaluate the amount of merit to your proposals and that's important for your aggressiveness. If you want them to use a new framework because you think it's new and cool, then pushing more than lightly is too aggressive. If they're really slamming thousands of lines of copy/paste into the codebase (i.e. they're writing crap) then I'd say more aggressiveness is warranted.

But this also depends on the interpersonal dynamics too between you and them. My advice would be to ask yourself "could I demonstrate that my suggestions would benefit the company?" If the answer is yes, then I'd say you have some license to try to push.

What should i expect from senior dev lead who have 8+yr ?

This will run the gamut. You'll sometimes get some really sharp people that you can learn a lot from, both in terms of office politics navigation and technical considerations. Unfortunately, you also get a lot of this. You'll find no shortage of people whose 8+ years of experience basically just amounts to doing the bare minimum not to get fired. If you find a mentor or someone who is really sharp, hold onto that as much as you can because it's less common than it ought to be.

Am I wrong to expect good learning from a company?

People to learn from are out there and they're at some companies. You seem to be faced with a common dilemma and, to paraphrase the .NET Rocks guys, this is worth considering: "Change your company... or change your company."

Meaning, if you believe in certain core approaches and principles and you're finding yourself consistently unable to sell them and gain the freedom to do and learn things that you want to do and learn, it's worth considering a search for a company that's a better fit for you.

share|improve this answer
1  
I showed a demo of all the new things. still they are uncomfortable. see my updated answer –  Ravi Gadag Feb 7 '13 at 17:48
1  
It sounds to me as though your ideas would most likely be an improvement to what exists. Next up is to figure out why they're getting rejected. You haven't built enough rep with the seniors? They're lazy? Miscommunication? Could you be making a better case or could you get your way after proving yourself? If so, gutting it out might be a good experience. If they're just lazy and disinterested, it might not. –  Erik Dietrich Feb 7 '13 at 18:27
1  
They are disinterested. –  Ravi Gadag Feb 7 '13 at 18:36
6  
@RaviG: Of course they're disinterested. You're a fresh new dev, eager to please, with eyes much bigger than your stomach... and you're trying to tell your devs what to do. It's bad enough when management has a new idea everyday for how to change the entire product... a new guy? pfft. Go do something. –  Steve Evers Feb 7 '13 at 22:04
add comment

I will write this from my perspective as a Senior Developer (or insert any other fancy title you like here) that works with Junior developers frequently.

This is probably a shortage on both your front, and the Senior Developers' front.

One thing a lot of Junior developers don't understand is that whilst you (as a junior) are pushing to use new technologies, new ways to do things, telling the team they're doing it wrong, etc. - the Seniors in the team are reporting to the management on delivery and are being pushed by management to deliver new things as quickly as possible to make the company as much money as possible (or deliver the best outcomes for the client/customer).

Sometimes the tried and proven ways of delivering just outweigh the risk of implementing [insert cool technology here]. Tight deadlines, too much work and a truckload of pressure to boot means that the way we've done it for 8+ years is the way we're doing it this time too.

You need to be able to demonstrate to the team that what you're proposing will actually have some benefit to them and to the company in the long run. Otherwise you will not get buy-in from your colleagues and they will not be able to sell it to the management team to get approval to run with it.

Am I too aggressive about the changes which I am proposing?

Without knowing the full circumstances, you might be. Just telling people A is better than B so we should be using A doesn't hold much ground. You need to go and do something to show why it is better. It doesn't have to be big, even just a small component or application that shows your suggested way of doing it should be more than enough. You then need to present it and be ready to stand your ground against criticism from your team.

Even as a Senior Developer I have to do this before I can convince my colleagues that the new way of doing things is better.

What should I expect from senior dev leads who have 8+ years experience?

As others have said, 8+ years experience doesn't necessarily mean you're fantastic. But in general, you should be able to learn a lot from someone who has been around the traps for a while; you may also be able to teach them something too.

People are people and everyone has an ego (some bigger than others) and there's nothing worse than the new guy coming in and telling you that you've been doing your job wrong for the past 8+ years. At the same time, a Senior developer (a good one) should be able to take constructive criticism and be able to articulate the reasons for their decisions.

Am I wrong to expect to learn and gain experience from a company?

Not using the latest and greatest technology and features doesn't mean you're not learning and gaining experience within your company. Experience is experience, sometimes knowing the old way of doing something can give you a greater appreciation of why the new way is better. This also helps you demonstrate why the new way is better, because you understand both and can articulate a more convincing argument when you're trying to sell it. I personally don't use the latest and greatest things where I work at the moment - but I still learn new things every day and it still looks good on my resume too.

Having said all that - if the company is really not a good fit and all else fails, you might want to look for a new place to work.

share|improve this answer
    
addressing your first point, I think that's a gap with the senior devs. How can a junior dev understand the full implications of their push for new tech if the senior dev doesn't lay it out for them? there's also a fine balance that needs to be struck between sticking to reliable tech and letting junior devs learn new things (to be sure there's a lot of learning that can happen within the sphere of reliable tech) –  omouse Jun 25 '13 at 23:07
add comment

Think of this as a huge opportunity.

Promotions often don't (and shouldn't) come from the number of years you've put into a company anymore. You've got what you think are some really good ideas, and your superiors/peers don't want to listen.

Here is a strategy:

  1. Do something awesome
  2. Collect hard metrics for how awesome it is (this step is key)
  3. Demonstrate it, with your metrics to everyone at your company (owner/lead/seniors/sales guys - everyone you can get your hands on)
  4. Profit

And I don't mean profit to be some vague "I win" step. Step 4 is where you get one, or all of the following:

  1. Promoted
  2. A raise
  3. A bonus

Either with your company, or a new one that can appreciate your talents and the amazing metrics that you've got on your resume.

I call it "being awesome" - and it works.

Anecdote: I'm not consistently awesome, but I try to be and I've performed the steps given 5 distinct times (2 promotions, 3 new jobs; all with substantial pay increases).

With that in mind, I should probably answer your questions directly:

Am I too aggressive about the changes which I am proposing?

Have you done something awesome yet, with metrics and examples for how awesome it is? There's an old saying (crass, as it may be)...

Ideas are like assholes; everyone's got one, and they all stink

Go do something.

What should I expect from senior dev leads who have 8+ years experience?

Seriously? You should expect nothing. But try to learn everything they know. Ask questions, privately review their work, listen when they talk and critically think about what they say. They're experience in a box... err... body. Try to open them up and learn. My best friend is a brilliant developer, and I actively tell him that I'm always trying to learn as much as I can from him.

Am I wrong to expect to learn and gain experience from a company?

Absolutely not. That doesn't mean that you can't be learning what not to do. People will make mistakes, learn from your company's mistakes as well as yours.

share|improve this answer
2  
This can backfire if the rest of the team isn't at a level that can recognize your awesomeness, or feels threatened by it. –  user16764 Feb 7 '13 at 23:13
    
@user16764: Could you be a bit more specific of what that scenario looks like? I've experienced both responses, and not all of my awesome solutions were picked up by the team, but never did it 'backfire'. –  Steve Evers Feb 8 '13 at 0:51
    
I tried this when I was in a similar situation to the OP. Afterwards, I was subjected to: a) "what are you doing right at this second" spot checks every 15 minutes, b) 5 minute rants consisting of screaming "YOU'RE NOT WITH US!" over and over, c) being told to shut up (or more specifically, that I was "getting sidetracked") every time I so much as said one sentence, and d) being fired for the reason that "the direction the company is heading in has changed". The fact that what I did was necessary for the delivery was not disputed, but not acknowledged either. –  user16764 Feb 8 '13 at 1:15
1  
@user16764: Did you gather the hard data about how effective your solution was, and get a job with that on your resume? (edit: btw, that's totally f'd up that people did that) –  Steve Evers Feb 8 '13 at 1:21
1  
@user16764: If you can show objectively, with hard facts, that in this particular instance, what you did was awesome, and then people try getting you in line to do what everyone else does, get a new job, seriously. You can't drag everyone else up to life-long learning and excellence, but they sure as hell can drag you down to the opposite. –  Christopher Creutzig Mar 16 '13 at 11:08
add comment

I think you need to get creative. Start asking around for some side project requests that your seniors have been putting off. By working on something independently (or better yet, get another junior dev in on it) and from the beginning, you can apply a lot of the new stuff. Don't be surprised if you find out it's not all for the better.

Another approach would be to do your own code branch and go through a refactor process. I may never make its way into production based on what you've said, but at least you get to improve your skill set.

Who knows, they may see how you're able to make everyone's job easier and they'll embrace the true use of 'laziness' in programming.

If all else fails, put the new skill-set on your CV and start looking for another job.

share|improve this answer
add comment

If somebody is working as programmer for +8 years, it doesn't mean he is a good programmer. What makes good programmer serior programmer in my opinion? It is will to share not just experiences, but also to learn new thinks, techniques, technologies, etc. It is will to get better all the time and improve. Many so called "senior" programmers are stacked in old patterns of funcitonal programming from long gone languages. Something like new concepts and ideas are just not for them, because they don't need it. They got their "experience".

Will to improve and learn is far more important than years of experiences. Junior developer who wants to learn is far more better for any company then old "senior" developer who already "knows" it all.

share|improve this answer
add comment

Do you work at my company?

No but seriously, this seems to be a pretty common thread in many large companies. Change is hard, and EXPENSIVE. Sometimes you don't really know how much until your in the middle of it and its too late to go back.

For instance my company is still migrating from cobol based mainframe screens to java. It is hard to sell someone on Spring or JSF when they are still trying to get their tech up to date with standards from ten years ago. So, I will tell you what I have done that has had some limited success (I'm a jr dev too). Be the example. It's not good enough that you know your more cutting edge, you have to prove it. When everyone else is goofing off bring in a book to read if you have down time. And make it about one of these techs your interested in implementing. If they see you reading it while they are watching youtube (honestly surpised your operations unit doesn't catch that and people get fired) they will be more inclined to not only believe you know what your talking about, but may even ask you what your reading.

As an example I'll tell you about my experience with my senior architect. Smart guy, but generally not interested in new tech. I went and asked him about how to do something in CVS (our version control) and mentioned "Oh ok, I'm used to using subversion, and they do it this way. thanks for your help." This lead to several conversations about CVS and Ant vs. SVN and Maven, leading up to him borrowing a couple of books out of my library to check it out. End Result: we're going to move to the new systems sometime this year. The key is to be open and helpful without conveying that they are doing it wrong. Because after all there may be plenty of better ways to do it but if it is working correctly then they are not doing it the wrong way. Any type of disrespect will land you in hot water in most cases so watch out for that.

If they just aren't receptive, keep in mind that your in a great field that is in high demand. If your inquisitive and a quick learner you WILL find another job, probably one you will enjoy a whole lot more. Which is as important as the money to me. Be sure to mention in any interview, "Oh you guys use xxx technology? That's awesome, I've always wanted to use that and tried at my old company." Poeple love when you have enthusiasm for what they are doing.

share|improve this answer
add comment

I think you are right in your aggressiveness. This is a big pleasure to work with passionated people and a big punishment to work with mentally dead. 8 years of experience means nothing. Of course, you might not been right. Often new technologies are tightly binded with marketing and are not always better. But if you are not right, seniors should explain you where are wrong. Otherwise, you do not get any advantages from your job. Maybe, you are young and hot. If so, this is your advantage. Do not spend your time on job where you cannot grow. Concern to find a new job, where you can discuss your solutions and get feedback from others.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.