DEV Community

Cover image for Building Domain Expertise: How Our Developers Became Camping Experts
Richard Sandown
Richard Sandown

Posted on

Building Domain Expertise: How Our Developers Became Camping Experts

Why understanding campgrounds matters more than understanding code—and how we built a team that knows both

"I don't understand why we need three different site types," Alex said, staring at the database schema we were designing. "Can't we just have one 'campsite' table and add attributes as needed?"

Alex was our lead backend developer—brilliant, experienced, and completely mystified by the complexity of campground operations. To him, a campsite was a campsite. Why did we need to distinguish between RV sites with full hookups, tent-only sites, and cabin rentals?

Six months later, after Alex had spent two weeks working at an actual campground during their busy season, he rewrote that entire section of our codebase.

"I had no idea," he told me. "The differences aren't just technical specifications, they're completely different products with different pricing, different customer expectations, different operational requirements. Our original design would have been a disaster."

This transformation, from developer who codes to developer who understands, is at the heart of building valuable software for any industry. But it's particularly crucial when building tools for domains as specific and nuanced as outdoor recreation.

The Knowledge Gap Problem

Most software developers have never operated a campground, managed an adventure tourism business, or worked in outdoor hospitality. This creates a fundamental challenge: how do you build excellent tools for a domain you don't understand?

The traditional approach is to rely on product managers or domain experts to bridge this gap. Developers focus on code while others handle the "business logic" and translate requirements into technical specifications.

This approach works adequately for simple problems. But it breaks down when building complex, domain-specific software where dozens of small decisions—data structures, workflow designs, interface choices—all require deep understanding of how the business actually operates.

The Specification Problem

Written specifications, no matter how detailed, can't capture the tacit knowledge that campground operators carry. They know instinctively how booking patterns change with weather forecasts, how site assignment affects operational efficiency, and why certain combinations of activities can't be scheduled together.

This knowledge is difficult to articulate and often only becomes apparent when you're actually doing the work.

The Lost in Translation Challenge

When non-technical domain experts communicate with non-domain-expert developers, information gets lost. The campground operator explains a problem in their language, the product manager translates it into requirements, and the developer implements their interpretation of those requirements.

By the time the feature ships, it often solves a different problem than the one the operator actually had.

The Iteration Cost

When developers don't understand the domain, iteration cycles are expensive. Build a feature based on specifications, show it to users, discover it doesn't match their needs, redesign, rebuild, repeat. Each cycle takes weeks or months.

The Immersion Approach

We took a different approach with Camprs: we decided our developers needed to become camping domain experts themselves.

Mandatory Campground Rotations

Every developer on our team spends at least two days working at a partner campground during their first six months with the company. Not observing, actually working. Checking in guests, answering questions, handling reservations, dealing with the chaos of peak season operations.

This isn't a token gesture. Developers work real shifts, including early mornings and busy weekends. They experience the pressure of long check-in lines, the complexity of managing site assignments when half the guests arrive early and others arrive late, and the constant interruptions that make it hard to complete any single task.

The learning is immediate and visceral. Our developers return from these rotations with notebooks full of observations, frustrations about our own software, and ideas for improvements we'd never have considered from the office.

The Things You Can't Learn from Requirements Documents

When Sarah, one of our frontend developers, spent time at a family campground in Vermont, she learned things that changed how she approached interface design:

The phone interruption reality: She discovered that campground staff are interrupted constantly. Any workflow that requires maintaining context across multiple screens is essentially unusable because staff get pulled away every few minutes.

This insight led to a complete redesign of our check-in process, breaking it into small, completable chunks that could be interrupted and resumed without losing progress.

The spatial thinking pattern: She noticed that experienced staff think spatially about the campground. They don't remember site numbers, they remember locations. "The site near the big oak tree" or "the RV spot by the playground."

This observation inspired us to make our visual site map the primary interface rather than a supplementary feature, fundamentally changing how users interact with Camprs.

The weather dependency: Nearly every operational decision campground staff make is influenced by weather. Are sites muddy? Is it too hot for tent campers? Will rain drive people to covered activities?

We realized weather integration wasn't a nice-to-have feature—it needed to be woven throughout the entire system.

Working Alongside the Customers

The immersion creates something more valuable than just knowledge, it creates empathy. When you've personally dealt with a frustrated guest whose reservation got lost, or struggled to figure out which sites are actually available, you build software differently.

You care more about edge cases because you've experienced them. You think harder about error messages because you've been the one trying to understand them while three families wait impatiently in line. You prioritize differently because you understand which features actually matter in the moment.

Building Domain Expertise into the Development Process

Beyond the initial immersion, we've built domain learning into our ongoing development process.

Customer Advisory Board

We maintain an advisory board of campground operators who meet with our development team monthly. These aren't formal presentations, they're working sessions where we show half-built features and get immediate feedback.

The key is that developers present directly rather than filtering feedback through product managers. This creates direct communication channels between the people building the software and the people using it.

Support Rotation

Every developer spends one week per quarter doing customer support. They handle incoming questions, troubleshoot problems, and talk directly with users who are frustrated or confused.

This practice, borrowed from other product companies, is invaluable for maintaining domain expertise. You quickly learn which features are confusing, which workflows don't match how people actually work, and which problems keep recurring.

Field Testing Requirements

Before we build major features, we send developers to campgrounds to observe and validate the problem we're trying to solve. This often reveals that the feature request we received describes a symptom rather than the underlying problem.

A request for "better reporting on site occupancy" might actually stem from a need to optimize cleaning crew scheduling. Building the requested report wouldn't solve the real problem, but understanding the underlying need leads to a better solution.

Industry Event Attendance

We encourage developers to attend campground industry conferences and trade shows. Not manning a booth or doing sales—just attending sessions, talking to operators, and understanding industry trends and challenges.

These events provide context about the broader business environment our customers operate in: regulatory changes, competitive pressures, economic conditions, and evolving customer expectations.

The Technical Benefits of Domain Expertise

Domain expertise isn't just about building the right features, it fundamentally improves the technical quality of the software.

Better Data Modeling

Developers who understand campground operations build better database schemas because they understand the relationships and constraints that aren't obvious from outside the domain.

For example, understanding that some campgrounds assign specific sites at booking while others assign site types (and allocate specific sites at check-in) is crucial to database design. Getting this wrong makes the system rigid and unable to accommodate different operational models.

Smarter Architecture Decisions

Domain expertise helps developers make better architectural choices. Understanding seasonal traffic patterns influences caching strategies. Knowing that campgrounds often have poor internet connectivity affects decisions about which operations can be cloud-based versus local.

These aren't decisions that can be made purely from technical considerations, they require understanding how the system will actually be used.

More Effective Testing

Developers who understand the domain write better tests because they know which edge cases matter. They can anticipate the unusual but important scenarios that cause real-world problems.

Testing booking logic is different when you know that guests frequently change arrival dates, that some campgrounds allow split stays across multiple sites, and that weather events often trigger cascading cancellations and rebookings.

Intuitive API Design

When developers understand the domain deeply, they design APIs that match how the domain actually works rather than imposing abstract technical structures.

Our API endpoints and data structures reflect campground operations—bookings, sites, activities, guests, rather than generic database operations. This makes the API more intuitive for anyone who understands camping but also ensures it supports the workflows that matter.

The Challenges of Building Domain Expertise

Creating a team of developer-camping-experts isn't without challenges and costs.

Time Investment

Sending developers to work at campgrounds for days takes them away from coding. Supporting customers takes time away from building features. The time investment is significant and ongoing.

We've decided this investment is worthwhile, but it does slow our development velocity in the short term. The tradeoff is that we build the right things and build them better, which we believe is more valuable than building faster.

Hiring Implications

Not every developer wants to spend time working at a campground. Some people got into software specifically to avoid customer-facing work or physical environments.

This has narrowed our hiring pool. We look for developers who are curious about the domain, comfortable with customer interaction, and open to experiences outside typical software development.

Maintaining Expertise as We Scale

As the team grows, maintaining consistent domain expertise becomes more challenging. We can't send every new hire to work at campgrounds indefinitely.

We're developing complementary approaches—better documentation of domain knowledge, recorded customer sessions, detailed case studies of common scenarios—but nothing fully replaces direct experience.

Balancing Depth and Breadth

There's a risk of developers becoming so focused on camping operations that they lose perspective on broader software engineering principles and emerging technologies.

We balance this by encouraging developers to stay connected with the broader tech community, attend general software conferences, and work on diverse technical challenges beyond just camping-specific features.

Unexpected Benefits

Building deep domain expertise has created benefits we didn't anticipate:

Better Customer Relationships

When developers talk to customers about features or problems, the conversations are fundamentally different. Customers sense that developers understand their business, which builds trust and leads to more productive discussions.

Campground operators are more willing to try experimental features or tolerate temporary rough edges when they trust that the development team understands their needs.

Improved Problem Diagnosis

When customers report bugs or confusing behavior, developers with domain expertise can often diagnose the real issue faster because they understand the context in which the problem occurred.

A report of "sites showing as available when they shouldn't" could stem from dozens of technical causes. A developer who understands campground operations can ask better diagnostic questions and identify the root cause more quickly.

Product Vision Clarity

Domain expertise helps the entire team maintain a shared vision of what we're building and why. Decisions about priorities and tradeoffs become easier when everyone understands how customers actually use the software.

This shared understanding reduces internal debates and helps us move more decisively.

Lessons for Other Technical Teams

The experience of building domain expertise into our development process offers lessons applicable beyond campground software:

Domain Expertise Can't Be Outsourced

You can't fully outsource domain understanding to product managers or customer success teams. Developers make dozens of decisions daily that benefit from domain knowledge, and waiting for specifications or approvals for every decision is impractical.

Firsthand Experience Beats Documentation

No amount of documentation, user stories, or requirements specifications can replace firsthand experience with the work your software supports. If you're building tools for teachers, spend time teaching. If you're building tools for healthcare, spend time in clinical settings.

Investment in Understanding Pays Long-Term Dividends

The time spent building domain expertise seems expensive in the short term but pays off through better decisions, fewer mistakes, and stronger customer relationships over time.

Domain Experts Make Better Technical Decisions

Technical decisions—architecture, data modeling, interface design—are often fundamentally domain decisions in disguise. Developers with domain expertise make these decisions more effectively.

The Ongoing Journey

Building domain expertise isn't a one-time project—it's an ongoing commitment. The camping industry evolves, customer needs change, and new team members join who need to build understanding.

We continue to iterate on how we build and maintain domain expertise. Some approaches work better than others. Some developers thrive with direct customer interaction while others prefer different learning methods.

What remains constant is the conviction that understanding camping operations deeply makes us better at building software for campgrounds. The code matters, but understanding what the code needs to do—and why—matters more.

Conclusion: Developers Who Understand

Alex, the developer who couldn't understand why we needed different site types, now occasionally gives talks at camping industry conferences about technology. He's become genuinely knowledgeable about campground operations, not just the software we build.

When he talks to potential customers, he doesn't lead with features or technical capabilities. He talks about understanding the challenges of managing a seasonal business, handling the complexity of different accommodation types, and building software that works with how campgrounds actually operate.

The transformation from developer to domain expert doesn't happen overnight. It requires deliberate investment, ongoing learning, and genuine curiosity about the industry you're serving.

But the result is software that works better, customers who trust you more, and a team that takes genuine pride in solving real problems for real people.

The best developers we've hired aren't necessarily the ones with the most impressive technical credentials. They're the ones who get excited about learning how campgrounds work, who ask thoughtful questions about operational challenges, and who care about building something truly useful rather than just technically interesting.

Building Camprs has taught us that domain expertise isn't separate from technical expertise, it's a crucial component of it. Understanding camping operations makes us better developers, just as understanding software development makes our customers better campground operators.

The goal isn't to turn developers into campground operators or vice versa. It's to build enough mutual understanding that we can work together effectively, combining deep technical knowledge with deep domain knowledge to create something neither group could build alone.

That's when software becomes truly valuable—when it's built by people who understand both the technology and the work it's meant to support.


How does your team build domain expertise? Whether you're building software for a specific industry or working in a domain that depends on technology, I'd love to hear how you bridge the knowledge gap between technical and domain expertise.

Top comments (0)