Work Term 2 - Trans Plus Software

Trans Plus HQ

Trans Plus Software is a company that develops, markets and supports software solutions for the transportation industry. The company has one main product offering, Fleet Manager Professional, which I had the opportunity to develop for over the course of my 4-month work term.

About the Position

SCRUM Team Member

I was hired on as a Scrum Team member. For the uninitiated, Scrum is an implementation of the agile software development strategy which breaks tasks into user stories which are placed into a backlog and scheduled in sprints. This title was somewhat of a misnomer however as the team was in the process of transitioning to Kanban, an agile variant which forgoes sprints for an ever revolving queue of user stories. This process also involved me in biweekly stand-up meetings, monthly retrospectives, and effort estimations. At the end of the day, I was a software developer, which was all that really mattered to me.

Defects

My main duty was looking after defects, a position which I inherited from my predecessor. Defects are bugs, regressions, and/or other types of problems which cause undesired behaviour in software. They can range from something visually cosmetic all the way to program-breaking crashes or data corruption. They were often attributable to errors within application source code, SQL schema/ data, interfacing with third party libraries, user’s system environments, or a combination of the above.

Defects would be reported from customers through the product services team, assessed and delegated by the development manager to me. Depending on the level of detail involved with the submission I could get full reproduction steps to anything from only a screenshot or stack trace to go from. This presented an interesting challenge and I found tracking down the source of defects often proved more involved than resolving them.

Work Term Goal - I would like to improve my ability to debug and troubleshoot defects in software. During my time as a TA, I’ve found this skill to be based on intuition and have found more success developing it through practical experience than in the classroom. By learning from the missteps and mistakes of others, fixing bugs in other people’s code can also help you with your own development.

Debugging other people’s code is a lot different than debugging your own. Unless it is well documented or obvious, you first need to be able to first decipher its intent. In this case, the codebase was large, written by dozens of authors over a period of two decades, the bulk of which was sparsely commented and had been converted between languages twice. This made things a bit more tricky. Debugging requires an analytical mindset and a methodical approach that I found best developed through doing. This position gave me plenty of experience doing just that.

Working on Fleet Manager

Well before my time the majority of the codebase was migrated from VB6 to VB.NET as since 2008 Microsoft has declared it deprecated and has dropped support for the language and its toolset. The code base was then largely converted a second time from VB.NET to C#. Certain components have yet to be converted however and are run through an interop layer or through dynamically linked libraries so I did still have some exposure to Visual Basic as well. Parts of Fleet Manager lives outside of the main application and I had the opportunity to work on Windows Services and logic in the database in the form of SQL stored procedures.

I would summarize my first couple of weeks at Trans Plus as a crash course in real-world software development. Fleet Manager is written using the .NET platform in VB.NET, C#, and F#. The development team also makes use of many other Microsoft specific technologies like RDC (Remote Desktop Connection), TFS (Team Foundation Server), MS SQL Server, and Visual Studio. It was my first time with most of these and using them for the first time in concert admittedly presented a steep learning curve. Compounding on top of this, I had no prior knowledge of the trucking industry, the domain for which the software was being developed.

Work Term Goal - I would like to gain proficiency developing with the .NET platform and learn how to use Visual Studio effectively. While in my personal and academic experience I have mainly worked with POSIX-based environments, such as Linux, BSD, MacOS, and the like, a large segment of application development is targeted towards the Windows platform. Learning the tools and languages used to create Windows applications will make me more well-rounded and marketable as a software developer.

This industry is fast moving and part of working in it is learning how to roll with the punches so to speak. It was kind of refreshing being so far outside my element, I feel like I was exposed to a lot in such a short time and learned a lot about real-world development.

Perks of the Job

There was always fun activities going on around the office which helped bring the team together and made it a fun place to work. Every Wednesday was bagel day, where John Wright, the company vice president would bring in fresh bagels for the office. Other than that, just in the time I was there, there was a chili cookoff, cinnamon bun day, and Gingerbread house contest.

Outside of the kitchen every on the week of each month we also had the option of taking a day to work on personal projects on company time during hack day. These would get shown off to and voted by the Dev team for a chance to win a gift card. My last day happened to also be game day, where we got half the day to play board games, which was a nice send-off.

Acknowledgements

First and foremost I would like to thank my supervisor and the team development lead, David Johnston. Before coming to TransPlus I found myself in a fairly tight spot seeing as my previous work term offer was rescinded on the grounds of financial issues the week before I was set to start. DJ was willing to see me for an interview with little notice and helped get me out of a serious jam. During my time at Trans Plus he was patient and always approachable for help or nudge in the right direction when I needed it despite being pretty stretched thin for time. I really appreciated his management style– he gave me enough rope to figure things out on my own but would reel me in before I hung myself, so to speak and I found this worked really well for me.

I’d also like to thank every everyone else I had a chance to work with over the course of my work term. Everyone in product services, development, and the management team were approachable, helpful, and otherwise great to work with. Thanks again and keep on trucking!

Going away card from the team

Try and guess which ones are developers