Iterable Delivery Part 4: What Are the Blockers?

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


@shermanonsoftware.com | 1 year ago

Thinking through the implications of your iterable goals

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


@shermanonsoftware.com | 1 year ago

Defining your goal's characteristics in iterable ways

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


@shermanonsoftware.com | 1 year ago

Picking an iterative goal at a SaaS Scaleup

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


@shermanonsoftware.com | 1 year ago

Racism In, Racism Out

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


@shermanonsoftware.com | 3 years ago

AWS's ELB Is a Strangler

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


@shermanonsoftware.com | 4 years ago

Probing Questions for Executives Approving a Rewrite

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


@shermanonsoftware.com | 4 years ago

How to tell the difference between a task you can automate, and one you should

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


@shermanonsoftware.com | 4 years ago

When automation is an expensive waste of time

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


@shermanonsoftware.com | 4 years ago

A starting guide to help think through a software rewrite

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


@shermanonsoftware.com | 4 years ago

Making Link Tracking Scale – Part 2 Edge Caching

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


@shermanonsoftware.com | 4 years ago

It's Not Sabotage, They're Drowning

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


@shermanonsoftware.com | 4 years ago

Making Link Tracking Scale – Part 1 Asynchronous Processing

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


@shermanonsoftware.com | 4 years ago

A Cheesy Refactoring Analogy

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


@shermanonsoftware.com | 4 years ago

Database Is Not a Queue – A Live Example

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


@shermanonsoftware.com | 4 years ago

Ws for Software Developers

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


@shermanonsoftware.com | 4 years ago

Tactical API Obsolescence

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


@shermanonsoftware.com | 4 years ago

Creating Alternatives to Rewrites by Using Topics

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


@shermanonsoftware.com | 4 years ago

Two types of legacy system seniors: The Lord and The Reformer

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


@shermanonsoftware.com | 4 years ago

Database Is Not a Queue

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


@shermanonsoftware.com | 4 years ago

Replacement is not a release plan

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


@shermanonsoftware.com | 4 years ago