Friday is usually my slow day at work. The pace is usually just a little slower and it seem to usually be filled with irregular work. People are completing task they need to complete before the end of the week. This is also a good time to put everything in order, fill out time sheets, clean your desk and inbox, catch up with team member you might not have chatted with over the week. It can also be a hectic time. There was a release to production this weekend and I am sure folks were coding late. This release to production included the first phase of CoLo and means Travelport/Orbitz customers are using my code for the first time.
Amid the usually Friday tasks I continued adding tests to the Excel library As I was adding test I discovered how to add a feature I had been wanting to add. I had only extracted the code from a different code base and this testing was helping me understand ever facet of it. The library previously only allowed you to read an excel file and get the data out of it. If you wanted to create a file you had to use the Apache classes directly. These classes from Apache are not hard to you, but somewhat tedious. They allow you to do anything you would like with an Excel file, but I only need to create files with one sheet and a header row. I discovered that this functionality was intertwined into an error reporting section of the library. I was able to refactor this out to methods any user of the library can use. I have not had a chance to rework my existing code, but hope to soon. After work, I went to the official Orbitz bar for a couple drinks.
Yesterday started out like a typical Monday. Had to dig out of my inbox after the weekend. Also we have a weekly status meeting with Project Management where we go over the status of every project. Since there was a release on Saturday, we also went over how that went and any bugs that were found and if the need to be patched right away.
Actual work wise, I started formally working on CoLo Phase 3. This phase is adding the CoLo feature to Car Searches. Much of the day was spent investigating and informally designing what needs to be done. I have not worked on car searches and Anton added the feature to hotel searches, so this is all new to me. I am starting just by adding the feature on the search page and then will add it to the results after. I looked at what Anton had done with hotels and then looked at the similar classes in cars. Development Teams here have their own specialty. The Corporate team has to deal with all the verticals (Hotel, Air, Car, etc) but the other groups only deal with their own. As I found out the Hotel Team and the Car team have taken different approaches to what you might think could be very similar paths. To apply the same change from hotel to car I would have to do a little mental designing but not much. I was able to add a couple fields to the search bean.
Tuesday I finished up making the initial changes for the Car Search. I have promoted my code and passed it off to Abid, the Front End developer for this project. And Wednesday I helped Abid find the correct values he needed from the work I did. Then I started doing research on what was needed for the other changes for Phase 3. In Phase 1 there was a change to the hotel detail page. This is the page where you find out about more information about the hotel in the search results, like the address, a map, amenities, etc. I thought I was going to add this to Cars also, but there is no such thing. It is amazing how different Air, Hotel, and Car search and booking paths are. I then started working on adding the feature to the search results for cars themselves.
In software development there is a concept called coding by contract. Usually in Object Oriented Programming these contracts are enforced by interfaces. Often these interfaces are implemented with classes named Impl, I don’t like doing this, but it is done. In the car code I came across a few classes named in this convention, but where the interface did not exist. I don’t know how this came to be, but it was a little funny and frustrating.