Dave_von_S,

Over the last few months I’ve been dabbling into , , , etc and the red line in all this is ‘good and best practices often fail, because software development is complex’.

I fully recognize this, but it got me thinking ‘when does software development become complex?’. A ‘hello world’ should be simple (ie predicable) in any language (if it isn’t, you’re using the wrong language) and there are definitely things where best practices exist (eg alt descriptions for images).

I also don’t believe it’s the first moment where we introduce logic; any if/then/else or while loop can be specified, so that’s at most complicated, right?

So from a philosophical point of view; are there pointers that indicate the move from complicated to complex?

Is that even a code related thing or more about communication? And if that is the case, can you then state that a single developer can never arrive in the complex domain?

Yes, I understand that this is highly theoretical and in reality far away from situations we work in, but I’m curious if I’m the only one who thinks about this…

gdinwiddie,
@gdinwiddie@mastodon.social avatar

@Dave_von_S
I think it's possible for code to become complex, and I've certainly seen code with unnecessary complexity. I don't think that's the crux of the problem, however.

1/2

gdinwiddie,
@gdinwiddie@mastodon.social avatar

@Dave_von_S
Complexity enters when the code interacts with its context. That's where truly asynchronous originate. That's where you find system states that the programmer, even an excellent programmer, never imagined.

And, of course, the software development system, being made of people, is necessarily complex. And it's a system within a larger system, which inserts more complexity.

In short, no, you're not the only one who thinks about this. 🙂
2/2

Dave_von_S,

@gdinwiddie yeah, I’m having the same discussion on LinkedIn and the open system (ie interaction with another system) is definitely a large factor.

I also realized I’m basically asking for ‘how can you identify unknown unknowns’ which is probably just as impossible as designing a perpetuum mobile.

One of the solutions offered is frequently validating or testing your assumptions to identify bias and fallacies with techniques as stressor analysis, chaos engineering, and likely things like TRIZ.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • mdbf
  • ethstaker
  • magazineikmin
  • GTA5RPClips
  • rosin
  • thenastyranch
  • Youngstown
  • osvaldo12
  • slotface
  • khanakhh
  • kavyap
  • InstantRegret
  • Durango
  • provamag3
  • everett
  • cisconetworking
  • Leos
  • normalnudes
  • cubers
  • modclub
  • ngwrru68w68
  • tacticalgear
  • megavids
  • anitta
  • tester
  • JUstTest
  • lostlight
  • All magazines