Part of Bob’s continued ramblings.
I was at the annual RunningUSA Conference last week and a number of customers said something along the lines of “I can’t believe how much new stuff you are coming out with!”. I thought it might be worthwhile to explain the three key factors influencing the reality and perception of all of the wonderful features we are releasing in 2024.
- Long term development projects are rolling out to customers
- Our Next Gen Software has hit critical mass
- Our Development Team continues to get more productive
Long Term Development Projects Reach Customers
We have three major software development projects that we worked on all of 2023 that were not ready to see the light of day, but are starting to roll out now:
Race Websites V2 – We have been working on this, and TicketSignup users have been using it, for the past couple of years as the technology and feature set has matured. We were on track to release right before the end of 2023, but we realized that there was another approach we could use to the efficient structure of data and objects under the covers. We took an extra 8-12 weeks to work on that even though it produced no new features for customers because it would allow us to scale to host hundreds of thousands of websites and would make our new releases easier to implement. This is important as we did somewhere close to 250 release for Websites V2 in 2023 alone, and have lots more planned. For customers, this will be a huge upgrade in our website capability (which is already industry leading in terms of completeness of CMS and data control directly in a race directors hands), but they just see it all of a sudden when it actually took us 2 years of hard work to get it to that point (and a couple more years of continued improvements planned!).
Next Gen Memberships – We have a pretty good club system that has been used by hundreds of running and tri clubs for almost a decade, so we started with a good foundation. However, there were many, many improvements we wanted to make before we brought the next generation offering to market. We began working on Memberships in the beginning of 2023, and it is in Beta now as we begin 2024. It took a full year of talented developers dedicated to that project to get it ready. Again, customers see it appear all of a sudden and they think “Whoa! new website builder, new email, multi-level and family memberships, store, store item bundles with membership levels, donations, auto-renew, ApplePay, etc. are all suddenly available! That was quick!”. So the perception is rapid development, but the reality is good software takes time.
Patent Pending MultiDay Timed Entry (MTE) Project for Ticketing – We have been working on a next gen design for multi day timed entry ticketing. We have a solution available today and have been successful with it, but as we have begun to understand the needs of farms who have month long events, or gardens who are open year round we saw a need for something more than what anyone had yet invented. Stephen and Benny have come up with a totally new database approach to timed entry that will be an order of magnitude more efficient than existing designs that we or other vendors have and is Patent Pending (our first ever project we are seeking a patent on because we think it is that unique). Along with the new data structures, we need to create a whole layer of software that provides the normal functions in a ticket application like pricing and caps that vary by day, modifying specific days or timeslots, etc. And we are inventing a whole new way to manage the tickets (some examples below). This is a very ambitious project that will be rolling out at the end of Q1 to early adopters. Again, we have taken very valuable development talent to dedicate to this important project for a year and then all of a sudden it will burst onto the scene. Good software takes time.
Next Gen Software Hits Critical Mass
Several years ago we came up with a new approach to how we write our new software. We wanted to make it easier to create a functional component (eg. Email, Website, Image Gallery, Store, Warehouse, Coupons, etc.) to be used across all of our products that customers use (today RunSignup Race Registration, GiveSignup P2P Fundraising, TicketSignup and Memberships, and in the future things like a next gen Volunteer system).
As an example, when we add a component like a slideshow to Websites, it can be available immediately across all products. Or if we add a component like Strava Maps, that is only visible in Race and Membership websites and not in Tickets. This means we do development once, but have three revenue sources to fund that development.
We have been developing these new components first in Tickets since that is a simpler use case with less expected feature capability than our more mature race registration product. A good example is the Website Builder has been available in TicketSignup for 2 years, but is just reaching maturity that it can handle Race needs.
We have reached critical mass in the spread of these “generic entity” components across our platform, which is bringing and increasing amount of productivity and speed to development. And since the software is all modern, it is faster to develop more code, so there is a double benefit. While retrofitting these new components into race registration takes time, it has the added benefit to make sure our platform stays current and does not fall behind. From a long term business perspective, this is also extraordinarily efficient since we drive multiple revenue streams from a single platform and code base. It also allows us to enter new markets like tickets and membership on a greatly accelerated basis.
Our Development Team is More Productive
All of our developers are US full time (or intern) employees, and they tend to stick around:
The longer people are here, the more they learn and the more productive they are. We invest a lot in learning. 100% of our code is peer reviewed, which allows for learning between people. We also have 2 hour session each week where different developers walk thru their current project live with the team to share what they are doing, why and asking for suggestions. Interns and coops that work with us always say they learn more here than in all the schooling they have been to.
And of course it is far more productive to have the person who wrote the code to maintain and improve the code over time.
In addition to our team getting better, we continue to improve the tools in a number of ways. As mentioned above, we are using the most modern approaches to our code which allows the developers to reuse more code and write code cleaner and faster. We also have code sniffer and static analysis tools that help with writing clean code and automatically catching errors. We have also reached critical mass in terms of tests:
We also have a Design System with a full set of reusable UX components. So when a developer is working on a project, they just grab existing UX components to use quickly. This also improves consistency across the platform. We have over 100 components:
Here is an example component. You can see how they are built with flexibility and multilpe options even within a single component:
The one thing we do not allow in our development team is the use of AI tools. The reason is that there is a large risk that LLM’s like ChatGPT have been trained with copyrighted code, which means that asking ChatGPT to write a sort algorithm risks us infringing on other’s copyrights. And since we are employee owned, we just do not want to take that risk, or put our customers in a position where their vendor might get shut down by aggressive lawyers.
The Future of the Pace of Development
The good news for our customers is that our pace of development is going to continue to be high. We wont get as many step changes as we happen to be getting right now from the near simultaneous release of three major year long projects, but the foundations of continued rapid releases is solid.