2. Overview
1. Introduction
• Company, team, project description
2. Technologies and Practices
• SDLC, Task and Change Management, Continuous Integration
3. Reflection
• Challenges, University relevance, Lessons
3. Company
• Global investment firm
specializing in financial
services
• Technology plays a
major part within the
firm
• As of 2015, it became
the No. 1 tech bank in
the US
4. Team
• Part of Market Making and Quoting (MMQ)
• Responsible for design, development and maintenance of high
frequency trading engines
5. Project
• Proof of concept, not pilot or production project
• Long term goal: slowly shift to web technologies
• Development of a dynamic trading analytics portal
9. Task Management
Industry
• Gathering: continuous
collaboration
• Specification: epics, (major) tasks
and subtasks
• Allocation: initial waterfall, then
one-week sprints
University
• Gathering: one interview
• Specification: user stories
• Allocation: 3-4 week sprints
10. Change Management
Industry
• git for project, team was
using perforce
• Two repos: one public and
readable, a private fork
writable
• Changes are made by pull
requests
University
• SVN for PSD3, git for TP3
• Team was pushing to master
branch
• Changes are pushed
chaotically
11. Continuous integration
Industry
• One pre-commit job
• One continuous CI for private
repo and another for the
public repo
• Builds and tests the system
through unit tests
University
• One continuous CI
• Builds and tests the system
through unit and acceptance
tests
12. Challenges
• Difficult to communicate with London based manager
• Requirements were dispersed and constantly changing
• Overall responsibility for managing project
• Financial domain and proprietary technologies
• Starter in web development
13. Would have been useful…
• University courses covered A LOT of material and SE practices
• However, learning through experience is more effective
• Code reviews
• Great way to review changes, discuss defects and share knowledge
• Stash included a peer review system
• Dependency injection with Spring, AngularJS
• Easily manage dependencies and provide reusable, testable, more readable code
14. Lessons to take away
• Requirements change all time and mess with your work!
• Collaboration and constant communication is key
• Time management is by far the greatest challenge
• Professional Software Development (PSD3) is the most important
course for third years!
15. Thank you for your
attention!
Good judgment comes from experience, and
experience comes from bad judgment.
--Frederick P. Brooks