We've rebranded! THEY.dev is the new home of TH-EY

Some of our longest-running projects started as a “quick build”, a POC, or a temporary team extension.

A project for the Parliamentary Research Service was supposed to be a CMS.
It’s now a full workflow platform serving Members of Parliament, and we’re still developing it.

Localgiving hired us to redesign their donation page.
We’re now building AI tools that outperform competing products by 2x.

8 years ago, Own-Kind was supposed to be an email invoices scraping tool.
Today, they serve the world’s biggest fashion brands, handling large-scale B2B integrations.

None of these was planned as a multi-year engagement.
They lasted because both sides figured out how to work together properly. That took some lessons.

Here are the ones that stuck.

Scope changes. That’s normal.

Every business has seasons. A client raises funding, and suddenly the roadmap triples. A market shift, and half the features are deprioritised overnight. A key deal closes, and there’s a hard deadline that didn’t exist two weeks ago.

We’ve seen it from every angle. Clients who needed five developers one month and two the next. Clients who paused development for 3 months returned with a completely different priority list. Clients who started with a small landing page and ended up building a full SaaS platform.

This is where having an agency partner makes a real difference compared to a fixed internal team. You can scale up when the pressure hits and scale down when it eases. No awkward conversations. No redundancies. No guilt. Just a team that adapts to what the business actually needs right now, not what you forecasted six months ago.

Internal hires come and go. We’re still here.

This one is uncomfortable but true. We’ve had clients who cycled through four or five internal developers over the course of working together. People leave. People get poached. People turn out to be less skilled than their CVs suggest. Onboarding takes months, and sometimes the new person is gone before they’ve fully ramped up.

Meanwhile, our team stays. We know the codebase because we built it. We know the business logic because we’ve been in the standups for years. We know where the skeletons are buried because we put some of them there (and cleaned up the rest).

That’s not a dig at internal teams. Good internal developers are worth their weight in gold. But the reality of the job market, especially in tech, is that retention is hard. Having a stable external team that carries institutional knowledge is an insurance policy most companies don’t realise they need until their lead developer hands in their notice on a Friday afternoon.

Transparency isn’t a value statement. It’s a practice.

Every agency says they’re “transparent.” We mean something specific by it.

We report hours weekly. Not because we like admin, but because surprises kill trust. If a feature took longer than expected, the client knows about it the same week, not when the invoice lands. If we hit a blocker, we raise it immediately, not in a monthly status report nobody reads.

We manage projects openly. Clients have access to the board, the backlog, and the conversations. There’s no “agency magic” happening behind a curtain. Just developers writing code and communicating about it in plain language.

This matters most when things go wrong. And things always go wrong eventually. A deployment fails. An estimate turns out to be wildly off. A third-party API changes without warning. The question isn’t whether problems happen. It’s whether your development partner tells you about them before or after they become expensive.

Short feedback loops save projects. Long ones kill them.

Here’s a pattern we’ve seen enough times to call it a rule: when a client’s founder or product owner is actively involved, giving feedback every week or two, projects stay on track. When they disappear for a month, things drift.

It makes sense. We’re good at building software. We’re not inside your business. Without regular input from someone who understands the vision, the product, and the customers, we start making assumptions. Some of those assumptions will be wrong. And wrong assumptions compound fast.

The best client relationships we have are the ones where someone on their side is genuinely in the loop. Not micromanaging. Not approving every pixel. Just present enough to say “yes, that’s the right direction” or “actually, we changed our mind about that” before two weeks of work go in the wrong direction.

This is why we push for short sprints and regular demos. Not because agile is trendy. Because a two-week feedback loop catches problems when they’re small. A two-month feedback loop catches them when they’re expensive.

People don’t always read reports. That’s fine. Until it isn’t.

Let’s be honest. Most clients don’t read every weekly report. They glance at the summary, check the hours, pay the invoice, and move on. And honestly, that’s a sign of trust. They trust us to manage the work.

The problem surfaces when something unexpected happens. An estimation that was way off. A feature that turned out to be three times more complex than anyone thought. A month where hours were significantly higher than usual.

If the client hasn’t been reading the reports, this feels like a surprise. And surprise invoices destroy relationships faster than almost anything else.

That’s why we don’t just send reports and hope for the best. We flag things directly. Big estimation misses get a conversation, not just a line in a spreadsheet. Scope changes get explicit approval before we start the work. If something is going to cost more or take longer, we say so out loud, in a call or a message, not buried in paragraph four of a PDF.

It’s a simple system: report everything, but communicate the important stuff separately. Assume the report might not get read. Make sure the critical information gets through, even if it’s not ideal.

Technical debt is real. Selling the fix is hard. But it’s our job.

No client ever calls us excited about refactoring. Nobody wakes up thinking “I’d love to spend this month’s budget on rewriting the authentication module.” That’s not how business works. Business wants features. Business wants launches. Business wants what makes money.

But technical debt is what slowly stops you from making money. Code that was fine for 100 users breaks at 10,000. Shortcuts that saved two weeks in year one cost two months in year three. Dependencies that haven’t been updated become security vulnerabilities.

It’s our job to raise these issues. Not as nagging. Not as padding hours. As a genuine professional responsibility. When we see a part of the system that’s becoming a risk, we say so. We explain why. We propose a plan. Sometimes the client says “not now”, and that’s their call. But the experienced clients, the ones we’ve worked with for years, have learned to trust us on this. They’ve seen what happens when it gets ignored.

Over time, in the best relationships, refactoring and maintenance become a normal part of the rhythm. Not a scary conversation. Just part of keeping the product healthy. Like changing the oil in a car. Boring, but you really don’t want to skip it.

Your partner might do more than you think.

Here’s something that happens more often than you’d expect. A client has worked with us for a year on their web platform. They need an analytics dashboard built. They go talk to three other agencies. Then someone on our team mentions in a standup that we’ve built dedicated Metabase dashboards before.

It sounds silly, but it happens because the relationship gets focused on the daily work. Tickets, sprints, deployments. Nobody steps back to talk about what else is possible.

We’ve built web platforms, mobile apps, AI tools, desktop applications, cloud infrastructure, design systems, CMS platforms, e-commerce sites, and internal tools. Across 60+ projects in healthcare, fintech, fundraising, property management, compliance, entertainment, HR, transport, and parliamentary research.

The point isn’t to list capabilities. It’s that the team already embedded in your project, the one that knows your codebase, your business, and your users, might be able to help with the next challenge too. And that’s usually faster, cheaper, and less risky than starting from scratch with someone new.

This is why we try to have regular check-ins that aren’t just about the current sprint. A 30-minute conversation every quarter about where the business is heading often reveals ways we can help that no one had considered.

We’re not going anywhere.

Most of our competitors are optimised for acquisition. Get the lead, close the deal, deliver the project, move on to the next one.

We’re optimised for retention. Not because we’re sentimental about it, but because it’s better business for everyone. A developer who’s been on your project for two years is worth more than a new developer who needs three months to understand what’s going on. A team that knows your codebase, your users, and your business context delivers faster and makes fewer mistakes.

We’ve been running THEY.dev for over eight years. Some of our client relationships have lasted longer than some employees have worked here – a testament to the kind of long-term partnership we’ve built.

If you’ve been thinking about hiring developers, consider this instead. You get a team that’s worked across 60+ projects, that scales with your needs, that carries no recruitment risk, and that treats your product like their own. Not because of a contract clause. Because that’s what happens when you work together long enough.


We recently launched Team Augmentation as an official service. It’s what many of our long-term clients have been doing with us for years, just with a proper name now. If your team needs experienced developers who integrate fast and stick around, let’s talk.