原文
原始链接: https://news.ycombinator.com/item?id=41550017
敏捷宣言主张优先考虑个人交互和协作,而不是遵守流程和工具;优先考虑工作软件,优先考虑全面的文档;优先考虑客户协作,优先考虑合同谈判;优先考虑响应变化,优先遵循预定义的计划;并且重视简单设计、持续交付、卓越技术、 和可持续的步伐。 这些原则强调软件开发的灵活性、响应能力和效率。 工作软件是指满足最低可接受功能的软件,而正在开发的功能也应该是功能性的,但可能需要根据用户反馈进行迭代和细化。 这些原则作为指导方针,促进整个项目生命周期的适应性、学习和实验。 虽然有些人可能认为这些原则不切实际或过于理想化,但它们鼓励利益相关者之间进行迭代、增量改进和主动沟通,从而提高软件质量并提高客户满意度。
Stand up. Walk out of office. Get on train. Arrive at user’s office. Go sit next to user. Spend afternoon understanding how they use the software you are supposed to be building.
Bin the sprint planning, retros, gantt charts, standup and whatever fucking sprint poker is.
Go. Speak. To. User.
> “Value working software over comprehensive documentation".
> So, never write documentation?
Read the phrase again, with a slightly different word in place
Prefer working software over comprehensive documentation.
I.e. working on building the thing instead of obsessing about gant charts.
You can do a Gantt chart if you want. But focus primarily on the software. That’s more important.
> And how do you define "working" software? What about features in development?
Intentionally left vague. “Working”depends on many factors that only the people involved with the building of it can know.
Mainly by getting on a train and sitting down with your users to figure out exactly what they consider to be working software. See above.
> “Value customer collaboration over contract negotiation"
You’ve not been around much contract consultancy work then?
Hey, company X we’d like some software that does Y.
Do you
1. Enter into a lengthy process to establish exact requirements and agree on exactly what needs to be delivered up front, without having touched any software, and trying to cost it all out etc etc
2. Get on a train and sit with the user developing some proof of concepts quickly to figure out what the hell it is they want.
1 is waterfall and contract negotiation. 2 is responding to change. example is a user saying “oh, actually, could we try the page header in pink instead please” after asking for it to be blue last week.
> lol. I have never talked to a customer, in my entire career.
You’ve never spoken to a user?
You need to start.
Ideally right now.
Stand up. Walk away from your desk. Find a user to speak to. Ask them what they think of the software.
> Why the fuck is this in an engineering guideline?? Do you find a lot of developers doing contract negotiation?
Well it’s not in the contract so I’m not going to work on that feature because we won’t get paid for it.
Even though some enterprising engineer went and got on a train and sat with the user for a day and figured out “oh shit, we’re actually building the wrong fucking thing”.
Nope, not in the contract. User doesn’t get what they want because we negotiated a contract.
> Value responding to change over following a plan
Waterfall: We have an agreement and WILL ONLY BUILD ACCORDING TO THE PLAN. We will never deviate from the plan. The plan must never change. Ever.
agile: shit, I went and got on a train and sat with the user and we’ve been building the wrong thing. Time to rethink this.
> The rest of the "12 principles" are equally stupid and nonsensical. They only "seem right" if you don't think about them for more than 5 seconds, and you live in some kind of fantasy world. It is absolute bullshit, completely disconnected from reality. (But boy do executives love to eat this shit up, because they will never have to figure out how to implement it)
A lot to unpack here.
No, they’re not stupid. They may be “of their time” but they’re definitely not stupid.
They seem more right the more I think about them. I think about agile a lot and how to teach the attitudes contained within the principles to my juniors.
Just to reiterate the important point there — the principles are a collection of attitudes. They are not explicit instructions.
No, it’s actually useful. Would I base an entire team methodology solely on this? No. But it informs a significant part of it.
Executives don’t care about by he agile manifesto. Mostly because no one posts about it on linked in and they’d rather pay someone ridiculous sums of money to make the team “Scrum” and fuck about doing whatever the fuck sprint poker is (execs always want to spend money instead of doing the work).
According to the LinkedIn post it made some other team really efficient. They read about it on linked in. It must be true.
—
FYI — just because you don’t understand or see the value in something does not mean it isn’t valuable.