Your Privacy

This site uses cookies to enhance your browsing experience and deliver personalized content. By continuing to use this site, you consent to our use of cookies.
COOKIE POLICY

4 Tips for Building a Custom Convention Management System

4 Tips for Building a Custom Convention Management System
Back to insights

convention In the last five years much of my work has involved spearheading a series of large convention management systems for national unions. By the time I started my third convention management system build, I had developed some strong opinions on how to approach a build like this. Each time my team built one of these systems, we’d create a complete green-field build from the ground up. Building this way allowed us to take lessons from our previous builds and apply them as we moved forward. Each build provided unique challenges, but more than a few common threads can serve as guideposts as you start a custom convention management system (CMS).  

1. Get Your Data Right

Data is the foundation on which any system is built, and there’s no exception here. In the case of a convention management system for a large organization, there’s a good chance that you will be combining whatever application data model you design with a pre-existing data source, consuming that data both as a reference point and an anchor for application records. In our case, there was always some degree of integration with the organization’s membership data.  

We explored several approaches to this data integration work over the builds. They included: 

  • Accessing a warehoused version of the data. This approach was non-performant. Data warehouses were not designed for this kind of access, and we did not have good control over how the data was indexed. When we built a search feature on top of this data, it was way too slow.
  • Building our application directly in the membership database. We used this approach for one of our convention management system builds, but we did not have any control over the schema outside of our application schema (even though we were directly reliant on them). This created issues where other applications’ needs or changes would cause issues in our system.
  • Encapsulating the membership data in an API layer. We explored this one briefly on multiple builds. While I think it’s a viable approach given the suitable data model and requirements, I ultimately had concerns about performance and flexibility when trying to integrate data from two different API sources.
  • Data sync from membership database (DB) to application DB. This was the sweet spot for us in terms of construction, flexibility, and reliability, and the solution we used in two of our builds. We created data sync jobs that would pull membership data over into our application database at regular intervals and translate it into a shape that was easily consumed by the application. This created a level of separation between us and the membership data, insulating us from changes to some extent and allowing us to continue our work even if there were changes to the underlying data. In addition, we gained full control over indexing and data fields, pulling over only what we needed to keep our data as lean as possible while retaining full functionality.

2. Design Your User Pattern Thoughtfully

In a system like this (especially if it’s member-facing), the user roles are going to get complicated. Our last convention management system build ended up with about seven user roles, each with a different (but sometimes overlapping) sets of data access rules. In addition, in more than one build, user accounts could be tied directly to membership records to facilitate things like convention registration, hotel accommodations, or in-person and virtual voting. Tying registrations to membership records, to user accounts, and then to data access permissions gets hairy fast – and while our most recent solution worked better than the ones before it, this is a place that I would focus more of the team’s initial design and discovery efforts on if we were able to work on another one of these builds. 

3. Become the Subject Matter Expert

You need someone on the development side who truly understands the rule set you’re dealing with. This will most likely come about as a natural consequence of the convention management system build, but over time both the business and the technical teams will need people who know both how the business rules work and how the system is applying the business rules from a technical standpoint.  

4. Document Everything 

The other side of the knowledge game is something we should all be doing anyways. It’s simple advice, but we all have trouble following through with it: write it down. By and large, these conventions are events that happen every year or every few years. There may be a full 24 months in between runs of the convention management system. Without proper documentation, you will  forget the obscure corner case you coded 36 months ago that you’re now being asked about. Whether it be rule interpretations, concessions made due to data or technology limitations, or changes to behavior document all of it.

More than once, when asked, “Why does the system work this way?” I’ve been saved by a thoroughly documented Jira ticket or a well-written commit message or a technical document. Any system requiring a build of this size will always be complex, with many interacting parts. Documenting all the different side effects of the rules interacting is very important so that questions can get answered when they inevitably come up.  

I’m in a rare position. There are only so many developers who get to work on similar projects multiple times. The opportunity to truly iterate on my knowledge and apply what I’ve learned specifically from one build to the next has been a really illuminating experience and one that I’m unlikely to have again in my career. But for now, I’m through pushing this particular rock up this particular hill. So, I hope these lessons can serve as a stepping stone to a solid design for your next large integrated system build.

Digging In

  • Digital Products

    Unlocking Business Potential: The Power of Custom Application Development

    Like any savvy business leader, you’re likely always on the lookout for tools to give your company a competitive edge. And in doing so, you’ve undoubtedly considered investing in custom application development. But the question is, how do you ensure that such a major investment in a custom web application development provides a strong return on […]

  • Digital Products

    Mastering Legacy Application Modernization: Strategies for Success

    The ironic truth of the business world is that change is the only constant. But this means that failing to keep pace with the competition and its technologies will only end with you falling behind. That’s where legacy application modernization enters the fold. When you modernize legacy applications, your team gains access to new features […]

  • Digital Products

    CTO Confessions Podcast

    In this episode of CTO Confessions, Rob Phillips, the Vice President of Software Engineering at UDig, digs into his journey from a passionate technologist in his youth to a seasoned leader in the tech industry. He shares valuable lessons on transitioning to senior leadership, the importance of understanding and articulating company problems, and the art of empowering teams for high performance.

  • Digital Products

    Navigating the Challenges of On Premise to Cloud Migration

    In today’s rapidly evolving technological landscape, the shift from on premise solutions to cloud-based infrastructure has become a pivotal transformation for organizations seeking to modernize their IT operations. This transition holds the promise of increased agility, cost savings, and enhanced scalability. However, it is not without its set of formidable challenges that organizations must navigate. […]

  • Digital Products

    The Power of Transferrable Skills in Tech Projects

    Every project has its own unique elements that require flexibility to be effective and achieve success. This often requires picking up new pieces of a tech stack, learning a new programming language, or a new project methodology. Fortunately, there are also many transferrable skills that carry over from one project to the next. In my […]

  • Digital Products

    The Four Pillars of Effective Digital Product Development

    In 2020 alone, approximately two billion consumers purchased at least one digital product. From software licenses to mobile apps and tech tools, consumers are becoming increasingly active in the digital product market, a trend that has naturally spurred brands across a wide range of industries to reevaluate their digital product design and development process workflows. […]