Our Hackathon for the BC Government

MDSHackathon_1.jpg

If you’ve ever been in or been to a hackathon, you know how fun they are. This is part of the reason we were so excited to host one at our office this month. They also tend to result in some fascinating ideas being developed into useful applications or application features, which is the other reason we were excited. 

To help explain why this was a cool event, we’ll start with some quick background.

What is a hackathon?

A multi-day, collaborative coding event where developers work on projects that interest and excite them. Often (but not always) the organizers will give the participants some level of direction. That may be to create a new product from scratch, build new features for an existing digital application, or to solve a specific problem. 

Why did FreshWorks host one?

For the last year, one of our project teams has been working collaboratively with the government and Sierra Systems on modernizing systems across the natural resource ministries here in British Columbia. The project overall has been called MDS (Mines Digital Services) and the web application is called CORE. This hackathon was an opportunity for that team to experiment with creating different features for the web application.

What is the MDS Project and CORE product?

MDS (Mines Digital Services) 

MDS is a data-driven initiative designed to replace all existing systems that the Ministries of Energy, Mines, and Petroleum Resources currently use. The systems to replace include: their main system, Mines Management System (MMS); G-drive; and Excel spreadsheets. The project will also modernize other systems across the Natural Resource Ministries.

Github:

“The technologies that support mine oversight for British Columbians need to be reimagined. This project will replace the legacy Mine Management System (MMS) with a scalable, open source, data driven system using modern and flexible technologies.

The Mines Digital Services (MDS) will have a number of interconnections and relationships to systems across the Natural Resource Ministries and will be important not only to the Ministry of Energy, Mines and Petroleum Resources but also to inter-agency collaborations across ministries. The future state must be intuitive, and capable of providing meaningful data to relevant stakeholders.”

CORE

This is the web application with which the Ministry staff will interact. This project will replace many of their existing workflows, systems, and spreadsheets.

The application also provides auditability and scalability that legacy processes cannot offer. It has been created with a data centric approach, with mines at the forefront. The team has been designing and developing what the user needs with an agile approach which allows for small feedback loops and many iterations.

What prompted this hackathon for the MDS project?

A lot of the application’s requirements NEED to occur to effectively replace the existing systems. However there are a lot of creative and talented people on the team who have ideas that would improve the lives of ministry staff. The hackathon was a way for those ideas to turn into features and add value to the product that wouldn’t have been implemented overwise.
Another benefit, being collaboration between coworkers. 

The MDS team is being run through the large scale scrum methodology, meaning two seperate scrum teams work from the same backlog without much cross-team collaboration on a day to day basis. The hackathon allows individuals to self-organize and work with people they wouldn't normally have the chance to. 

Why did everyone on the team want to do this?

It was kind of mandatory. But also a chance to do whatever you would like for two days. Some people created new features, others cleaned up some code debt that had been bothering them for awhile.

How did we (and how can you) plan and host a hackathon?

The process is pretty straight forward whether you work in a public or private sector organization (and the results - which we’ll explore later - are certain to be just as great.

  1. Get approval from the stakeholders. Everyone needs to be on board to shift focus from backlog items to new creative features.

  2. Find a venue. Getting out of your usual space is very helpful. Luckily there are two vendor companies working on MDS that gladly offered their space.

  3. Plan the date. We were wrapping up a release and had a few days of down time before the next release planning.

  4. Get some catering or food lined up. Hard working brains need fuel.

  5. Invite external participants. New people bring new ideas which will help shake things up.

  6. Start brainstorming with the teams. We had a trello board for all the ideas.

  7. Designate a host. Make sure someone is available to greet everyone, get them set up (power, WiFi), and answer questions people have.

  8. Gamify. We had rewards and gave certificates based on Most Collaborative Project, Most Production Ready and Most Complex Project.

What were the results?

As you can see, about ⅔ of all the new features that were explored ended up being put into production. These are valuable and useful additions to the application that very likely would not have made it into the product if not for the hackathon.

Hackathon 1 - 71% in Prod

  1. Verified Mine - allow users to verify that a mines data is correct

  2. Metabase setup - allow users to report on the data available in CORE, shows the ministry the importance of populating CORE with accurate and up to date data, as Aaron (our PO) always says, “If it’s in CORE, we can report on it”. This has been very beneficial in getting users into the system

  3. Quick Search - easy access to data

  4. Surface Metabase Reports in UI - show the users the state of the data

  5. Workflow updates

  6. Customized Landing Page

Hackathon 2 - 66% in Prod

  1. Mine Style Refactor 

  2. In-app Reload/Refresh

  3. Update Test Coverage 

  4. Central App Scheduler (Digdag)

  5. Dynamic Search 2.0 

  6. Document Microservice 

Another two things that came out of the hackathon were a chat bot, and integration with Google Assistant. These are not in Prod as they needed more work, but it was beneficial to show the stakeholders what we could do with extra resources that would benefit the ministry. 

For example, the google assistant would be great for inspectors working in the field without access to wifi, they could call the GA phone number and get immediate access to our database to find out anything they’d like about the mine they are at (whos the mine manager, how many open orders do they have, where are they located, do they have active permits etc.)

What kinds of projects are good for this style of activity?

To some extent, this same principle extends beyond software development projects entirely. You can explore innovative ideas for any product or service by taking a team and asking them not to focus on the day to day work for a period of time and flex their creative muscles instead.

Hackathons are useful for anyone who wants to collaborate and innovate on a product in a short amount of time. It doesn’t need to be only developers or technical team members. Our designers and UX researchers put their brains together and did paper prototyping. The Business Analyst and Product Owner worked together on an awesome PowerPoint presentation to show stakeholders at our release planning. There are many possibilities for who can get advantages from performing a hackathon.

Interested in doing a hackathon with your team? Reach out to us anytime with questions!