Dev Camp 2019 – Day 1

Luke Canvin

We began day 1 with a tour of our venue, the Thatcher Business Education Centre at the Said Business School. We were here for the last OCC Dev Camp too, but in the other wing of the school. Although we're just minutes away from OCC's Hythe Bridge Street office, being in a new environment, away from the distractions of day-to-day work is really valuable for a dev camp and we find people are able to focus much more on the project.

This year we have 6 participants, Greg H and Ned from our Innovation Delivery team, Julian, Andrew and Greg A and myself (Luke) from our Product Development team. In the morning we sat with out coffee and divided into client-side and server-side teams - Greg H and Ned would work client-side; Julian, Andrew and Greg A on server-side; I would act as facilitator for the week.

What were our initial tasks?

Client-side

Client-side team

The client-side team will be using Blazor to generate the forms our users will complete. This means we won't have simple page templates for our application, instead we'll need to have a set of components for each type of field that could be present on a form, which can then be composed into a form as configured in data, complete with the appropriate validation.

Greg spent day 1 defining the data types we'll be using and the basic form components we'll need along with their standard validation options. He then got started implementing shared code representing some of those components for use by front and back ends.

Ned set up the blazor project in the solution and created some of the initial blazor components for the form elements Greg defined.

Server-side

Server-side team

The server side team began by looking together at EventFlow, which Andrew had identified as the most popular .NET Event Sourcing framework. Andrew also found an open source example project using EventFlow, which they studied to get a feel for how to use the framework in practice.

Julian then set about getting the example project running on Cosmos DB in a local emulator to flush out whether any issues we'd face using Cosmos as a data store for EventFlow.

Andrew started set up of the server-side project using EventFlow in the style of the example project. He also finished off some documentation of the domain language/terminology we could use for the project to ensure we're referring to everything in a similar way in all our projects.

Greg started prototyping the server-side dynamic validation system.

What does the facilitator do?

The facilitator for a dev camp is there to try and make sure everyone is able to make full use of the limited time we have by unblocking any sticking points as quickly as possible. This means the facilitator often acts both as the voice of the customer (if there is no customer on-site) and as a project manager. Because we're optimising for learning rather than perfection, often any decision is better than being stuck waiting for an answer.

That said, we don't want to make entirely arbitrary choices, so I'll be making sure I understand as much of the real-world requirements for our project as possible and when making decisions we can choose the right balance of optimising for speed, learning and functionality.

I'll also be blogging as we go along so that OCC can see what we're up to.