In the past year, I have been getting more involved in Hackathons.
It reminds me of the early days of Dynamics when the Microsoft product team would do world tours showing Microsoft partners how flexible xRM was for building line-of-business applications. They would run day-long events where the aim was to design an app to solve a business requirement by starting with just the idea and modeling it simply in PowerPoint in a UML diagram.
I flew from New Zealand to Australia to attend one of these sessions and it opened up a world of possibilities to me. With the advent of the Microsoft Power Platform and the flexibility that it brings to building any line-of-business application.
A hackathon is an opportunity for everyone in the organization to get involved. Subject matter experts (SMEs), Citizen Developers, Business Analysts, ProDev, and Architects can all be involved in building applications on the Power Platform.
Many organizations are using the Power Platform to build apps to:
- Replace paper-intensive processes and forms
- Replace manual approval processes
- Replace manual field data capture
- Replace bespoke applications
- Replace end of life applications
- Create apps to enable mobile workers
- Create apps to enable non-desk-bound staff to do their jobs more efficiently – think of staff working in factories, retail, hospitality, patient care, field workers, government field workers or any role that would make a traditional desktop impractical
- Prototype business solutions
- Create applications that enable automation, as well as integration to many disparate data sets, with User Experiences that lead to organization-wide adoption
Rationale for using the Power Platform
The Microsoft Power Platform is an enterprise-grade, rapid application development platform built on Azure. It takes advantage of tight integration with Office 365 and allows for extensibility with any Azure service.
The following are some key technologies that make up the Power Platform:
PowerApps allows for the modeling of business processes and includes a consistent modern interface designed with usability and inclusion at its core. Providing a secure and compliant tool with the ability to create experiences based on the needs of the people using the software, with both mobile and desktop interface supported. It also supports cognitive services, such as voice, image and other forms of input and retrieval of information.
Microsoft Flow is a modern business automation tool designed with drag and drop modeling of business processes so that any SME can quickly model business requirements including the flow of data across the organization. Flow also includes connectors to over 300 applications and the ability to create your own connectors to allow an end to end integration with any application or service.
Power BI is designed to provide insights and visualization of information, enabling stakeholders to make informed decisions. It achieves this with Charts, Dashboards, and Reports.
Azure includes many services that are integrated into the Power Platform such as data storage, authentication, search, and encryption. It allows for the utilization of Machine Learning, Cognitive Services, and Blockchain.
Office 365 is a suite of applications including Word, Excel, Forms, Teams, and SharePoint. Added to this are services for Data Loss Prevention, Auditing and Data Compliance such as GDPR. The Power Platform is connected to these resources by default.
Why Run Hackathons?
Hackathons can be a powerful way to accelerate digital transformation. Why should you run a hackathon?
- It allows for business processes to be looked at through a digital lens
- . It allows fast prototyping of solutions.
- It allows for the creation of applications in a day
- It is a tool to increase the confidence of people that have not traditionally had a lot of experience with technology
- It can deliver tangible business results in a short amount of time
How to run an effect Hackathon
Through the Hackathons, I have been a part of over the years I’ve learned a few things about how to make them a success.
Here are some thoughts worth keeping in mind if you’re planning a hackathon for your organization.
The hackathon should be time-boxed with a clear start and end time. One day is a good starting point for anyone setting out on this journey. Once a few successful one-day hackathons have been completed, longer times can be considered when large business requirements need to be addressed.
The hackathon should be run without interruption from start to finish, meaning it should not be split over protracted time periods. For one day events, the team involved should stay together for the day including having meals together.
Must ‘ship’ at days end
A complete app needs to be shipped at the end of the day. So it is important not to try and build something that will take longer than a day to build. When looking at what MUST be included in the app, be clear about the feature set needed and avoid nice-to-have features unless there is time to build them.
The completed app can, of course, be iterated on at a later date.
The Hackathon team should be made up of the following roles.
Note: in some cases, you’ll be able to have one person do multiple roles, and equally you may need more than one person in key roles in order to ship a complete application by days end.
Subject Matter Experts and business stakeholders need to be involved to articulate the current state and the desired outcomes. They should be involved throughout the hackathon to share their knowledge as called upon and also for validation of hypotheses.
Business Analysts have skills in defining business challenges and requirements from various perspectives. They can add a lot of value to the hacking team.
Experienced developers, both Citizen and ProDevs, should be part of the hacking team. They will have deep knowledge of the Power Platform and can demonstrate examples and potential solutions to address the desired outcome in the application being built. They will also be key in building the app.
A solution architect or enterprise architect should be part of the team. They will bring their experience of the technologies already used by the organization as well as design guidance and experience of past app builds.
A great facilitator should have skills in Design Thinking, Agile Methods, and Adoption. Their role is to keep the team on time and on track with the objectives while maintaining fun and inclusion. Think of this person like the conductor of an orchestra.
Process for Building an App
At this point, you want to come up with an agreement of requirements. Why is the hackathon needed? What do you want to achieve?
- Is it the digitization of an existing business process?
- Is the intention to replace something else?
- Is the intention to create efficiencies?
- What is the business problem that needs to be solved?
- Once you are clear on the requirements, you can move on to the next stage.
Defining the data model is best done using a whiteboard or flipchart. Create a diagram that answers the following:
- What data is needed?
- Does the data fit into logical patterns?
- What Common Data Model entities can be leveraged?
- Validate if there is an existing industry accelerator with a CDM that can be leveraged
- What is the relationship between the logical data sets?
- What entities need to be defined?
- What activities do entities need to be created?
- Does data need to be exported or ingested from other systems?
- What automation is needed?
- How will people interact with the application?
- What reporting is required?
- What security model is needed?
Once this diagram is agreed on by the team it is time to allocate the responsibility for the app build to various team members so that many parallel streams of work can be undertaken at once.
Deploy and Configure the Common Data Service (CDS)
The person(s) responsible for deploying and configuring CDS should take the outcomes of the Data Modelling stage and architect CDS to meet the requirements.
The person(s) responsible for integrations, whether export or import, should architect and build the integrations as per the requirements of the Data Modelling stage, using the available connectors where possible.
Reporting and Insights
The person(s) responsible for the reporting as per the Data Modelling stage should design and build Charts, Views, Dashboards, and Reports as required to meet the objectives.
The person(s) responsible for automation should design and build the Business Rules, Flows, and Business Process Flows as required by the Data Modelling stage.
User Experience is one of the most critical elements to get right as it can have a massive effect on user adoption. The context of the people that will use the app needs to be taken into account. Where will the app be used? What are the environmental factors in play? Connectivity, as well as many other situational requirements, will need to be considered.
With the Power Platform there are four options to choose from:
- Web Portal Access
- Mobile Phone Access
- Tablet Access
- Desktop Access
- Guest Access
PowerApps, either Canvas or Model-Driven apps, need to be considered as well as Portal access if needed. All experiences need to be considered so the solution can be designed and built to meet the requirements.
Tips for Success
Time check every hour to make sure you are on track to achieve your ship goal.
Make sure all team members are working in parallel as much as possible.
Pivot and change as needed to meet the requirements and the shipping goal.
Make it FUN!
This should be a fun experience for all involved, so be proactive in injecting fun and humor into the day, music is a great motivator.
Please let me know in the comments below what you have found effective in running a Hackathon.