If you ever want to understand why I laugh when somebody asks what I do for a living, follow one package through my career. I started at Amazon helping sellers get products into the machine. Product idea. Sourcing. Manufacturing. Freight. Customs. Catalog. Inbound. The seller had a thing in the physical world and needed to make it compatible with a national operating system. Then I moved inside the machine. Receive the product. Identify it. Establish state. Make physical inventory and virtual inventory agree. If the computer says ten units exist and the shelf says nine, somebody has to reconcile truth.

Then pick. Find the correct thing, move it quickly, do not create a defect that everybody downstream will pay for. Then pack. Pack was never my great love. That is fine. You do not have to love every subsystem to understand what it feeds. Then conveyance, which I absolutely loved. Sensors, speeds, diversions, buffers, eligibility, merges, exceptions. I physically and virtually participated in engineering the thing. The packages became flow. Then ship dock. Doors, trailers, CPTs, staging, equipment, yard movement, downstream capacity. Suddenly a decision that looked fantastic inside one building could become expensive nonsense after the truck left.

Then network. How full is the trailer? Where does the equipment need to be next? What happens to the receiving building? Did we improve our building or did we improve the network? And then, because apparently the universe has a sense of humor, I ended up back on the seller side investigating Manual Missing From Inbound cases. A seller would say: I sent this. Amazon does not show what I expect. Now trace the thing through the machine and figure out where reality and system state separated. I had gone around almost the entire package lifecycle. Then Amazon wanted me building apps.

At that point I had to laugh. Seller onboarding to sourcing to inbound to inventory to pick to conveyance to dock to transportation to network to investigations to developer. Apparently the package completed its happy trail and eventually became an API. The reason I would tell this story to somebody in the Navy is that complicated organizations can make careers look fragmented. You get assigned to one function, then another, then another. The titles change. The systems around you change. The useful question is: what did the last environment teach you that the next one can use? I did not become a software person by forgetting operations. The physical machine taught me what software needed to know.

State. Ownership. Routing. Capacity. Eligibility. Exceptions. Dependencies. Escalation. Truth. A warehouse moves physical objects through architecture. Software moves information through architecture. The nouns change. The questions do not. Where does it enter? What is it? Who owns it? What is allowed to happen? Where does it go next? What if the normal path fails? Who handles the exception? What happens downstream? Those questions are portable.

That matters in your own business too. Do not buy a CRM because businesses are supposed to own CRMs. Follow the customer. Where do they enter? What information do you actually need? What promise did you make? Who owns the next state? What should happen automatically? What needs human judgment? What happens if they do not respond? What happens if you do not respond? Build the architecture around the journey, not around the software somebody sold you. I spent years following a package until the package taught me how to build software. That is ridiculous. It is also one of the cleanest explanations of my career I know. There is a business version of this lesson that I would keep close. Every company is a collection of promises connected by handoffs. A lead becomes a conversation. A conversation becomes a decision. A decision becomes onboarding. Onboarding becomes delivery. Delivery becomes follow-up. Follow-up becomes either another relationship or a quiet ending. If one of those transitions depends on somebody remembering it at exactly the right moment, that is not yet architecture. It is hope.

You do not need expensive software to fix that. First name the states. Decide what makes something enter a state and what makes it leave. Decide what information must travel with it. Decide which normal transitions can happen automatically and which exceptions deserve a human. Only then choose tools. Tools should implement the operating model, not become the operating model. One of the things experience taught me is to respect the difference between a rule and the reason the rule exists. Rules make repeatability possible. Reasons make judgment possible. I want both. If all you teach is the rule, the first unusual condition can paralyze the person. If all you teach is judgment, every ordinary task becomes a fresh invention.

The strong system has a boring normal path and an intelligent exception path. Normal work should move with very little drama. The unusual thing should become visible. Somebody with the right context should own it. The decision should leave a trail. Then the system should return to normal instead of making the exception the new permanent process. Documentation belongs inside the work whenever possible. I do not want a team to finish operating and then begin a second job called “prove that we operated.” If a job changes state, record the state. If a decision changes the plan, record the decision. If an exception is resolved, preserve enough of the reason that the next person can learn from it.

That history becomes extraordinarily valuable later. You can see where work dwells, which exceptions repeat, what changed before performance improved, and where a process quietly depends on one person's memory. Good documentation is not a pile of paperwork. It is the memory of the operating system. And keep some joy in it. Systems work can sound painfully serious when written in corporate language. In real life it is full of absurdity. Boxes go somewhere impossible. A tiny handwritten note becomes the seed of a giant process. The machine makes a noise nobody has heard before. A person solves something with a trick so simple everybody laughs. Somebody sends a six-word message that makes perfect sense to three people and looks like alien language to everybody else.

Those moments are part of why I loved the work. A complicated system is a puzzle that talks back. You make a change and reality answers. Sometimes it says yes. Sometimes it says absolutely not. Either answer teaches you something. The part I would want you to remember years from now is that competence is not knowing everything in advance. Competence is knowing how to find out. Establish state. Ask what changed. Find the constraint. Talk to the person closest to it. Check the evidence. Make the smallest useful intervention you can. Observe the response. Update your model. That loop works in a warehouse, a software project, a business, a classroom and a life. You are allowed to learn while moving. You just need enough discipline to know what you changed and enough humility to let reality correct you.

There is a business version of this lesson that I would keep close. Every company is a collection of promises connected by handoffs. A lead becomes a conversation. A conversation becomes a decision. A decision becomes onboarding. Onboarding becomes delivery. Delivery becomes follow-up. Follow-up becomes either another relationship or a quiet ending. If one of those transitions depends on somebody remembering it at exactly the right moment, that is not yet architecture. It is hope. You do not need expensive software to fix that. First name the states. Decide what makes something enter a state and what makes it leave. Decide what information must travel with it. Decide which normal transitions can happen automatically and which exceptions deserve a human. Only then choose tools. Tools should implement the operating model, not become the operating model.

One of the things experience taught me is to respect the difference between a rule and the reason the rule exists. Rules make repeatability possible. Reasons make judgment possible. I want both. If all you teach is the rule, the first unusual condition can paralyze the person. If all you teach is judgment, every ordinary task becomes a fresh invention. The strong system has a boring normal path and an intelligent exception path. Normal work should move with very little drama. The unusual thing should become visible. Somebody with the right context should own it. The decision should leave a trail. Then the system should return to normal instead of making the exception the new permanent process.

Documentation belongs inside the work whenever possible. I do not want a team to finish operating and then begin a second job called “prove that we operated.” If a job changes state, record the state. If a decision changes the plan, record the decision. If an exception is resolved, preserve enough of the reason that the next person can learn from it. That history becomes extraordinarily valuable later. You can see where work dwells, which exceptions repeat, what changed before performance improved, and where a process quietly depends on one person's memory. Good documentation is not a pile of paperwork. It is the memory of the operating system. And keep some joy in it. Systems work can sound painfully serious when written in corporate language. In real life it is full of absurdity. Boxes go somewhere impossible. A tiny handwritten note becomes the seed of a giant process. The machine makes a noise nobody has heard before. A person solves something with a trick so simple everybody laughs. Somebody sends a six-word message that makes perfect sense to three people and looks like alien language to everybody else.

Those moments are part of why I loved the work. A complicated system is a puzzle that talks back. You make a change and reality answers. Sometimes it says yes. Sometimes it says absolutely not. Either answer teaches you something. The part I would want you to remember years from now is that competence is not knowing everything in advance. Competence is knowing how to find out. Establish state. Ask what changed. Find the constraint. Talk to the person closest to it. Check the evidence. Make the smallest useful intervention you can. Observe the response. Update your model. That loop works in a warehouse, a software project, a business, a classroom and a life. You are allowed to learn while moving. You just need enough discipline to know what you changed and enough humility to let reality correct you.

There is a business version of this lesson that I would keep close. Every company is a collection of promises connected by handoffs. A lead becomes a conversation. A conversation becomes a decision. A decision becomes onboarding. Onboarding becomes delivery. Delivery becomes follow-up. Follow-up becomes either another relationship or a quiet ending. If one of those transitions depends on somebody remembering it at exactly the right moment, that is not yet architecture. It is hope. You do not need expensive software to fix that. First name the states. Decide what makes something enter a state and what makes it leave. Decide what information must travel with it. Decide which normal transitions can happen automatically and which exceptions deserve a human. Only then choose tools. Tools should implement the operating model, not become the operating model.

One of the things experience taught me is to respect the difference between a rule and the reason the rule exists. Rules make repeatability possible. Reasons make judgment possible. I want both. If all you teach is the rule, the first unusual condition can paralyze the person. If all you teach is judgment, every ordinary task becomes a fresh invention. The strong system has a boring normal path and an intelligent exception path. Normal work should move with very little drama. The unusual thing should become visible. Somebody with the right context should own it. The decision should leave a trail. Then the system should return to normal instead of making the exception the new permanent process.

Documentation belongs inside the work whenever possible. I do not want a team to finish operating and then begin a second job called “prove that we operated.” If a job changes state, record the state. If a decision changes the plan, record the decision. If an exception is resolved, preserve enough of the reason that the next person can learn from it. That history becomes extraordinarily valuable later. You can see where work dwells, which exceptions repeat, what changed before performance improved, and where a process quietly depends on one person's memory. Good documentation is not a pile of paperwork. It is the memory of the operating system. And keep some joy in it. Systems work can sound painfully serious when written in corporate language. In real life it is full of absurdity. Boxes go somewhere impossible. A tiny handwritten note becomes the seed of a giant process. The machine makes a noise nobody has heard before. A person solves something with a trick so simple everybody laughs. Somebody sends a six-word message that makes perfect sense to three people and looks like alien language to everybody else.

Those moments are part of why I loved the work. A complicated system is a puzzle that talks back. You make a change and reality answers. Sometimes it says yes. Sometimes it says absolutely not. Either answer teaches you something. The part I would want you to remember years from now is that competence is not knowing everything in advance. Competence is knowing how to find out. Establish state. Ask what changed. Find the constraint. Talk to the person closest to it. Check the evidence. Make the smallest useful intervention you can. Observe the response. Update your model. That loop works in a warehouse, a software project, a business, a classroom and a life. You are allowed to learn while moving. You just need enough discipline to know what you changed and enough humility to let reality correct you.

There is a business version of this lesson that I would keep close. Every company is a collection of promises connected by handoffs. A lead becomes a conversation. A conversation becomes a decision. A decision becomes onboarding. Onboarding becomes delivery. Delivery becomes follow-up. Follow-up becomes either another relationship or a quiet ending. If one of those transitions depends on somebody remembering it at exactly the right moment, that is not yet architecture. It is hope. You do not need expensive software to fix that. First name the states. Decide what makes something enter a state and what makes it leave. Decide what information must travel with it. Decide which normal transitions can happen automatically and which exceptions deserve a human. Only then choose tools. Tools should implement the operating model, not become the operating model.

One of the things experience taught me is to respect the difference between a rule and the reason the rule exists. Rules make repeatability possible. Reasons make judgment possible. I want both. If all you teach is the rule, the first unusual condition can paralyze the person. If all you teach is judgment, every ordinary task becomes a fresh invention. The strong system has a boring normal path and an intelligent exception path. Normal work should move with very little drama. The unusual thing should become visible. Somebody with the right context should own it. The decision should leave a trail. Then the system should return to normal instead of making the exception the new permanent process.