10 February 2018
The Development Team found itself having legacy modules developed in Ruby script. These modules would rapidly render dynamically changing web pages into static html to provide the fastest possible page responses to consumers.
We determined that the client was happy that the code was working satisfactorily and did not seek to replace the modules or replicate the functionality in a different language. However, they did not have in-house Ruby skills to test or develop any modifications or enhancements to the modules. As part of their continued portfolio of code they wanted to ensure their own developers would be capable of ongoing development. Bringing in contract staff for additional development was discussed but the client recognised the value of having the skills embedded in their own permanent staff.
We identified a need to focus on Ruby fundamentals and advanced topics, with emphasis on TDD techniques to ensure future changes would not impact on current functionality and would provide suitable test coverage for developed code. There was clearly no requirement for full web frameworks such as rails.
On-site training was explored but it was determined that an off-site (i.e. JB International offices) classroom would offer the advantage of focus and immersion in the new material without day to day issues or tasks intruding on the students. In consultation with the customer JB International developed an outline setup guidance for students’ laptops, and fifty pages of detailed course notes.
The course was provided over three days to 12 of the client’s developers, presented as 1/3 lectures and presentation and 2/3 practical exercises. Class progress was reviewed at the end of each day with the client’s representative, and the following day’s classes were adjusted to focus on knowledge areas thought to be most beneficial based on the class students’ explored capabilities. This flexibility was possible because JB International was able dynamically to provide additional training lessons, handout material, and exercises to address requirements.
Class students were left with a stronger and more in depth understanding of Ruby as implemented in their own modules, and with knowledge of how to improve test coverage using Rspec and how to enhance and extend existing code, using test driven development to ensure the code was resilient and worked to specification and requirements were covered. The students learned Ruby’s implementation of object oriented development, how to create light web frameworks using Sinatra and how to use Ruby’s benchmarking features to identify the most performant solutions.
For more information, see our Ruby Training Course outline