2

Note: My apologies for this question being so long, but I feel it necessary to explain the situation in full detail to provide maximum understanding. There is a TL;DR summary at the end for who just want to know the basics of the question.

Introduction

For nearly three years (three as of July 27, 2014), I have been working as a Web Developer at a small development agency specializing in PHP-based Web sites based in the USA. During that time I have seen our workforce grow significantly from just two developers (myself included) and an owner to five devs, a project manager, a marketing manager, and an account manager for a total of ten people now.

Reasoning

Due to our rapid growth, I see the need for us to standardize our development practices so that our code is consistent and well-maintained no matter who writes it or what project it is written for. To that end, I want to come up with a proposal to start using the FIG Standards (mostly PSR-2) along with parts of the (PHP QA Toolchain)[http://phpqatools.org/]. Another area that I want to see improved is our usage of Git to manage our source code which includes changing to a better host with more code collaboration features and placing any and all work under version control.

Roadblock

The problem with just going to the owner to discuss these changes, however, is that my opinion seems to carry no weight as my suggestions and concerns are almost always ignored. Unfortunately, there is a more senior developer in the company that has been there longer than anyone else excluding the owner (around seven years) so he always has the owner's ear for everything and therefore has the last say.

Example Conflict

In March of 2013, I began a push for our company to adopt Git as a standard for maintaining our source code - we had been using SVN here and there because that is all the owner knew. After about six months of pushing, I finally got our then project manager to finally entertain the idea. Another month went by before he even considered bringing it up to the owner. The senior dev caught wind of it and was vehemently opposed to using Git because he did not know it. Instead, he either wanted to continue using SVN or start using Mercurial.

To resolve this issue, the pm asked us both to create an outline of the reasons and benefits for our chosen system as well as disadvantages and comparisons. We both submitted our proposals fairly quickly (within 1-2 weeks), but we had to wait another two months before he made a decision. He told the owner that we needed to switch to Git because it is industry standard and then presented him with my outline. Because the idea came from a member of management (the pm), the owner finally agreed to it.

I was quite happy to hear this, so I gathered all of the notes, research, and ideas that I had been developing for the prior nine months into an implementation plan. My hopes were crushed, however, when I went to present that plan to the pm and owner. Unbeknown to me, the owner had already asked the more senior developer to come up with his own plan for implementation which I had very little feedback on. As a result, we are barely using a repository host that has very few features and costs way more money than the host that I chosen in my plan. By "barely" I mean that less than 10% of our projects and the code we write for them is version controlled. This is definitely not how I wanted to see this happen - we need to be at 100% in my opinion and anything less is a liability because of the thousands of dollars that we bid for our projects.

Summary

Unfortunately, the project manager, who was my best advocate, is no longer there and the new one seems to be ineffective so far at getting things changed. I am likely going to have to go straight to the owner if I want anything changed, but I am afraid that he will not listen to me. I tried to discuss my ideas with my fellow developer, but he completely brushed me off by saying that he "does not care and does not want to talk about it."

How do I best bring my ideas to the table and at least get a discussion started? Should I try going through the new project manager, or try going directly to the owner? If I go directly to the owner, how I can I get him to listen to and respect my thoughts?

TL;DR

I want to start implementing some new policies at the development agency I work for, but my ideas are not respected and often ignored or handed to someone with more seniority for a half-assed implementation. How can I present my thoughts in a convincing-enough manner that will at least be entertained and discussed?

Edit

I was just thinking more about this situation as I was doing the dishes and I came up with what I believe to be the root of the problem: The owner is so afraid to lose the senior developer, so the owner listens to anything he has to say to keep him happy. The senior developer, though, is so used to doing things his own way that any change is likely seen as "why bother, it works for me" or maybe even perceived as a threat. I fear that this attitude will hinder our growth and make it harder for us to collaborate as a team.

Solution

I have drafted a document containing my suggestions and the rationale behind them. I am going to e-mail it to our new project manager, the senior developer, and the owner later today. I figure it is probably best to hit all three targets rather than focusing on a single individual. Hopefully someone will listen to what I have to say and open up the discussion.

  • 4
    Speaking to your example conflict: perhaps some things don't need to be changed? I mean, if SVN happens to be partially working for them (even if they suck at using it), why would a switch to the trendy git be a change for the better? If anything git is harder to use, harder to conceptualize, and most importantly at the end of the day it is just a tool for source control. – teego1967 Jul 12 '14 at 20:40
  • 2
    Be careful to make sure you're advocating Git for inappropriate reasons. It's a popular solution, yes, but in practical terms it's not really better enough to justify a migration assuming that you are already using a reasonable version-control solution like SVN. If your advocacy of switching to a specific version-control technology comes off as religious/fanatical, that could be behind the senior dev's dismissive attitude. That said, should all work be done under version control? Absolutely. I can't imagine any senior dev arguing otherwise. – aroth Jul 13 '14 at 0:56
  • Edit: Insert a 'not' before 'advocating' there. – aroth Jul 13 '14 at 1:26
  • 1
    I am hearing you say the words "I" and my" a lot. Instead of trying to impose "your" plan on everyone I think you need to learn to collaborate better with your team and build more trust and credibility. – Christopher Barber Jul 13 '14 at 4:27
  • teego, aroth: the reasoning behind the push for Git was because of its better features (mainly branching and tagging) and not so much about fanaticism. – MagentoDev Jul 13 '14 at 16:42
3

I am afraid that you are banging your head into the wall: the senior developer - effectively the CTO, is not listening to anything to say and the owner defers 100% to the developer.

You caught a break when the PM was around and could advocate for you but unfortunately, it would have been a case of the light at the end of the tunnel coming from an oncoming train. Because the senior developer, if given the responsibility to implement the plan, would have set up the implementation for failure - and the only question up for debate would have been whether he did it deliberately or not.

The rule of "do not ascribe to malice what could just as easily be attributed to stupidity" is of no relevance because the outcome would have been the same: a good change idea doomed by poor planning and execution.

Further, I expect that the senior developer is busy dissing your idea to the owner, conflating poor planning and execution with poor concept. I don't expect that your career will be helped by such a move.

I don't expect you to make a dent in the way the software engineering is managed at the firm, unless you manage to convince the senior developer that your idea is his idea and unless he sees you as a partner he can rely on to make the change happen, with you receiving little to no credit for it. And that's easily the most important part: that you get little to no credit for whatever you do.

I hope they pay you well for showing up to work every morning, and that they otherwise treat you well.

  • Thank you so much! I think your answer explains exactly why this happened. – MagentoDev Jul 13 '14 at 16:37
3

You have done just about everything right in your work to implement change in this matter. You came up with an idea; you built a business case for it; you secured buy-in from a member of the management team; you patiently waited for the idea to be approved.

And now you're discovering how hard it is to do a good job of implementing change. Rationality is rarely the driving force. Instead, egos and relationships are the driving forces. This is the reality in $500 projects and $500 billion projects both. (Look at the US weapon project called the F-35 for example.) Human systems like companies resist change; they coalesce to prevent change. And now you have had first-hand experience of how these company antibodies work: they glom on to good ideas and weaken them. Often the harder you push for change the more powerful and irrational the company antibodies become.

Your professional attempt to implement change is incredibly valuable career-building experience, even if the change did not happen effectively.

At this point you should decide whether it is worth your trouble to keep trying to implement this change in this company. Possible choices:

  1. back off on your pressure. give the change time to take hold.
  2. move to another company like your project manager did.
  3. keep pushing, using rationality, to promote your idea.

At any rate, be patient. Be prepared for the long-tenure developer to say, "hey I have an idea, why don't we use a good Github server and put everything we do into it!" When he says that, don't say the truth ("that was my idea!"). Say, "good idea!"

  • Ollie, thanks for the wonderful reply. You are spot-on, which is I why I have a hard time not giving you the answer for this. @Vietnhi's answer, though, better explains the "why" of what happened. – MagentoDev Jul 13 '14 at 16:36
  • @MagentoDev Ollie and I are a pretty good team. He most often - but not always, haha :) - gets it better than I do. We don't see things the same exact way, but that's the whole point of us being different people with different life experiences and different insights :) – Vietnhi Phuvan Jul 13 '14 at 16:45
0

Defining the new policies is obviously not your responsability.

It was good that you had the initiative to propose them, but do not take it as a personal insult that they are not followed. In that aspect, an statement like "If I go directly to the owner, how I can I get him to listen to and respect my thoughts?" might be undesrstood as saying that you only feel respected if they follow your ideas. That would be a very bad attitude.

So, first of all, take a deep breath and relax. If after all, you still think your ideas have merit, go to that senior developer (who is the person who can change your boss mind) and talk to him. Since he has a technical background, you can discuss your different opinions in a strictly technical plane and try to convince him of the merits of your idea (and conversely, he might be able to convince you of the merits of his ideas).

If you do not agree and he does not change his mind then, well, you did all that was in your hand.

If you convince him and he goes to your boss saying "hi boss, MagentoDev has some good ideas that we should implement", then it is a good thing.

If you convince him and he goes to your boss saying "Hi boss, I have some great ideas that we should implement" then it is a good thing, too (because your ideas get to be implemented, and that is all that you want, right?)

  • 1
    Thank you @SJuan76. I was not saying that listening to ideas = respect but it does go a long way toward that in my opinion. As I mentioned, I already to go the senior dev unsuccessfully: I tried to discuss my ideas with my fellow developer, but he completely brushed me off by saying that he "does not care and does not want to talk about it." – MagentoDev Jul 12 '14 at 16:37
  • Missed that part, sorry. Then your options are either: 1) make a report stating your alternative (mostly chart comparing costs, followed by an statement saying that you alternative offers the same functionality than the other) and send it to your boss, 2) look for a new workplace, or 3) lay down and let the planet disolve. If you do 1), I would start doing 2) just in case. See it from boss POV, he has been following the senior developer's technical guide and so far things have worked, so he must have solid arguments to go against his opinion. – SJuan76 Jul 12 '14 at 16:49
  • Defining new policies is everyone's responsibility. The level of collaboration that exists in terms of determining the best way to run the business is inversely proportional to how dysfunctional the business is. A business in which the people at the top see themselves as gods and dictators has extremely dysfunctional management. – aroth Jul 13 '14 at 0:49
  • 1
    @aroth do you even know what a business is? Your responsabilities are what your boss (representing the business) tell you that your responsabilites are. In fact, stabishing policies is one of the main functions of Management (another issue is the level of employee input they are willing to accept). The OP did have initiative and did a sound (or at least he thinks so) proposal. Good for him, seriously. But turning an initiative in a personal issue because the people at charge did not listen to him?He may chose the risky path and push the issue, or just relax and do the work he is paid to do – SJuan76 Jul 13 '14 at 15:54
  • @aroth I wholeheartedly agree with you, but I think that is too idealistic for the reasons that SJuan76 pointed out. – MagentoDev Jul 13 '14 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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