Taxi Magic

taxiHeader

Taxi Magic provides technology solutions to top transportation providers and over 20,000 dispatched taxis across the U.S. The company is leading the technology revolution to modernize and transform the taxi industry.

Challenge
Find and fix the software glitch causing intermittent outages in the online ordering system for one of Taxi Magic’s most valuable clients
Taxi Magic’s unique software is used by 85 taxi fleets in 45 cities across the United States, with new fleets coming online every day. Taxi Magic’s software provides riders with a free electronic booking app to schedule taxi, limo and sedan services with providers who subscribe to Taxi Magic’s service. Riders can book a taxi in seconds using the Taxi Magic application on their smart phones, via text message, or online, and track the arrival of their taxi. They can even estimate the fare and pay directly using online and mobile devices.

Solution
Repair the problem code, add diagnostics for future problems, and plan upcoming improvements to strengthen the overall reliability of Taxi Magic’s software
Fairway responded to Taxi Magic’s request for assistance by designating its Director of Software Engineering – who has in-depth knowledge of C++, the language used for all Message Center development – to lead the project. Fairway’s approach to resolving the software glitch began by understanding the architecture of Taxi Magic’s Message Center Software. In doing so, Fairway discovered that the core software problem stemmed from instability in the Message Center application. This application was originally written in the early 1990s and had grown organically over time without a clear plan for a clean software design. Over the years, the source code for the Message Center had been cloned and modified multiple times for each client resulting in over 20 unique copies of the code. Focusing on the intermittent service issues affecting Taxi Magic’s valued client, Fairway turned its attention next to the unique codebases for the client’s software.

Fairway discovered error-prone coding practices related to multi-threaded processing of data coming in over a socket. To resolve this, Fairway put in place code fixes and added significant amounts of logging using log4cpp to help diagnose the root cause of potential software failures in the future. In addition, Fairway added the ability to configure the application to run in a variety of modes allowing for the gradual elimination of the multiple copies of the codebase. This would allow bug fixes, the addition of new features, and additional logging to be added to one set of code rather than many, resulting in easier maintenance and a more robust system. Because the Message Center application was older, it required the use of a Windows XP virtual machine and Visual Studio 6 in order to successfully build and run the software. Fairway used the log4cpp logging framework to add logging statements throughout the code.

Fairway also wrote a custom application properties library to control the logic. The library’s logic was based on the mode the application was running in so that the unified code could mimic all 20+ original codebases. Fairway also helped identify a strategy to improve the overall functionality and reliability of Taxi Magic’s software going forward. The next goal is to unify the 20+ codebases into one unified codebase in order to pinpoint which code is common to all clients and which code is unique. Fairway completed the bulk of the foundation work to support unifying the various codebases. The work in progress was well documented by Fairway and handed off to a Taxi Magic software engineer.

Benefits
Fairway Technologies helped Taxi Magic provide a quick resolution to the performance issues experienced by its valued client. Upon release of the new version of the Message Center written by Fairway, the instability stopped and the application ran without issue. Thanks to the foundational work completed by Fairway, Taxi Magic will have the option to rewrite the Message Center app to include a suite of automated tests that will verify correct core and client-specific behavior when future rewrites occur.

Additional benefits of partnering with Fairway on the project include:

  • Preventing Taxi Magic from having to hire staff with the expertise required to resolve this short-term problem
  • Providing a fast remedy for Taxi Magic’s most pressing issue by resolving software performance issues for its valued client
  • Uncovering one of the root causes affecting the original codebases
  • Laying the foundation for future improvements to enhance the software’s reliability
  • Creating documentation to enable Taxi Magic’s in-house staff to move forward with the project on their own timetable, working within their budgetary constraints
  • Establishing a relationship between Fairway and Taxi Magic which ensures that Taxi Magic has a partner they can rely on for future projects