Design patterns are among those topics that are often dismissed as "outdated." It’s true that the explicit patterns in the Gang-of-Four book apply only to OO & could use an overhauling. (Command, for example, needs to be reexamined in the light of Lambdas.) BUT… 1/4
The important thing is learning to think in patterns, not to memorize specific ones. When you look at systems designed independently by different people, focusing on specific problems or issues and how they’re addressed, patterns emerge. 2/4
Some solutions seem to pop up spontaneously in many places. There are infinite variations in the details, but the core approaches are eerily similar. Those are design patterns. Keep an eye out for them and try to remember them when you see them. Given them a name. 3/4
The next time you find a similar problem or issue in your own code, you’re one step ahead in developing a solution that’s tailored to your specific context. You also now have a shared vocabulary with other architects. That’s invaluable. 4/4
• • •
Missing some Tweet in this thread? You can try to
force a refresh
IMO, becoming "Agile," whatever that is, is not a worthy goal. Our goal is to be a successful business, and doing that usually involves providing valuable software to our customers sooner rather than later.
A goal of "doing Scrum" or "becoming Agile" is just a distraction (as compared to a goal of solving our customer’s problems or achieving strategic ends or improving our organization).
Inappropriate goals create massive disruption (e.g. as an army of Scrum or SAFe trainers run roughshod over the organization) and usually solves none of the most pressing problems that the business has.
A common flaw in stories is the form "Someone <in role X> wants to do <some task>" I’m happy for them. Glad they want to do that 😄. The story, however, describes what they actually do in the domain. "Someone <in role X> does <some task> because…"
Or better yet: "In order to <get this valuable result>, someone <in role X> does <this domain-level activity>."
Don’t make that a required template, though. When it comes to stories, templates (especially the Conextra template) are _never_ a good idea, IMO.
I see a lot of comments about customers on Twitter that are just arrogant BS. Ppl say "the customers lie to us" and "never let the customer tell you what to do," often mixed in with "the stakeholders and CEO are idiots." 1/6
People trot out that Henry Ford chestnut about fast horses (which he never said). They show a gif of The Homer (the car). What’s left is the team building whatever random crap pops into their heads without regard to the needs of customers or the business. 2/6
Good luck with that. Believe me, you are not Steve Jobs. That brilliant idea that you’re bulling ahead with, without any input from anybody, is probably complete garbage. You do not know more about what customers need than the customers. Sorry. 3/6
In The Hitchiker’s Guide to the Galaxy, the entry for planet Earth in its entirety reads: "Harmless." (Though Ford Prefect’s revisions will change that to "Mostly harmless."). That’s the way I feel about Scrum. Mostly harmless. 1/4
Agile works fine without Scrum, of course, and adding Scrum to it is mostly harmless. Unless, that is, you adopt Scrum as a rigid practice framework and thin veneer of fake agility over what you do now, without understanding any of the underlying Agile principles. 2/4
Then it’s not harmless at all. I’d start with Agile sans Scrum. Learn how to provide value to your customers, perhaps using concrete practices like those in XP. Only then, if you feel the need for the formal structural overlay that Scrum describes, add Scrum. 3/4
Just took the @Scrumdotorg public open assessment [tinyurl.com/yzkqwhbm], something that I do periodically just to see the sorts of things that they’re testing for. 1/10
I’m pleased to see several questions where the wrong answers include "project manager" [as a team member or person of influence] because the presence of product managers is probably the one most telling indicator of a DarkScrum shop. 2/10
A couple of questions were interesting in that they highlight things that I think Scrum gets really wrong. 3/10
There’s no manager in Scrum, but you can’t just fire all the managers.
Dawid asks a great question. The answer is in systems thinking. All organizations are systems of interlocked components. The only way to change managment structure is to change the whole system. So, how? 1/6
Let’s start with budgeting. It’s best if your teams are stable. Don’t form teams around the work (e.g. projects). Instead, bring work (e.g. products or product-related stories) to the teams. Put another way, fund the teams, not the work. Budgeting that is easy. 2/6
6 people’s salaries * load + overhead. You don’t need a manager for that. The problem now becomes the strategic one of deciding what work is important enough for the team to do. That’s an upper-management, not a team-level project-manager job. 3/6