Driving Faster Time to Market, Productivity and Competitive Edge: RealNetworks
RealNetworks, Inc. delivers digital entertainment services to companies and individuals, allowing them to consume music, video and games over the Internet. RealNetworks introduced the RealPlayer, the first mainstream media player, as well as the Rhapsody digital music service, which provides more than 1 billion songs per year to RealNetworks customers through a subscription service, without paying per track.
The applications designed by the RealNetworks development team are the core business of the company. Functionality, performance, and ease of use are the reasons customers choose RealNetworks products and services. Consequently, application development is a mission-critical operation and directly impacts RealNetworks’ leadership position in the marketplace.
Challenge: Legacy Framework Complexity Impacts Business Results
“Performance of the application is critical to keeping RealNetworks customers happy,” explains Paul Davis, Lead Software Development Engineer at RealNetworks.“This is a subscription business, and if our customers are not happy, they go away.” Prior to using Spring, Davis relied on an in-house application development framework built and maintained by the RealNetworks development team. This presented several challenges to RealNetworks, hindering the development of top-quality applications.
“The old framework involved a huge amount of development effort,” Davis recalls. “It was really showing its age. We had problems maintaining, supporting and updating it. It was getting to the point where we were spending more time trying to maintain the application development platform than building applications on top of it.”
With developer turnover and 20 different teams operating independently, complexity crept in and lead to unreliable performance, quality issues, poor documentation, lengthy release cycles, testing backlogs and increasing pressure to get more applications out the door.
Solution: Spring Framework Provides Greater Developer Productivity
Now, several development teams at RealNetworks, including the team run by Davis, build all applications on Spring – the leading platform for productive development of simple, portable, fast, and flexible JVM-based systems and applications.
“Broad global use is the major reason we chose Spring over other options,” says Davis. “The wide adoption gives us great confidence in Spring, and the applications we build on top of it. Everything just works. We don’t spend a lot of time struggling with the system. Now, instead of spending all our time maintaining the old infrastructure, we can focus on building applications.”
Davis also finds that Spring empowers developers to write cleaner, more maintainable code, which results in superior application performance and fewer problems. “Spring promotes a better development style,” he continues. “Spring’s dependency injection makes it easier to develop interface-driven code, and the code is in small modular pieces which is easier to test.” This also positively impacts the team. “The difference in morale is night and day,” Davis says. “Productivity is greater and the quality of the applications we are building is much better – because we are using Spring.”
Business Benefits: Faster Time to Market
“The overall development time is much quicker because we don’t have to worry about dealing with infrastructure issues,” Davis adds, explaining that his team can get more applications out the door faster. Spring facilitates automated testing, which accelerates time to market on new applications. Previously, application testing could take as long as month, but with Spring it only takes a few days. “We used to have four or five people testing the application for several weeks,” Davis says. “With Spring, we just push a button.”
Increased Productivity, Cost Savings and ROI
“Spring requires less manpower on projects, and manpower translates into money,” states Davis. It helps make every part of the development lifecycle more productive. “Spring makes interface-driven design easier,” explains Davis. “Parts of the application can be built in parallel, and the application is easier to test. The ‘pluggability’ of various components and the ease that aspects can be applied allow many capabilities – such as transactions and caching – to be transparent to the application code. This means the code is cleaner, simpler and easier to maintain.”
Less Complexity, Better Quality and Improved Customer Satisfaction
“A side effect of using Spring is that people tend to write better code,” Davis says. “A good development platform is going to influence the way you write code, and because Spring makes it easier to use small modular chunks and plug-ins, our developers tend to write that style of code. Smaller and simpler code means better quality applications that are easier to maintain.” Application quality and performance is critical to customer satisfaction, especially in a subscription business, and Spring supports this vital objective.
“Innovation of new capabilities is critical to the success of the company,” Davis states. “Because Spring saves us time, it enables us to develop more features for our applications. In addition, the modular way applications are built in Spring makes innovation easier and gives us more freedom and independence to experiment because the risk of causing side effects is much lower. If someone has an idea, we can just plug it in and see how it goes. If it works, we leave it in. If it doesn’t work, we simply remove it. We don’t have to worry about any negative impacts to the application.”
Reduced Training and Ramp Up
For job postings, Davis lists Spring as a job requirement. Because it is so ubiquitous, he can easily find new developers with Spring experience. “Prior to using Spring, we averaged from three weeks to a month for a new developer to ramp up,” Davis remembers. “Now, a new developer usually gets started on application development on the first or second day.”
With Spring embedded in the development process, the business delivers more engaging, higher quality capabilities to customers without wasting time and money on unproductive development tasks. At the end of the day, Spring helps RealNetworks innovate and grow in a competitive market
To learn more about our products, services and solutions, visit our Spring page.
- Legacy code prevents business results, limits software engineering ROI
- New product release timeframes hindered by complexity
- Expensive, inefficient, ineffective software development lifecycle
- Difficulty ramping new developers
- Spring Framework
- Greater productivity and faster time to market – reduced time to test applications from one month to days
- Cost savings and ROI – reduced costs on platform and application development, testing, maintenance, support, upgrades and training
- Less complexity, better quality and improved customer satisfaction
- Greater innovation – increased experimentation with less risk
- Reduced training and ramp up – cut time to developer productivity from one month to one day
“Spring requires less manpower on projects, and manpower translates into money.”
— Paul Davis, Lead Software Development Engineer, RealNetworks