News for hackers. Stuff that matters.
Re:The age of cargo cult Agile must end by DubiousPusher on Tuesday February 21, 2023 @07:00PM (#34889579)
There is nothing in agile stopping you from producing comprehensive designs or specs.

Every project I take on these days has a pre-production phase. This phase is 1-3 sprints. It involves speccing sophisticated systems, designing UX and several spikes to evaluate technology. These all have outputs in the form of documents. Even the spikes should produce a short document outlining the technology recomendations and the reasons for the recommendation.

Similarly, in a project with a more research orientation, we perform spikes which involve building various prototypes and documenting their feasibility.

None of this conflicts with agile principals nor creates a situation in which engineers and designers are pressured to forsake, "building it right".

In fact the only differences between this approach and "waterfall" is that there is frequent accountability and there is protection for the development team because they are still choosing what comes into a sprint.

I generally find that whatever form the various criticisms of agile take over the years, there are generally two impulses really at work underneath them. Either management is trying to undermine the protections agile and scrum create for the dev team by violating the "only pigs talk" principal or it's developers trying to avoid regular accountability so they can build their castles in the air.

To be 100% clear, I'm not even saying that approach never works. There are phenomenal developers who disappear for weeks and come back with magic. But often enough, developers who cannot deliver try to perform the same act and their incompetence sinks a project. The development team cannot collectively afford the risk to find out which kind of developer you might be and therefore you owe them accountability. We all owe each other accountability.

Re:The age of cargo cult Agile must end by lumb63 on Tuesday February 21, 2023 @07:23PM (#34889774)
Your last paragraph makes me wonder: are there two sets of people, one of people who perform better under Agile, and one of people who don’t? We acknowledge the above is true for, e.g., work from home, but have many ever taken the time to consider the same might be true for development process?

I’ve worked with (and supervised) developers who I’m fine with sending off into their corner to do what they think is best for weeks at a time. I’m confident they’ll come back with something great, more often than not. I’ve also seen developers who I’m not comfortable with sending off on their own for even a day in between daily standups.

I wonder if there’s a process that allows to reap the spoils of both types of developers. Naturally, I’d rather have a team of the first type and think hiring those is the best way, but inevitably, some of the second type make their way in.

Re:The age of cargo cult Agile must end by AnimalMuppet on Tuesday February 21, 2023 @08:21PM (#34890245)
I wonder if the difference is not developers, but managers who can/can't do agile.
Re:The age of cargo cult Agile must end by hackerfromthefu on Tuesday February 21, 2023 @08:26PM (#34890293)
And there are also adaptable people that make it work under most or any system, and another type of people who find the failure cases for almost any type of system.
Re:The age of cargo cult Agile must end by desmosxxx on Tuesday February 21, 2023 @09:38PM (#34890890)
What this normally looks like is a project leader that syncs with each developer as needed and aggregates that into the project management overview with no/minimal large stand-ups or syncs. If two developers should adjust or be in contact than the leader facilitates that. etc.

The agile framework can still be followed by the project leaders, but the developers (who don't like micromanaging) can be shielded from any rigidness.

Re:The age of cargo cult Agile must end by convolvatron on Tuesday February 21, 2023 @08:10PM (#34890160)
waterfall is a strawman. any pre-agile organization that signed off on a two-year plan and showed up two years later saying 'where's my thing?' is just as much of an idiot as they would be today.

yes, making plans that you indend to continuously adapt to the situation at hand doesn't conflict with agile. but that still leaves one wondering what agile really brought to the table. time boxing everything at a fixed 2 week interval?

Re:The age of cargo cult Agile must end by d_sem on Tuesday February 21, 2023 @10:22PM (#34891225)
The us vs them mentality between Agile and Waterfall that coaches often preach is itself a violation of the agile principle of people over process. You should identify what process best fits your product/customer/team, then use that process. Some products require lots of upfront requirement elicitation before you can even identify the appropriate solution-- and that's ok. Imagine prioritizing a working software in a sprint over figuring out what your customer needs.

I recently observed from the outside a project that took upwards of two years of requirement elicitation, IP contracting, complex distribution of ownership between multiple competing companies, multiple OS's, complex hardware platform design revisions to support the intended software functionality. Not a single line of code was written for two years. Was this state of the art engineering? YES. Did they operate under the principles of the agile manifesto? YES.

Re:The age of cargo cult Agile must end by lmm on Wednesday February 22, 2023 @12:53AM (#34892150)
> waterfall is a strawman. any pre-agile organization that signed off on a two-year plan and showed up two years later saying 'where's my thing?' is just as much of an idiot as they would be today.

It's not a strawman. Those organisations are very real.

> yes, making plans that you indend to continuously adapt to the situation at hand doesn't conflict with agile. but that still leaves one wondering what agile really brought to the table. time boxing everything at a fixed 2 week interval?

Agile emphasises that you need to deliver something working to the customer, every 2 weeks. Without that it's very easy to call something code-complete or tested but not released or whatever, and you get further and further behind where you think you are because none of the stuff you thought you'd finished actually works.

Re:The age of cargo cult Agile must end by DubiousPusher on Wednesday February 22, 2023 @12:32PM (#34899277)
I do mostly agree. I'm speaking in broad terms here. Most effective software developmwnt for moat of software development history has probably run off some bespoke to the organisation hybrid of something resembling waterfall in some cases and resembling agile in others.
Re:The age of cargo cult Agile must end by GuB-42 on Tuesday February 21, 2023 @08:28PM (#34890304)
> There is nothing in agile stopping you from producing comprehensive designs or specs.

Agile manifesto, 2nd point "Working software over comprehensive documentation".

It certainly doesn't stop you but if you focus on writing comprehensive documentation before working software, it is not Agile, it is something else.

As for Agile offering "protection", maybe I misunderstand your point but for me, Agile is the opposite of protection. I think that if there is one thing that defines Agile, it is that the customer is very close the the team, so it can be, well, agile. The customer has to be there to see how things are going and adjust course as necessary, unlike the waterfall style where a formal contract protects both the team and customer.

Note that I don't consider "waterfall" bad, and "Agile" good. It is just different approaches for different situations. If the customer wants an "hands off" approach, or if you write certified software, then I believe that "waterfall" style approaches are superior most of the times.

Re:The age of cargo cult Agile must end by sodapopcan on Tuesday February 21, 2023 @09:26PM (#34890775)
OP's opening statement was a little off. What OP went on to describe was not "comprehensive documentation" in the Agile sense but merely "documenting progress and learnings as to not repeat mistakes". The "comprehensive documentation" in Agile is trying to avoid the "We have delivered exactly what you asked for even it if is no longer what you need."
Re:The age of cargo cult Agile must end by michaelcampbell on Tuesday February 21, 2023 @09:35PM (#34890861)
> Agile manifesto, 2nd point "Working software over comprehensive documentation".

Isn't the 0'th point that agile still values the stuff on the right, it just values the stuff on the left more?

Re:The age of cargo cult Agile must end by randomdata on Tuesday February 21, 2023 @11:37PM (#34891714)
> Agile manifesto, 2nd point "Working software over comprehensive documentation".

Which is funny given that the father of TDD, Kent Beck, is one of the Agile Manifesto signatories. What does TDD give you before working software? Comprehensive documentation.

Re:The age of cargo cult Agile must end by GuB-42 on Wednesday February 22, 2023 @04:20AM (#34893421)
TDD doesn't give you documentation, it gives you tests. Typically automatic unit tests, which is code.

Tests serve a different purpose. They are not for humans to read, they are to make sure your software works ("working software"). They are an important component of Agile because it makes it easier to change your code without breaking things.

Now, I am not big into TDD, but for me, it is an approach that is fully compatible with the Agile manifesto.

Re:The age of cargo cult Agile must end by randomdata on Wednesday February 22, 2023 @08:55AM (#34895480)
> TDD doesn't give you documentation, it gives you tests

Test is the action that is carried out from the documentation, possibly by a human, but more likely by a machine. We are talking about the document that describes what the program is intended to do, which is then followed to carry out the tests.

> They are not for humans to read

I should hope your documentation is there for humans to read. If not, even small modifications required as business needs change would become a complete nightmare. The tests you need to perform, and thereby the documentation that needs to be followed, will not remain static through the entire lifetime of the application.

Re:The age of cargo cult Agile must end by Deradon on Wednesday February 22, 2023 @05:33AM (#34893873)
TDD = Test Driven Development

It's not comprehensive documentation, it's a process of software development. Start with the most simple test first, make it green via the most simple implementation, refactor. (Red/Green/Refactor). Repeat until you can not adjust your tests/specs and implementation anymore.

Doing TDD you'll not create comprehensive documentation upfront but will switch your testing- and implementation-hat every few minutes.

Re:The age of cargo cult Agile must end by randomdata on Wednesday February 22, 2023 @08:57AM (#34895520)
> It's not comprehensive documentation

Not at first, but by the time your software is working, you will have comprehensive documentation about it.

> Doing TDD you'll not create comprehensive documentation upfront

Where did the idea of 'upfront' come from? Having comprehensive documentation before you have working software doesn't mean having comprehensive documentation before you have any software.

Re:The age of cargo cult Agile must end by DubiousPusher on Wednesday February 22, 2023 @12:45PM (#34899518)
Regarding documentation, my team tends to choose parts of a project to document in detail before the project begins. These are usually around requirements and dependencies that have a low likelihood of changing. But throughout the project, the product is the gospel and the docs evolve towards that until delivery.

I suppose if you did a pre-planning phase like ours but comprehensively documented your entire product and then delivered exactly to those docs 8 months later without input, you'd not be doing agile for sure.

When I say protection, I don't mean protection from the customer. The scrum process protects the team by requiring the ICs on the dev team to choose the user stories or work items which will come into the sprint. This prevents management from committing the team to work they themselves do not think can be accomplished. This meeting should leave a written record which is shield but also the acccountability for the dev team.

Re:The age of cargo cult Agile must end by ydlr on Tuesday February 21, 2023 @09:28PM (#34890797)
What is a "spike?"
Re:The age of cargo cult Agile must end by sodapopcan on Tuesday February 21, 2023 @09:35PM (#34890857)
A spike is when you do exploratory work on a concept/ticket/whatever to get a sense for its feasibility, utility, and how long it will take. It often goes hand-in-hand with TDD but it doesn't have to.

Basically you try and get as much of the feature implemented as quickly as possible. Forget tests, forget well-named identifiers (just call 'em foo1, foo2, foo3 if you're stuck), forget breaking other part of the app, just get enough of the feature working as quickly as possible that you can identify pain points. If you get enough of it working it can even be used as a prototype for the customer to play with to see if they actually want it.

Of course, when _and if_ you decide to actually implement the feature, you gotta throw away all your spike work or you're going to have a bad time. It is of course perfectly acceptable to keep it around on another branch for reference.

Re:The age of cargo cult Agile must end by DubiousPusher on Wednesday February 22, 2023 @12:29PM (#34899226)
I see spikes as user stories that instead of a deliverable as their output, their output is the answer to a question.
Re:The age of cargo cult Agile must end by sodapopcan on Wednesday February 22, 2023 @02:40PM (#34901472)
Absolutely, that's a good way to put it. All feature spikes should have tickets defining what it's trying to validate.

From a TDD standpoint, I also use the word "spike" to describe any quick experimental throw-away work done on a small slice of functionality before writing the first test. These should not have tickets as that would be a bit over-the-top (and you don't always know if you're going to do them).