Business Control Solutions

Senior Software Architect

The Role

Initially my role at BCS was as the technical lead on the greenfield BCS Integrity product. I was also the main driving force behind the introduction of agile development principles and practices to the software department.

While I remained a hands-on developer throughout my time at BCS, my role gradually evolved into agile coaching across the organisation and mentoring of developers across the 2 software teams in the company.

My role included:

  • I ran a number training sessions for various parts of the organisation to explain how to get the best from agile and lean principles.
  • Facilitating project inception workshops to identify the overall objectives of the project and create a shared product vision. I used a number of techniques I learned at ThoughtWorks to help with this process.
  • I created low-fidelity prototypes using Powerpoint (a technique I picked up from Marc McNeill) as a visual aid to the product vision.
  • Ran further workshops to identify the business value that would sell the product and define the initial product backlog.
  • I continued to aid the product owner and BAs to refine the product backlog, based on value, throughout the project.
  • I Set up the initial development process and automated builds. Initially this was a continuous integration system using CruiseControl.NET. Over time it became a near continuous delivery pipeline using TeamCity.
  • We Developed the software initially using Extreme Programming, including some workshops and plenty of pair programming to teach the finer points of TDD, BDD, Refactoring, emergent design and SOLID principles.
  • I initially ran 3 amigos workshops to refine product backlog items to a ready state and coached others in running the workshops.
  • I used a value stream map of the development process to convince management to move people from BA and QA departments to create product-specific cross functional teams.
  • I coached and encouraged the team to improve the process to better fit the organisation and the project. Over time the process changed to shorter iterations and eventually to remove the iterations altogether. We ended up with a pure flow based pull system similar to Kanban.

Later I coached the second development team based at our other office in Peterborough to set up a similar process for the BCS ARC project.

The Technologies

  • C#
  • Ruby/Rails used later in the project for some services.
  • nUnit/RhinoMocks
  • Castle MonoRail, later migrating to ASP.NET MVC when it was released.
  • In house BDD framework, later moving to SpecFlow when it was released.
  • Selenium
  • nHibernate, Oracle, SQL Server
  • Javascript, JSON, Ext.js, jQuery, Jasmine
  • Excel
  • Subversion later moving to git

The was a web based application involving a rich front end talking to RESTful web services. It also involved some custom Excel development as banks love Excel.

Recommendation

“Pete was the technical lead on the companies enterprise strength flagship ‘Integrity’ product which currently runs the financial close process in multiple major investment banks and services thousands of users in each.

I have always been impressed by the depth and quality of his technical knowledge across all aspects of programming and architecture. He has brought new techniques and tools and technologies to the department, most notably the agile process, which resulted in a marked improvement in both quality and productivity in our software development.

He brings an innovative approach to the table coupled with a passion for new technologies and keeps himself informed on what is going on at cutting edge of the industry. He is always willing to try new ideas and approaches to make continual process improvements.

I have worked with Pete for the last 6 years and highly recommend him for his work. I believe him to be an excellent asset to any team he works with.”

Nigel Davies, Director - Software Products - BCS