Define roles by what each person increasingly knows

Say you’re aiming for outcome-based product teams that write and operate software. Maybe you hire for roles in these teams like Software Developer, Product Owner, Designer, Tester. How do you define each role? We usually ask, what does each person do? A typical job description includes: what does the person do? What are they responsible …

Read moreDefine roles by what each person increasingly knows

The visible lines of division are not the meaningful ones

Imagine you’ve never cut open a human body before. Nor seen a diagram drawn by someone who has. Back before anatomy textbooks, the organs and systems of the human body would not have been obvious. I imagine asking, what are the parts that make up a person? and getting: head, arms, legs, hands, feet, chest, …

Read moreThe visible lines of division are not the meaningful ones

The service you build doesn’t do a thing. It participates in a thing.

Cognitive neuroscience likes to assign functions to parts of the brain. This bit does planning. This part does short term memory. This piece perceives faces. Does that bit really do planning? If you cut it out and held it, would it plan for you? No. And that other bit doesn’t perceive faces without messages from …

Read moreThe service you build doesn’t do a thing. It participates in a thing.

motivate/enable

In the UberConf expert panel, someone (Travis) posed a question about “how do you motivate/enable [teams stuck in legacy] to start growing and continuously learning again?” Laine Vyvyan had a good answer: make it safe for them, and then show them it is safe now. Usually growth stops because new ideas are slapped down. When …

Read moremotivate/enable

Developing software teaches us to design interfaces.

Developers talk about interfaces all the time. Even in the back end: APIs are crucial, because they let us connect our new programs into the world of existing software. They let us build on what exists. They let us build subsystems, and build higher-level systems using those. In real life, I talk about interfaces. An …

Read moreDeveloping software teaches us to design interfaces.

What functional programming and secure code have in common

As a programmer, especially a strong-typing functional programmer, I love abstraction. Defining what the program does and expressing that cleanly in code. The code should express little else. Now I’m studying secure code, and it is the opposite. It’s all about what can happen, not what should. So many nitty-gritty details of network protocols, memory …

Read moreWhat functional programming and secure code have in common