16

I'm working at a company that is slow to embrace new technologies and best practices. I worry about this, because I was given the green light to rewrite a large part of the codebase in the current version of one of the the languages we use (Actionscript 3). The rewrite was largely complete a couple of months ago, but I am still the only person who has touched it.

I periodically send out links to blog posts and articles that touch on some of the concepts I've incorporated that I haven't seen evidence of in the existing codebase. I usually receive absolutely no response from these attempts, so I have no idea if the other developers are poring over the links with interest, deleting them unread, or what. I don't want to look like a know-it-all, but I also feel like there is a lot of foundational knowledge that I'll need to provide for them before they can use the new system.

We're all remote, so I don't know my coworkers as well as I'd like. In a good month, we meet once a month and the meeting is usually scheduled to the hilt, with no place to discuss things like adopting better practices. Ironically, I feel like we'd have more time/room to discuss such practices if we would adopt more of them. However, it's difficult to bring this up without sounding like I'm criticizing the developers who have been there longer than I have.

I guess the small question is: should I take the complete silence when I send links as a hint and stop doing it? The larger question is, what's a tactful way to educate the rest of the team in concepts I feel are important for them to know to build code that we can all work in efficiently?


Edit to respond to question: I usually email the entire team, so as not to be singling out a particular person. I might IM the link if there's some reason it's specifically of interest to that person. I'll usually send out links as I find them, and this will vary in frequency from once or twice a week to once a month (probably an average of once every two weeks or so).


More edits to address the questions about the types of links I send out. (I tried to keep this more of a generic question, so that it could be useful for others, but let's make this "about me" ;)

  • For example, after the meeting where I pitched fr being able to rewrite the codebase and got the green light, I sent out a group of links, mostly from my archives at O'Reilly, that offered foundational principles that I'd be building upon.

  • In the old codebase, when I got tired of doing screen captures of the menu for the part of our instructions where we walk them through what the parts of the Assessment are, I rewrote the menu so that it could just be used in the walkthrough (with the added benefit of allowing cool animations during the walkthrough), and summarized what I'd done, how to use it, and how it saves time (you don't have to redo the screencaptures and replace the old ones every time the menu changes, which happens a lot).

  • I was talking to another dev on an IM, and asked rhetorically "Have you ever heard of the Single Responsibility Priciple" (expecting "yes, but I didn't use it here because..."). When he said no, I sent him a link to the Wikipedia definition.

  • We have a lot of pressure from our customers to move to HTML5. When I returned from a recent JavaScript meetup, I posted a link to ToDoMVC with the comment "This site provides implementations of some of the major JS frameworks, which could really help us decide which Framework to use."


Final edits. I want to thank everyone that responded. I don't think I can mark any of the answers as "correct," because I didn't get an "aha!" out of any of these. The best suggestion, I think, came from Matt's comment that maybe it's time to take the bull by the horns and ask to be team lead. But it's not an answer, so I can't mark it correct.

Amy Blankenship
  • 8,229
  • 1
  • 24
  • 39
  • 1
    The impression I get is you are emailing random links out to your coworkers without any context/descriptions attached. – enderland Oct 15 '12 at 22:57
  • 2
    It varies. I will say that I put less effort into providing context now than I did at first--just a sentence or maybe the summary will be the email title. At first, I did more, but my motivation level has fallen. My boss has supported my doing this (to me) but I don't know what he has said to others. – Amy Blankenship Oct 16 '12 at 01:22
  • 1
  • This is a really poor title for this question. You've basically set-up a mailing list without having any way for colleagues to opt out or in. That's not just "sharing a link". – Lilienthal May 13 '16 at 12:04
  • Thanks for leaping forward with this timely comment. Do you really think that at the workplace when someone sees a link that they think will help you do your job better, there needs to be a formal mailing list to help that happen? And then the opting out needs to be more complicated than just deleting unread? – Amy Blankenship May 13 '16 at 14:55
  • 1
    FWIW, the people who never wanted to change anything are still doing what they were doing then (Flash and ASP classic), and I'm leading the HTML 5 team, which is made up of all new people. So. – Amy Blankenship May 13 '16 at 14:57

7 Answers7

24

I strongly dislike receiving emails from colleagues that aren't strictly about our work, however interesting or useful they might be, and I would go absolutely mental if someone interrupted me by sending me a link via IM. That might just be me, but the lack of response from your colleagues probably means that they aren't exactly enthused about it as well.

On several teams I've worked with I was (sometimes officially, others unofficially) the researcher of the team, and part of my responsibilities was to dig up anything new and cool we could use in our codebase. From my experience, what works best is a casual, in company blog. Every time you find something you'd like to share with the rest of the team, write a somewhat comprehensive article about it, don't just post a list of links without context. It doesn't have to explain the concepts / practices / technologies / tools in depth, but its essential that you point out clearly how whatever you are talking about applies to what you or your team works on at the moment.

You could start with the rewrite, write a series of small and casual but comprehensive articles on what new things you introduced to the codebase, what decisions you made and why, discuss challenging issues you faced and how you overcame them. Show real examples from your codebase, point to actual tickets in your issue tracker. In short: context.

At the end of the day your colleagues may still ignore you. But this time it won't be because you're spamming them, and you'll have excellent documentation of your thought process and progress of your skills.

yannis
  • 5,314
  • 7
  • 41
  • 70
  • 5
    It's not just you. – pdr Oct 15 '12 at 23:42
  • I think your answer would be more helpful if it addressed the mechanics of how to get a blog instituted on a team that's so slow to embrace new technologies, especially if it considered the issue of how to broach the subject without ruffling feathers. I actually have done quite a bit of documentation and have also sent out emails directly related to code changes (to the old codebase), to a similar lack of response. – Amy Blankenship Oct 16 '12 at 00:43
  • 1
    @AmyBlankenship The thing is, every time I was involved in a team that was slow to embrace new technologies, there were other underlying problems and their unwillingness to learn new things was just a side effect. Organizational issues, management issues, salary issues, nepotism issues etc. Programmers typically are always eager to learn new things, and although I have absolutely no idea what's going on with your team I suspect deeper issues. – yannis Oct 16 '12 at 09:58
  • @AmyBlankenship The only way I, as a senior developer, found to talk about these issues with the rest of the team was to take them out for a beer and get everyone gloriously drunk (When I invited them I said beer, but after a couple of hours at the bar I took out my secret weapon, tequila ;). It's a very tough situation to be in, and I honestly don't have any better ideas on how to deal with it. – yannis Oct 16 '12 at 10:01
  • 1
    @YannisRizos, someone named Amy is not likely to be able to ask the group out to get drunk, that would be interprerted far differntly for a woman to ask than a guy. – HLGEM Oct 16 '12 at 21:41
  • @HLGEM That's probably true, sadly. And inviting the team out for drinks won't work for every team, obviously, regardless of who invites them. – yannis Oct 16 '12 at 21:49
  • +1 For honesty, even if I disagree with you. I enjoy receiving interesting emails. – geekrunner May 07 '14 at 22:46
5

Some key questions which spring to mind here -

  1. Why are the team slow to adopt new technology?
  2. What is wrong with what they are currently doing, how is it harming the business?
  3. How will adopting new technology make each individual's job easier? Not in a fluffy nebulous way, but in specific, tangible, measurable ways?
  4. "best practises" - according to whom, specifically? Who says the 'best practises' are better than the current approach the team uses?
  5. In a nutshell, think from the individual team member's perspective "Why should I change? What's in it for me? How will it make my life easier?"

Question 5 is the KILLER - you absolutely must address that above all else, otherwise no matter how good your intentions, the team are not going to be motivate to make any change - why should they if it doesn't make their lives easier or better in some way? And it's not enough just to say "It'll make your life easier/better/whatever", you have to show clear, concrete, specific ways in which it will achieve this, with real reasons and evidence to support those claims.

There's a whole host of other considerations as to how one goes about this, of course. For example, one needs to avoid simply telling colleagues "You are wrong, you should do it this way", that is the quickest way to get them to ignore! People need to have a reason to change the way they do things, "It's the latest way / some researcher says it's best practise" is not a reason.

Introduce changes slowly and gradually - build up trust so that over time people will come to think "Hey, Amy knows she's talking about, that last change really helped me - I wanna listen to her more often".

Thinking about the articles you send out - do you give a summary of what the article is and why it is relevant? Or do you just say "Here's a link to an article about Actionscript 3 best practises" (for example)? If the latter, it's pretty much a dead cert the recipients will bin the email - we all get a ton of emails and RSS feeds and journals and info as it is, someone telling me I need to read an entire article but without explaining why I would benefit is not going to get me to read it. Give a very very brief summary, engage interest, let me see why I will benefit from spending my time reading it, and I'm there; tell me "This is interesting / you should read this" and it'll get binned.

  • I could only give my opinion, which may not match with their perception 2. It's spaghetti, and it takes too much time to maintain 3. I'm not sure it would, we get paid more when we're heroic & put in lots of hours 4. Things like "loose coupling", DRY, etc. Basic stuff that should be taken as read. 5. The incentive is for them not to change, as long as they have this job. But what if something happens to my boss, the owner? I know what interviewing is like in this market, and I think they haven't interviewed in 10 years or so.
  • – Amy Blankenship Oct 16 '12 at 14:08