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.

I started my new job as a JS developer in November and starting implementing Backbone pretty soon after. This was a big enough learning curve for the team (me included), however I'm thinking about looking at CoffeeScript, which I'm guessing would require everyone on the team to know it? Is that too big of an ask, just to make me slightly more productive?

share|improve this question
3  
Well, what did the other people on your team say? –  user16764 Feb 19 '13 at 15:15
    
@user16764 "I'm thinking about looking at CoffeeScript" - it's all hypothetical at the moment! –  benhowdle89 Feb 19 '13 at 15:20
1  
Why does taking the productivity hit associated with changing frameworks have an acceptable cost within your organization? Do you have to give a business, dollars and cents, reason for this change, especially since it would be the second one within a year? –  jfrankcarr Feb 19 '13 at 15:30
2  
Why? What is it about CoffeeScript, that you think will make you or your team more productive? –  back2dos Feb 19 '13 at 15:53
    
No, cruel and unusual punishment is illegal. –  mowwwalker Feb 19 '13 at 17:30
show 1 more comment

5 Answers 5

Introducing new skills and technologies should be a team decision. Your team needs to maintain your code if you are off sick, leave, or get hit by a bus. What does your team say? I have lost count of the number of projects that have been expensively damage to the point of needing a rewrite by some maverick introducing his favourite technology that no-one else understands, so make sure you are backed by consensus.

share|improve this answer
3  
Hm, introducing CoffeeScript to a web development team isn't exactly the same as introducing any other technology. A web development team is (or at least should be) already familiar with the compiled output of CoffeeScript. –  Yannis Rizos Feb 19 '13 at 14:02
4  
@YannisRizos They may be familiar with the compiled output of CoffeeScript, but that's not the same as familiarity with CoffeeScript itself, which has it's own syntax and conventions that have to be learned in order to maintain code written in it. I'd say it would fall squarely in the "new technology" category. –  Eric King Feb 19 '13 at 14:42
2  
@YannisRizos "The compiled output of CoffeeScript" is not what you're asking your fellow developers to maintain. It's the source CoffeeScript. –  Tim Feb 19 '13 at 14:51
3  
@Tim Hm? Why? Worst case scenario (you get hit by a bus), your team just compiles your scripts, and then replaces them with the JS output. Simple as that, and all they have to maintain from now on is vanilla JS. There will be a small learning curve, but we are talking days, not weeks or months. –  Yannis Rizos Feb 19 '13 at 14:55
2  
@YannisRizos I understand what you're saying... It's like using Resharper to help write .NET code faster/better. Just because one person uses it doesn't mean everyone has to. But still, the answer is exactly the same. Before going forward with using CoffeeScript-generated javascript (or Resharper-refactored code), ask the team how they feel about it. They may not care one way or the other, or there may be serious misgivings. There's no way to know without bringing it up. –  Eric King Feb 19 '13 at 15:28
show 8 more comments

It's all about how it is done, and what your team is like.

A really smart technical team embraces change and doesn't care who introduces a piece of new technology so long as it helps of course.

The flip side is that is very often not the case.

Being the new guy can work against you ("who does this guy think he is?").

Not being a "lead" can work against you ("he can't tell us what to do!").

share|improve this answer
1  
"so long as it helps of course" is the key here. Especially as we are talking about a language switch, from a high-level language to another high-level language. It will be hard to prove CoffeeScript would help. –  Niphra Feb 19 '13 at 14:51
add comment

When working with good teams it is totally fair to introduce technologies to the team as a whole with a bit of a "Lunch and Learn" or some other format where you can go over the good and bad. Then one must let the team decide if this is a proper thing to use or not. It never works well to force a team to adopt a technology, doubly so when they are not ready for it.

If you are the team lead, or senior developer, or in any kind of leadership role, this is much more important. It can change how your team views your leadership abilities. If you introduce CoffeeScript as something that might be very useful, and demonstrate why and you can answer any questions they have and most importantly be ready to mentor and work with them then go for it.

Worst thing you can do is say, "Here is CoffeeScript. We are going to use it. It is very powerful and it will make your life easier here." and then not explain to them why, or how or even let them take the time to come to that conclusion themselves.

share|improve this answer
add comment

How will introducing Coffeescript save/earn your employer money? If you can come up with a realistic answer to that then suggest it to your team. Your CV skills do not appear on the company balance sheet.

share|improve this answer
add comment

For introducing a new technology, you will want to get some buy-in. It should help the entire team in its implementation. Shoving it down people's throats will cause them to keep it from being successful.

Is that too big of an ask, just to make me slightly more productive?

So you become slightly more productive, what are the benefits for the other members? Will they become more productive? Will the quality of the product that they are producing be better?

Do you have buy-in for implementing this from your customers/management? Will they accept a slow down in productivity while the team learns a new technology? What are the benefits for them? If you just implemented Backbone, they might not be as patient for another change.

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.