La complessità artificiale è comune a chi è la società o la comunità?

1

Mi è sempre sembrato normale che una società più grande subisse una minore quantità di lavoro da parte dei suoi dipendenti nel rendere redditizia la società.

Ovviamente non ci sono segni chiari per questo, ma non credo che qualcuno sosterrà che joe che lavora per IBM ha in mente l'interesse dell'IBM nello stesso modo in cui bil, co-fondatore di StartupX, ha in mente l'interesse di StartupX .

Una teoria completamente infondata che mi è venuta in mente sulla base di questo ragionamento è l'idea che al di fuori di un ambiente in cui la complessità artificiale uccide a dismisura la società, la complessità artificiale è destinata a crescere.

Sembra naturale che le persone a cui non interessa affatto l'azienda per cui lavorano si preoccupino soprattutto di perdere il minor tempo possibile per mantenere il proprio lavoro (o almeno sembra essere l'atteggiamento più comune adottato dalle persone) ... che potrebbe spesso essere raggiunto aggiungendo alcuni livelli arcani nel sistema che solo loro capiscono che hanno poca o nessuna utilità effettiva.

Esistono lavori che siano mai stati sviluppati attorno all'idea di programmatori che aggiungono complessità artificiale? Qualche studio che raccoglie dati sull'uso di varie librerie "inutili" e su come tale percentuale aumenta con l'aumentare delle dimensioni dell'azienda? Quando le aziende arrivano al punto in cui hanno dozzine di dipendenti, quanto può essere dannosa la complessità artificiale? Quanto di questo viene fatto trapelare nella comunità tramite l'OSS (vedi leftpad ... o l'intera comunità javascript in generale)? Esistono iniziative per scoprire e individuare questo tipo di OSS al fine di impedirgli di inquinare vari ecosistemi?

    
posta George 17.06.2017 - 01:12
fonte

2 risposte

2

Sono un consulente che lavora con il dipartimento IT di una grande istituzione finanziaria la cui cultura, pratiche IT, pratiche di gestione e tappeti sono bloccate negli anni '80.

La complessità artificiale si manifesta sia nel software che nella gerarchia organizzativa delle grandi aziende. Le aziende con buoni valori e pratiche adattive hanno un tempo più facile per identificare ed eliminare queste complessità rispetto a coloro che hanno valori sbagliati e fanno cose perché "è sempre stato fatto". La differenza è la mentalità.

C'è un adagio chiamato Legge di Conway che dichiara

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

Da ciò deriva che le aziende con elevate quantità di complessità artificiale nella loro organizzazione di persone sono destinate a creare software con elevate quantità di complessità artificiale.

Sfortunatamente, non conosco alcuna ricerca che esista intorno alla psicologia dei programmatori che crea complessità artificiale e implementazioni arcane per la sicurezza del lavoro e l'importanza di sé e come la cultura festeggia come un'azienda cresce, ma il campo del pensiero sistemico potrebbe essere interesse per te. C'è un libro che è uscito di recente usando il pensiero sistemico e come si applica alla trasformazione della cultura delle grandi aziende. Si chiama The Journey to Enterprise Agility: Systems Thinking and Organizational Legacy . Potrebbe interessarti.

    
risposta data 17.06.2017 - 03:46
fonte
1

I don't think anyone will argue that joe working for IBM has the interested of IBM in mind the same way bil, co-founder of StartupX has the interested of StartupX in mind.

Sfida accettata. Gli ingegneri del software sono uno strano gruppo di nerd e per la maggior parte si preoccupano meno degli obiettivi di business e di più su elegance del loro codice. L'idea che un ingegnere introduca intenzionalmente una complessità inutile va contro la mia esperienza di 20 anni di lavoro con queste persone. Vogliono che il loro codice sia bello e il loro software sia "pulito", più di ogni altra cosa. Molti sviluppatori daranno priorità a questo sopra qualsiasi obiettivo aziendale, a volte a discapito della squadra.

It seems natural that people who do not care at all about the company they work for would mostly care about wasting as little time as possible to keep their job (or at least that seems to be the most common attitude adopted by people)... which could often be achieved by adding some arcane layers in the system that only they understand that have little or no actual usefulness.

Ridicolo. Gli ingegneri e le persone in generale non amano lavorare su cose che non valgono nulla. In realtà, lo odiano. La maggior parte dei programmatori che conosco vorrebbe prendersi un po 'di tempo per strappare il codice che considerano inutile: spesso devi praticare una grande quantità di disciplina di gruppo per fermarli.

Are there any works that have ever been developed around the idea of programmers adding artificial complexity ?

Non complessità "artificiale". Ma ecco un documento vincente del premio Turing su accidentale complessità, ed ecco un po 'di scrittura su incidentale contro complessità intrinseca .

Is artifical complexity commonplace the larger a company or community gets?

Non ho dubbi che la complessità totale tende ad aumentare con l'aumentare delle dimensioni dell'azienda. Questo potrebbe essere dovuto al fatto che

  1. Il dominio problematico diventa più complesso con l'aggiunta di più funzioni

  2. Il problema del debito tecnico diventa più grande con l'età dei codici.

  3. Man mano che la tecnologia cambia nel tempo e gli ingegneri utilizzano la tecnologia più recente, si finisce con una miscela sempre più diversificata di soluzioni e approcci, che alcuni potrebbero chiamare anti-pattern LayerLava .

  4. Man mano che il software cresce e la quota di mercato aumenta, aumenta il rischio di cambiare e riattivare le cose, quindi c'è meno probabilità che questi problemi vengano affrontati. I proprietari dei prodotti non lo permetteranno.

  5. Man mano che le aziende diventano più grandi, il management superiore cerca di estrarre sempre più profitti da esso, e gli sviluppatori hanno meno tempo per lavorare sulla pulizia delle cose, che (contrariamente alla tua tesi) in genere pregare di fare.

  6. Man mano che le aziende diventano più grandi, tenderanno a impiegare più risorse in outsourcing, o acquisteranno società / acquisteranno i diritti su software che è già stato scritto piuttosto che svilupparlo internamente. L'integrazione di queste varie fonti insieme tende a creare un po 'di confusione.

  7. Man mano che le aziende diventano più grandi, sembra che assumano sempre più manager ignoranti, che potrebbero spingere un prototipo che non è mai stato concepito per la produzione, o potrebbero tentare di estrarre quantità irragionevoli di lavoro, o si preoccuperanno di più sulle funzionalità e sul marketing rispetto alla qualità.

  8. È possibile che gli atteggiamenti degli ingegneri peggiorino sempre di più man mano che si sentono sempre più distanti dal loro lavoro e hanno un debole senso di appartenenza. Ciò non significa che aggiungeranno spazzatura solo per il gusto di farlo, ma vuol dire che potrebbero non fare il possibile per ripulire il caos di qualcun altro.

risposta data 17.06.2017 - 03:36
fonte

Leggi altre domande sui tag