Code review enables growth in performance and delivery

Code review enables growth in performance and delivery

Detailed code reviews are a necessary part of the software development process. A successful review helps decrease this cost by producing systems that are easier to understand, debug and maintain.

Challenge

A leading provider of advanced network software requested Erlang Solutions to do a code review of an existing application written in Erlang. The application forms a strategic part of their business, but they had been experiencing some difficulties:

  • Adding functions was very difficult because of the way the system had evolved
  • Resource-hungry – because of inefficiencies in the architecture, the system was very demanding in terms of processing and storage
  • Productivity – the lack of documentation, testing tools and well-structured code was making it difficult to implement changes and improvements

Procedure

The review was done at the Erlang Solutions office in Krakow, Poland. The customer sent a snapshot of the Erlang code to Erlang Solutions. When the analysis was complete, the reviewer at Erlang Solutions prepared a detailed report and travelled to Boston with the report and spent two days at the customer’s offices to deliver and present the code review.

The main body of the report contained an analysis of selected sections of the code and offered suggestions as to how it could be improved. The review found that the code existed as a large, “monolithic” block that would perform better if reduced to smaller functional components. This would also make it easier to modify in the future.

During such a process of refactoring, the code style would also need to be addressed, correcting several instances where OTP implementation needed to be improved. In addition, the system would benefit from being profiled, in order to assess any through-put bottlenecks with the new configuration.

Why Erlang

  • Erlang provides what many other languages can’t: scalable concurrency and reliability.
  • Its support for concurrency is one of Erlang’s main strengths. It can handle millions of individual processes without performance degradation.
  • Fault tolerance, scalability, transactional integrity, and hot-swapping are all built in.
  • Use Erlang to improve time to market while saving money.

Customer benefits

  • A lot of the work that the customer had anticipated would need immediate action was no longer necessary, as Erlang Solutions had addressed those issues.
  • The customer effectively leaped six months forward in their development schedule.
  • While the code reviewer was there, the customer had the opportunity to ask his help in addressing some issues, and to give his expert opinion on some of their own ideas on improving the system.

Customer Data

  • Industry sector: Service provider network resource management
  • Turnover: USD 16 million
  • Employees: 25
  • Type of business: B2B

Technical Data

  • Programming language: Erlang,
    Python
  • Development environment: OTP
  • Database: Mnesia, PostgreSQL
  • Project management: DSDM Atern