Bringing simplicity to large organizations
We worked with some large enterprise companies to develop products using JRuby. Through this process, we’ve helped our client improve their development process and bridge the gap between two traditionally opposed cultures. On one side, enterprises tend to have large teams, their systens need to scale, and tend to be complex and, accordingly, behind the cutting edge by 3-8 years. On the other side, JRuby is elegant, modern, simple, results in the same complexity with more elegance and developer happiness (which in turn produces better work).
We've embedded ourselves in some large organizations to build systems in JRuby. Enterprises tend to favor Java and C++.
Because enterprises tend to be more entrenched in particular processes and systems, they might not be aware of having areas that need improvement. JRuby represents a major change for them, so part of what we do in these cases is educate them about why this is a good solution for them.
Continuous delivery and continuous integration
Continuous delivery allows us to work in a more streamlined fashion. It's the development equivalent to wiring a circuit in parallel rather than in series. We're able to develop, and test quicker and more cyclically than the traditional "waterfall" approach allows, where you have to wait for one phase to complete before another begins.
Enterprises stake their reputations on quality, security, and repeatability; this approach allows us to bring those elements in less time. We are continually checking individual components as they work together, and making sure separate teams aren't diverging. We go through QA, penetration and performance tests throughout the entire process.
JRuby is Ruby written in Java. This means it runs on the JVM, which allows us to leverage existing Java-based infrastructure. It's ten times faster than Ruby, and yet, it's more cost-effective and leaner than Java. JRuby needs fewer developers, so it's the best of both worlds.
Our test-driven approach reduces the development/release cycle. What might take an enterprise a year and a half to two years to develop, we can do in 3-6 months.
Sometimes the simplest solution really is the best one. By working with simpler code, we can use fewer developers, reduce costs for our clients, and do better work for them.
This agility is not only a major step forward in the enterprise world, but its leanness makes it work for small businesses and entrepreneurs, too.