The Agile Manifesto says that it's better to get get things to work than it is to write "comprehensive" documentation. It doesn't say you should write no documentation at all. Don't document things that don't need to be documented. 1/4
More to the point, create things in such a way that they don't need to be documented. For example, arithmetically transparent, fully self documenting code, needs only a bit of architectural stuff (mostly diagrams, maps, & few pages of "why"). 2/4
Similarly, if your architecture closely maps closely to the Domain, you don't need to document the parts that just reflect the domain. If the code and architecture is done right, there's so little extra documentation that keeping it up to date is not difficult. 3/4
I suppose that there are large systems so inherently complex that the above doesn't apply (and big-ball-of-mud-spaghetti-code-legacy-systems) but those are the exception, not the rule. If you're just starting, start right. 4/4

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Allen Holub

Allen Holub Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @allenholub

30 Oct
Often, people think they need documentation to assure continuity of knowledge in the face of rapid turnover. If that's you, then eliminate the need for so much documentation by fixing the rapid-turnover problem. Churn is not a fact of life. 1/4
Keep salaries current with what your competition will pay to hire people away. Provide a solid working environment full of relatedness/collaboration, autonomy/self-organization, mastery/learning, purpose. Create a psychologically safe environment. Trust. 2/4
Provide an ideal workplace where people want to be, and then don't require them to be there if they can't for some reason. Treat people as volunteers, not conscripts. 3/4
Read 4 tweets
26 Oct
The reason for decisions to happen at the team level is agility plain and simple. This applies even to strategic decisions, which are best made collaboratively at the executive-team (they are a team) level with input from the rest of the org. 1/5
If a decision doesn't happen at the place the work is done, the entire process slows down, sometimes to a crawl. 2/5
That delay, in turns, vastly increases the odds of the decision being a wrong one, both because of the telephone/whispers problem but also because the feedback loop is no longer swift or short enough. 3/5
Read 5 tweets
24 Oct
The only way to garner respect is to respect other people. I've worked with shops, however, where "management" held the teams in contempt. They blamed the teams for management-induced problems. 1/4
They called them "lazy" and they rolled their eyes when they complained to each other about how teams wouldn't self organize (all the while being more than happy to punish the teams for truly self organizing). 2/4
Given that abuse, nobody respected management. This was a DarkAgile shop, as you'd expect. Respect is a key Agile value, and there wasn't any. It is literally management's job to create a culture of respect. These ppl weren't doing that. 3/4
Read 4 tweets
22 Oct
I've been thinking about this tweet from @michaelbolton. The difference is that, in a team that really understands inspect-and-adapt, observation, experience, and experimentation is happening during development. 1/ Image
@michaelbolton Also, a team that really has the customer's interests in mind will give the customer choices. if there's no observable difference after deploy, just deploy. 2/
@michaelbolton If you're fixing a longstanding problem, explain what's different as part of the UX. The change will probably be welcome. 3/
Read 7 tweets
15 Oct
The idea of "sales" is hard in an Agile world where the thing you're selling is changing all the time. The sales people, however, can work to increase sales by identifying places where the user community (not one "prospect," but the general community) needs improvement. 1/5
In other words, the sales folks are alies who are effectively collecting potential user stories for us. For that to work, however, you can't have them screaming for some feature just because a single client wants it. That behavior is amplified by a commission model. 2/5
It's actually money in their pockets if they can get you to make a single client happy. We need to change that to a model the rewards making the community as a whole happier, not single customers. 3/5
Read 5 tweets
14 Oct
It's a well kept secret that most programmers would program even if we didn't get paid for it. (Shhhh!). I think because of that, we sometimes lose track of the fact that we work for businesses, and that businesses in turn work for their customers. 1/4
That's where the money with which they pay us to have fun ultimately comes from—customers. If we don't make the people with the money happy (that is, the customers), the business will cease to exist (and no more fun for us). 2/4
So, it's our primary job to make those customers happy by providing something that THEY find valuable. Not "internal stakeholders." Not "business people." Not some Product Mgr that calls themselves a "customer." Actual customers. The ones with the money. 3/4
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!