43

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,

7 Answers7

29

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.

20

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.

Deco
  • 2,466
11

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.

Steven Evers
  • 28,180
4

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.

JeffO
  • 36,956
1

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.

Adronius
  • 565
1

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.

Sedaition
  • 11
  • 2
0

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.

eternity
  • 129