全部札记

经验

从营销顾问到开发者:我为何跨过大多数人不会跨过的那条线

The short version: After more than a decade consulting brands on branding, marketing, and communications, both agency-side and independently, I kept hitting the same wall: developers who could build almost anything, but rarely understood why a marketing or design decision mattered in the first place. The translation between us cost real time and real money, over and over, across different teams and different years. Eventually I stopped hiring the gap and started closing it myself.

The wall I kept hitting

Over twelve years across branding, marketing, and communications, I worked both sides of the agency world: inside agencies serving many brands at once, and independently, consulting directly. Different rooms, different clients, same wall.

I would hand off a strategy, a piece of design thinking, a reason a headline had to say exactly what it said, and watch it arrive on the other side of the build changed in ways that mattered. Not maliciously. Just lost. A developer would simplify something for technical convenience and not realize they had quietly removed the point of it. Or they would build exactly what was asked for, literally, without understanding the "why" behind it, and ship something technically correct and strategically wrong. Or the two of us would spend days translating a piece of strategy into a brief a build team could work from, and something would still slip through that back-and-forth. Or the work would be technically excellent and completely indifferent to what it actually did to conversion or to the brand.

None of these were one bad developer or one bad month. They were the same failure, wearing different clothes, on repeat, across different teams and different years. Every time it happened, it cost time, and it cost money, and worse, it cost the client a version of the work that was quietly worse than the one that had been designed.

Why hiring around it never fixed it

The obvious fix looks like hiring better, briefing harder, or finding "the right developer." I tried all three, more than once. They help at the margins. They do not fix the structural problem, which is that a brief is a translation, and every translation loses something. The person receiving it was never in the room where the decision was made, so they fill the gaps with their own reasonable guess, and reasonable guesses drift.

That is not a hiring problem. It is a distance problem. The only fix that actually closes it is removing the distance: putting the person who understands why the decision was made in the same seat as the person building it.

The decision

So I made the decision that most people in my position do not make. I stopped handing the build off, and I learned to do it myself.

There was no bootcamp and no course behind it. I taught myself directly on real work, building for real projects as I learned, rather than practicing on throwaway exercises first and applying it later. It was slower and messier than a structured course would have been, and it meant learning in public, on work that mattered, with no safety net between a mistake and a client seeing it. It was also the only way that actually closed the gap, because every project I built was a real test of whether the strategy had survived the build, not a simulation of one.

What actually changed

The difference was not that my code became better than a specialist developer's. It rarely was, and I never claimed otherwise. The difference was that nothing got lost anymore. The reasoning behind a decision did not need to survive a handoff, because there was no handoff. The person who understood why something mattered was the person who built it, so the "why" never had to be translated, and never had a chance to drift.

That is the whole case for crossing the line from consultant to coder. Not that one person can out-build a specialist. That one person holding both ends of the same decision stops losing what a relay always loses.

常见问题

因为问题不在于我合作过的开发者水平不够,而在于距离。一份需求简报本质上是一次翻译,而翻译总会丢失一些信息,无论接手的人多么熟练都是如此。真正的解决办法只有一个:彻底去掉这一道翻译环节。

有好几个相互交织、反复出现的问题:设计和用户体验的意图,为了技术上的方便被悄悄舍弃;任务被完全照字面执行,却没人理解它为什么重要;把战略翻译成技术简报需要反复沟通,缓慢且成本高昂;还有一些技术上无可挑剔的成果,却完全没考虑它对转化或品牌造成的实际影响。

不是。我直接在真实项目中自学,边学边为实际客户项目构建,而不是先单独练习。这样更难,但也意味着我学到的每一项技能,都立刻要在真正重要的工作中接受检验。

确实有风险,某些环节也比系统课程要慢。但这也是唯一能真正检验一项战略是否在构建过程中被完整保留下来的方式,因为没有任何替代项目可以取代真实项目。

不是,而且这从来都不是重点。我的主张从来不是自己的构建能力能超过专业人士,而是同时掌握战略和构建,意味着一项决策背后的逻辑不必经受交接的考验,因为根本不存在需要交接的环节。

具体细节我更愿意留给自己,但从一份成熟的咨询事业转向亲自动手构建,并不是常见的选择,说这个决定让不少人感到意外,也不为过。最终是结果平息了这些疑虑。

两者都是。我个人的经历确实是特定于我自己的,但背后的根本问题,也就是需求简报每经过一次转手就会丢失信息,绝不是我一个人才会遇到的问题。这也正是Thabrew Effect由一人同时统筹战略、设计、构建与增长的原因所在。

不认为。这里的教训并不是“所有人都应该学编程”,而是每当一项决策需要经过交接,就存在信息丢失的风险,解决办法要么是去掉这个交接环节,要么是刻意确保背后的逻辑随之一并传递。对我来说,去掉交接环节是正确的选择,但这不会是对所有人都正确的答案。