Rushing into Rails
Thoughts on the ruby on rails market (Chicago): After studying why companies are choosing rails, what I'm realizing is that not everything is being considered. Making a decision on the initial technology/tools for building your product is a huge choice, so why not make an educated decision? Well a lot of companies don't, but then again it's difficult to find full information on this stuff without a consultant like myself.
Rails is GREAT for startups right? Cheap (linux is free and it's open-source), supported (amazing community - especially in Chicago), lots of great built-in features within rails like an ORM, and tools/gems like capybara, RSpec, etc. It's also easy to read, so if someone leaves your company, someone else can pick up right where the former employee left off, and a lot can be done in small, agile teams with full-stack engineers. All great stuff but when companies choose ruby, they're not thinking of what it's like to hire for ruby.
Rather than just choosing the best tool for the job programming-wise, companies need to consider the culture and market for hiring that comes with that decision. Ruby on rails is by the far the biggest technology written remotely. When a company chooses ruby on rails, they must also choose to operate a virtual environment and let people work remotely. If not, in the world of hiring on-site, full-time rails employees, you will probably lose to the Bigs who offer your own personal chef and all these benefits you can't beat (oh, and $150-200k). That's the other thing about hiring for ruby that people tend to forget - it's a free market. There are a lot of choices. The people that choose ruby go through the hurdles of learning a new language (ruby isn't easy to pick up) and they do so for one reason. Supply and demand. When the supply is low and demand is high, price goes up. Just think about how many new training programs for ruby and mobile (iOS/Android) there are. None of these programs teach you C# or Python, so that should say something. Ruby engineers are very expensive, so while it may look cheap, it's not.
You also need to hire me to find these guys, so that's another cost. Not to mention, turnover is 1.5 years in the market, so you need to use me over and over again (yes, I have a ton of tips on how to keep your employees there and my clients do this very well, however that's another article). Ruby engineers already have jobs. They're looking (passively), but they have a job and don't need to leave for something slightly better. What actually happens is that they assess things they dislike about their current environment and convince themselves to take a few interviews and find an improvement on these non-tangibles (culture, commitment to quality software, commitment to best practices, growth within an organization). While money isn't the initial catalyst for them to look, it will be for them to leave. It’s something almost everyone can wrap their head around: You’re comfortable in your seat but a new company wants you. They add an extra $5-10k to your salary. Is that $5-10k really worth the hassle of putting in your 2 weeks, dealing with upset boss/colleagues, doing a huge knowledge transfer, then getting sped up in a new environment, etc.? Most people would say no (plus after taxes, that extra bit isn't a new Ferrari by any means). While money isn't a driving force behind why a lot of people stay at their jobs, or what most people complain about, it IS the catalyst for getting them out of their current, comfy seat and going through the hassle of changing a job. It will also buffer against them getting headhunted easily in the future, and against counter-offers.
These are just some facts about the current market. But every engineer knows things can and will change. The best are diversifying their skillsets to be in demand when the next wave comes along (perhaps functional languages?).
(Sources): I work for a nationwide technology recruiting firm which has individual offices in every major city (pending Dallas and Austin, but that should change) and have studied the consistency of these facts. Chicago, by far, does the most ruby on rails placements and thus sees the most transition data on it.
Director Of Software Development at Tukaiz
10yI can't help but notice the reference to intangibles. Regardless of platform, these always need to be the focus for management. Every senior developer knows that they can be making more elsewhere; you could probably place them in a higher-paying position in less than a week from start to finish. Every senior developer worth their salt knows that the real value of a position is intangible. A team that makes you feel valued and successful; a product of which you are proud and which challenges you; opportunities to learn skills that seem interesting to you. This compensation is very hard for recruiters to identify. While I agree that every technology has its pros and cons, letting the cost of its developers drive your business decision is foolhardy. In the worst case scenario, you can find senior people in other technologies interested in learning the one you use.
Founder / Digital Producer / Entrepreneur
10yGreat write up, Christopher! I can speak to why we choose Rails in the consulting space. Like iOS developers and the better Android devs, Rails developers tend to be very forward thinking, resourceful and capable of delivering loads of VALUE (vs expense) to digital products especially for startups. Most of the Rails developers we come across live for the new, who also have the wherewithal to learn how to write their own APIs and build their mobile dev chops. This kind of thinking is pivotal to our ability to push user experiences and interface design. We find that this service-focused mindset doesn't come as easy in other programming languages. Python engineers tout performance and efficiency but often live in the deep end of enterprise-focused organizations. Php developers tend to be late-blooming WordPress engineers or first tech bubble savants (exception being Toronto and NY ). Every big Chicago firm doing Java or C# is outsourcing at least 50% of the work to India or China. The few good .Net teams left are getting swallowed by agencies or being outsourced. Most of the Node.js guys I know are former Rails/Python guys so they can swing either way. The big challenge I see for brands is the willingness to grow their technical teams. Regardless of your technology choice, if you can provide pathways for your product and investors that results in added long-term value, you are still creating a strong foundation for your business to grow and pivot to meet your goals. We often staff devs on our team from startups so that we can properly onboard them to best practices. A former great Rails shop Obtiva was notorious for helping put the booster rockets on startups. It's why Groupon was able to grow so quickly and why they eventually bought them. One last thing, if you're doing Rails you had better have a great idea for a product. There are benefits to living in what we call the deep end. In this case, scarcity can be a tool for validating your idea. If you can't pay people to work on your idea, how are you going to get others to pay you for your idea?
Vice President at Motion Recruitment
10yWell if we're comparing rails, we would compare to ASP.NET MVC. Ruby, while it's a clean and dynamic language, breaks a lot of traditional coding habits and seems difficult for many people to transition into. C# is less so. Robert Kraig I agree that many rails shops will be transitioning to node.js. Groupon has led the way in this regard. RoR is certainly a fad, but it's here for now and people need to know how to hire for it as there is an incredibly strong market. A ruby developer proves a person more than just someone who can code with ruby. It's a problem solver and someone who needs to know what the latest languages/frameworks are and how they compare. What you find with ruby developers are people who never say "java is the answer for everything," or "everyone will come back to PHP." These engineers seem more conscious of the fact that there are many choices and based on your problem, there are different correct options. The reason you hire ruby developers now is because they've proved they won't be beat and won't stop learning. These will be the first places to move to clojure, elixir and F#.
Sr. Software Engineer
10yI've met a bunch of Ex-PHP'ers turn into RoR enthusiast and the reality is often many of them are just really tired of PHP mostly because of old-frameworks and coding styles. Long story short, rails never solves anything special, usually all it does is say, this group of devs spend a lot of time writing unit tests, locking their code into a process which they really don't understand until they've woven some crystallized code-to-unit-tested mesh which is impossible to tear down without a complete rewrite of not just 3 features, but 200 unit tests which are no longer compatible. You are paying some dude to do the same shit a modern PHP dev would do, but with a different language, and not necessarily any faster. Get ready for the nodejs bandwagon to take all the RoR devs in the coming year if it hasn't already happened. Then we can deal with all the hatred moving forward of how much people hated RoR or nodejs, and they all come crying back to PHP land. LOL.
Rails is actually much more easier than C#. Just saying