Implications, defining what has to be true for your goal to succeed, are the hardest step. Step 4, The Blockers, are relatively easy. What’s Stopping You? What is stopping you and your team from ma… | Continue reading
Part Three of my series on iterative delivery You have a goal, you have characteristics, now it’s time to ponder the implications. The implications are things that would have to be true in order f… | Continue reading
Part 2 of my series on Iterative Delivery Congratulations, you have a goal! Now what? Now, it is time to write down what your goal means to you. What measurable things will be true about you… | Continue reading
Note: This is part of my series on Iterative Delivery When you are in Scaleup mode, picking a goal to iterate on should be straightforward. In Scaleup mode, picking an iterative goal should be stra… | Continue reading
Most developers I know assume that software can’t be racist unless they actively make it racist. After all, On the Internet, No One Knows You’re a dog. To paraphrase Charles Babbage: Racism In, Ra… | Continue reading
The Strangler is an extremely effective technique for phasing out legacy systems over time. Instead of spending months getting a new system up to parity with the current system so that clients can… | Continue reading
A while back, I wrote a guide for developers preparing for a system rewrite. This time I’m talking to the other side of the table; executives being asked to approve a system rewrite. Here ar… | Continue reading
The prospect of automating manual tasks emits a siren song to most developers. Like a siren, the call often leads you straight into disaster. Best intentions often end up leaving companies with co… | Continue reading
By the time a company gets to midsize, there will be a pool of people to perform ad hoc, automatable tasks. Most of these tasks involve manually generating reports for someone else. To someone who… | Continue reading
I often talk about the Best Alternative To A Total Rewrite. The idea that you should know the alternatives to a rewrite before making a decision. Even when there is no alternative to a rewrite you… | Continue reading
In Part 1 of Making Link Tracking Scale I showed how switching event recording from synchronous to asynchronous processing creates a superior, faster and more consistent user experience. In Part 2… | Continue reading
As you gain visibility into system problems, you’ll often experience push back like this: I refactored the code from untested and untestable, to testable with 40% test coverage. The senior ar… | Continue reading
Link Tracking is a core activity for Marketing and CRM SaaS companies. Link Tracking often an early system bottleneck, one that creates a lousy user experience and frustrates your clients. In thi… | Continue reading
Software is immortal, but systems age. They reach maximum capacity and can’t scale to support additional clients. They get twisted into knots as your business evolves in ways the system wasn&… | Continue reading
A while ago I wrote an article, Your Database is not a Queue, where I talked about this common SaaS scaling anti-pattern. At the time I said: Using a database as a queue is a natural and organic pa… | Continue reading
You may remember learning the 5 Ws: Who, What, Where, When and Why, way back in Kindergarten. Today I want to talk about the 5 Ws for Developers and how they will transform you from a developer th… | Continue reading
For a SaaS company, the cost of sudden API changes aren’t measured in your developers’ time, but your clients’ trust and goodwill. Worse, the burden doesn’t fall on small clients at your low… | Continue reading
I’ve been explaining what queues are, and why using a database as a queue is a bad idea, today I’m going to expand your toolkit, explain how Topics create alternatives to rewrites, and give a concr… | Continue reading
Mission critical legacy systems tend to attract two flavors of Senior Developer: The Lord and The Reformer. The Lord runs his team to ensure his usefulness to the company and his primacy in the de… | Continue reading
SaaS Scaling anti-patterns: The database as a queue Using a database as a queue is a natural and organic part of any growing system. It’s an expedient use of the tools you have on hand. It’s … | Continue reading
Replacement is not a release plan, it’s a sign that you are solving developer’s pain instead of client pain. Deployment gets glossed over in the pitch: First we will mimic the existing functionalit… | Continue reading