Live data from Hacker News

DIB Guide: Detecting Agile BS (2018) [pdf]

media.defense.gov

11–20 of 58 posts

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#11
post #2

Great document overall! > The purpose of this document is to provide guidance to DoD program executives and acquisition professionals on how to detect software projects that are really using agile development versus those that are simply waterfall or spiral development in agile clothing (“agile-scrum-fall”). Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be.…

> Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be. Doing waterfall in the exact sense that is usually described will almost certainly never work well. People usually focus on the design phase, but I think the much more catastrophic part of 'waterfall' is doing testing only once development is complete. Now, you absolutely can successfully run software proje…

I think that you bring up a great point regarding a hybrid between agile and waterfall, within the context of government.

This is my own experience, but I was involved with a multi-year project for a federal agency that did exactly this. I think what many people don't understand is that the design phase is a byproduct of the internal processes necessary for even getting to the point of developing a system in the government. What I mean by this is, systems don't appear within based on good ideas or pitch decks, they start with policies, and based on those policies, procedures.

Why is that necessary in government? Because typically, there are laws, executive orders, regulations, and various other policy devices that have to be implemented at the agency level, there is a review period that allows for input from affected external agencies, etc. In some cases, there is even involvement from congressional committees and their staff members. This is especially true if appropriations are necessary for funding a program.

I can honestly say it took a year and a half just to develop the policies and procedures, to coordinate them, and to begin work on the system. That was ridiculously quick, given the scope of the project. The good thing about doing it this way, is you have a very clear roadmap at the outset. The downside is, the process for making significant changes to the system's functional requirements can be a challenge (e.g., changes to policy/procedures, another review period, etc.).

That being said, once we actually began the development phase we took a much more agile approach. We would hold daily stand-ups, regular testing/feedback sessions with customers, established product owner(s), etc. I would say it worked really well, but it was not without difficulties. Those difficulties are far bigger than agile vs. waterfall though, it's just the way the bureaucracy functions (for better or worse).

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#12
post #2

Great document overall! > The purpose of this document is to provide guidance to DoD program executives and acquisition professionals on how to detect software projects that are really using agile development versus those that are simply waterfall or spiral development in agile clothing (“agile-scrum-fall”). Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be.…

If folks remember, one of the seminal Waterfall documents was actually a "Don't do it this way." document[0].

That said, sometimes, Waterfall is the best way to do some projects, but I'd say very, very few. It does work reasonably well for hardware production. Many hardware companies apply Waterfall to software, because it's the process they know.

TDD is also a technique that can encourage a "waterfallish" approach, as the design needs to be fairly complete, right at the beginning (to be fair, it is possible to do TDD iteratively, but that takes effort, and many shops like to reduce effort as much as possible). I tend to keep my designs as fluid as possible, refining in a JIT manner[1], and prefer using test harnesses to fixed unit tests[2].

I personally have a beef with the way many shops handle the concept of MVP. I feel that a significant number of shops use it as an excuse to shove out a hastily-built lashup; favoring adding features to ensuring quality.

I have come to believe in the concept and purpose of MVP, but I am also one of those "grizzled, cranky oldtimers" that has seen many, many prototypes become the "heart" of applications, and even infrastructures. I won't mention some rather obvious examples.

I feel that it's important to ensure quality from the first line of code, and to accept the fact that the MVP will become the core of the system.

[0] https://en.wikipedia.org/wiki/Waterfall_model#History (Look at Royce's presentation)

[1] https://medium.com/chrismarshallny/evolutionary-design-speci...

[2] https://medium.com/chrismarshallny/testing-harness-vs-unit-4...

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#13
post #2

Great document overall! > The purpose of this document is to provide guidance to DoD program executives and acquisition professionals on how to detect software projects that are really using agile development versus those that are simply waterfall or spiral development in agile clothing (“agile-scrum-fall”). Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be.…

If folks remember, one of the seminal Waterfall documents was actually a "Don't do it this way." document[0]. That said, sometimes, Waterfall is the best way to do some projects, but I'd say very, very few. It does work reasonably well for hardware production. Many hardware companies apply Waterfall to software, because it's the process they know. TDD is also a technique that can encourage a "waterfallish" approach,…

A few years back, I had a friend in another department ask me to build a prototype tool help manage their team's work more efficiently. I told them very directly that this was a hastily built prototype to help them see if a business case was viable. 3 years later, their entire department still uses that prototype and they have a small contractor team that makes annual updates to it. Nothing more permanent than a temporary solution.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#14
post #8

Earlier quoted context omitted.

> Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be. Doing waterfall in the exact sense that is usually described will almost certainly never work well. People usually focus on the design phase, but I think the much more catastrophic part of 'waterfall' is doing testing only once development is complete. Now, you absolutely can successfully run software proje…

I think the parent post has, but for the reader who is a software engineer take 15 minutes out of your life to read WW Royce's "Managing the Development of Large Software Systems." In this brief and engaging paper you will find the diagram used by many agile enthusiasts to describe the "waterfall method" and will be shocked to discover that it is held up as an example of a process that never actually works in reality…

http://beza1e1.tuxen.de/waterfall.html

Incremental and iterative development is not an invention of Agile either. It was used before "Waterfall" existed.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#15
I interviewed recently at a defense contractor and experienced something like this. I know you’re supposed to ask questions during an interview but I usually only really come up with two: what is your git/hg workflow and what does your automated test coverage look like.

Usually the second one has an answer along the lines of “not good but we’re working on it” which is fine. This place though tried pretty hard to convince me they were using git to manage their code right up until I asked the second question. The senior engineer sort of mumbled a few things ending with something along the lines of “we’re still figuring out exactly what the transition from svn will look like.”

I’m not sure why they didn’t decide to hire me but I feel like that interaction really upset someone and may have been a big part of it.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#16

Earlier quoted context omitted.

I dont know, the paper that described waterfall used it as an example of what not to do, they covered the better method on the following page but it seems people only read the "headline".

Which of course is not an argument in itself against parent's point.

Very true but thought it was worth mentioning, the original paper is very readable and it's amusing that waterfall lasted until the 90's when it originated in 1956 and the paper covered the flaws in 1970.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#17
post #14
post #8

Earlier quoted context omitted.

I think the parent post has, but for the reader who is a software engineer take 15 minutes out of your life to read WW Royce's "Managing the Development of Large Software Systems." In this brief and engaging paper you will find the diagram used by many agile enthusiasts to describe the "waterfall method" and will be shocked to discover that it is held up as an example of a process that never actually works in reality…

http://beza1e1.tuxen.de/waterfall.html Incremental and iterative development is not an invention of Agile either. It was used before "Waterfall" existed.

I've used incremental and iterative processes in R&D for many years before "agile" became the current goto. Unfortunately, the obsession in tech with following trends has pushed many to try and modify, IMHO, a better refined process for the domain where agile just doesn't quite work. In R&D, prototyping work is quite challenging and doesn't lend itself well to full-out agile pipelines. CI/CD can actually hamstring you far more than help you, as can other typical PM tools. You need to be more agile than "agile."

For larger projects with adequate resources, agile can make sense, although it's typically modeled after quarterly focused business models and can miss long term opportunities. The core issue with agile is that its structure is ripe for abuse by everyone involved except the actual developer(s). Instead, developers have to reconcile all sorts of poor choices together in a fairly formal environment, leading to headache after headache.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#18
post #2

Great document overall! > The purpose of this document is to provide guidance to DoD program executives and acquisition professionals on how to detect software projects that are really using agile development versus those that are simply waterfall or spiral development in agile clothing (“agile-scrum-fall”). Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be.…

> Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be. Doing waterfall in the exact sense that is usually described will almost certainly never work well. People usually focus on the design phase, but I think the much more catastrophic part of 'waterfall' is doing testing only once development is complete. Now, you absolutely can successfully run software proje…

Agreed; all large, very traditional, very legacy waterfall projects I participated in had:

* Unit testing immediately upon developing any component.

* System & Integration testing starting at some point during development - overlapping phases

* User/Client Acceptance testing also overlapping with end of development (but with planned fix cycles)

* Performance testing... unfortunately depends heavily on the project and its perceived performance but usually in the latter third. Well managed projects see it as "Performance Testing & Tuning", and plan for several iterative cycles of testing and improving performance. Poorly managed projects see it as "Performance checklist" and have a single cycle with no time for tuning.

This is as old-school methodology as it gets, and yet it's been consistently refined and works well when managed well and in right situation/client. A lot of multi-year back-office ERP or infra work for large corporations or public sector inherently needs to adopt similar approach because it's just the nature of client environment. At highest of high levels it's about 5 gantt chart phases with heavy, heavy overlapping and lots of cycles for fixing/improving.

A two-stage dev + test without even an arrow from test to back... I have no idea how that'd work in either theory or practice. Waterfall doesn't have to ignore realities of the world... it just is suited to different realities than Agile.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#19

It started well, then it completely fell on the corporate bullshit side. For example: "Some current, common tools in use by teams using agile development". This is the kind of reason why a lot of people are required by management to use useless overkill stacks for their needs like docker or kubernetes. Also the "questions to ask" are typical ridiculous agile corporate bullshit like "have you a product charter", or co…

Given agile is 20 years old and most of those tools are somewhat younger, it is obviously possible to use other techniques to manage development and deployment without having to tick the 'at scale' type boxes that are so loved by the current batch of web deployment models.

Re: DIB Guide: Detecting Agile BS (2018) [pdf]

#20

It started well, then it completely fell on the corporate bullshit side. For example: "Some current, common tools in use by teams using agile development". This is the kind of reason why a lot of people are required by management to use useless overkill stacks for their needs like docker or kubernetes. Also the "questions to ask" are typical ridiculous agile corporate bullshit like "have you a product charter", or co…

I don't think that listing some example tools is a problem. Especially for the audience of a primer like this, a categorized vocabulary list like this can be indispensable for giving people a quick lay of the land and a preview of some names they'll encounter.

My complaint would be that, "Tools listed/shown here are for illustration only: no endorsement implied," should have been inline instead of buried in a footnote.

Post reply on HN