Come si bilanciano i cambiamenti dei processi aziendali con le sfide del cambiamento del software?

StackOverflow https://stackoverflow.com/questions/1645870

  •  22-07-2019
  •  | 
  •  

Domanda

Nella mia giovane carriera, devo ammettere, mi sono trovato a scrivere codice per supportare regole e processi aziendali stravaganti. Inevitabilmente questi cambiamenti sono sempre stati in una base di codice estremamente difficile e hanno causato molti problemi. La mia domanda ha un paio di parti:

  1. Mentre il software è uno strumento per le aziende che semplifica la vita, a che punto come sviluppatori suggeriamo un cambiamento nel processo aziendale piuttosto che nel software come "bullet magico" per risolvere un problema particolare.

  2. In che modo noi sviluppatori promuoviamo un certo livello di riverenza per il software e la difficoltà di apportare modifiche semplicemente per supportare le stranezze dell'azienda?

Comprendo che questi cambiamenti nei processi aziendali promuovono il nostro settore, ma in un'analogia mio padre avrebbe capito: il che è più facile, fondere un martello per forgiare un cacciavite per guidare le viti o semplicemente usare i chiodi poiché il tuo martello è già impressionante ...?

È stato utile?

Soluzione

Puoi guardare

  

Sette abitudini di grande efficacia   Persone

, poiché ha la sensazione che sia necessario sviluppare una sfera di influenza abbastanza grande da provare a cambiare i processi aziendali.

La cosa migliore da fare è dimostrare che sei molto competente nel tuo lavoro e lavorare sullo sviluppo di relazioni con le persone sul lato aziendale, in modo che tu possa sentirti a tuo agio seduto fuori dal lavoro per discutere il processo aziendale in questione.

Questo è un processo lento, ma se provi a correre troppo in fretta il business si sposterà indietro e ti schiaccerà come un bug. Se leggi

  

L'età degli eretici

ad esempio, vedrai esempi di aziende che hanno avuto troppo successo nell'effettuare modifiche e la società le ha distrutte.

Al momento la soluzione migliore è apportare modifiche, per quanto è possibile, per rendere il software più adattabile, in modo che se il processo cambia è possibile adattarsi facilmente alle nuove regole.

Altri suggerimenti

Prima di poter fare qualsiasi cosa, è meglio fare un passo indietro e provare a capire il business. Se reagiscono ai cambiamenti adattando i loro processi, questa è una buona cosa. È quando lasciano le cose esattamente le stesse per anni che puoi dimenticare che rimangono un'azienda. Devi assicurarti, tuttavia, che il cambiamento a cui stai rispondendo non avrà un impatto negativo sui processi di business a monte o a valle. Le unità aziendali spesso non effettuano tale controllo. Ma quando tutto andrà all'inferno, sai di chi daranno la colpa, giusto? In questo modo, puoi risolvere questi problemi ed evangelizzare, "modi migliori". Non farlo è una ricetta per l'eterna frustrazione.

Impara la loro attività prima ancora di pensare di codificarla.

Per quanto riguarda la meccanica: Quello che ho sempre fatto scrivere ai miei team era "software generico". Alcune unità aziendali potrebbero aver bisogno di un modo per acquisire un modulo e produrre un rapporto. Ok, abbastanza facile, vero? Sbagliato. Considera sempre una richiesta come qualcosa * 200. Vorresti supportare 200 di queste applicazioni, facendo tutte quasi la stessa cosa? Non me. Troppo pigro.

Ho ordinato ai miei team di creare un sistema di moduli generico e di utilizzare meccanismi di reporting generici o indipendenti. E ho sottolineato l'uso di XML / XSLT per quanto possibile (non basandomi, ad esempio, sulle tecnologie Microsoft di facile cottura che sembrano rompersi con ogni nuova versione). Quindi, quando voleva un'altra unità di business, "qualcosa di simile, ma con modifiche", il nucleo era già lì - avevamo solo bisogno di una nuova cartella, XML / XSLT modificato e abbiamo finito.

Che sempre - SEMPRE - ha reso più facili da gestire quei futuri cambiamenti. " Hai bisogno di un nuovo campo? Cambia un file XML. Devi modificare il modo in cui viene prodotto un rapporto? Cambia XSLT. Nessun cambio di programma. & Quot; Prendilo? NESSUN cambio di programma. Tieni il più possibile fuori dalla logica. Anche i processi aziendali possono essere rappresentati in XML / XSLT.

In realtà, la maggior parte delle applicazioni che incontrerai sono le stesse ruote di programmazione (un buon libro sugli algoritmi, tra l'altro) che sono state fatte per sempre. Saranno semplicemente fatti più male da persone che non hanno capito il business e hanno capito il loro mestiere ancora meno.

Non costruiranno il loro business intorno a te o al tuo software, a meno che tu non stia scrivendo MS DOS per la prima volta. Nel momento in cui lo suggerisci, te ne andrai. E ... dovresti essere.

Una delle cose più frustranti che un cliente finale (ovvero un cliente del tuo datore di lavoro o cliente) può sentire è "il computer non me lo permette". Ad esempio, aggiungi gli articoli a un ordine dopo aver calcolato la spedizione o annulla qualcosa prima che sia stata calcolata l'imposta sulle vendite o altro. Il software dovrebbe servire l'azienda. Certo, ciò significa che il software deve cambiare molto, e a volte cambia così tanto da dove era che devi ricominciare da capo. Man mano che cresci in esperienza, scriverai software che è più facile da cambiare, data la realtà non regolabile che i processi aziendali cambiano, le leggi cambiano, i codici fiscali cambiano, i clienti cambiano e così via. Un giorno potresti essere un consulente aziendale affidabile per i tuoi clienti. È insolito all'inizio della tua carriera. Ora sono in quella fase ma sono nel mio quarto decennio di essere pagato per programmare. Raramente suggerisco all'azienda di accogliere il software. Ci vuole molto giudizio per sapere quando potrebbe essere la cosa giusta da suggerire. E qualunque riverenza tu possa provare per il tuo software, fai del tuo meglio per nasconderlo alla gente che lo paga. Lo vedono come uno strumento per supportare il vero business in cui si trovano.

Penso che sia utile mettere in discussione l'efficacia in termini di costi della creazione di nuove soluzioni per adattarsi ai processi aziendali esistenti rispetto all'adattamento dei processi aziendali per adattarsi alle soluzioni esistenti. Tuttavia, in realtà, non ho visto il business considerare questo punto di vista.

Con questo in mente, penso che la prossima cosa migliore che puoi fare sia anticipare i cambiamenti specifici che l'azienda potrebbe richiedere in futuro e sviluppare la tua soluzione in modo che possa adattarsi facilmente a tali cambiamenti.

Sfortunatamente, questo dipende completamente dalla situazione.

Anche con una grande esperienza nel mondo degli affari E del software, è ancora un problema complesso.

Per quanto riguarda le tue domande specifiche:

  1. Non appena li vedi. L'importante è esprimere il tuo suggerimento in termini costruttivi. Utilizzando anche termini rilevanti per il business (ROI, VAN, ecc.). E trovare benefici accessori (). Quindi, se la modifica del software non mitiga davvero il problema aziendale, il costo è elevato e la correzione del processo aziendale ha un notevole risparmio sui costi accessori, si pone uno scenario completamente diverso rispetto al semplice dire "non possiamo farlo perché costa anche molto ".

  2. Il software è di proprietà dell'azienda: non deve più o meno rispetto a qualsiasi altra cosa che la società possiede di valore simile.

  • Di fronte alla crescente complessità delle regole aziendali in relazione all'attuale forma del software, prova a considerare Aspetto -Oriented-Software-Development , al fine di ottenere una migliore modularità e separazione delle preoccupazioni. In questo modo, le regole di business nuove o modificabili, come appaiono, possono essere integrate nella tua base di codice esistente come plug-in solo per quei moduli che ne hanno bisogno, non essendo necessario per riscrivere grandi quantità di codice non correlato.
  • L'idea è che dopo tutto, molte regole aziendali derivano da una legislazione specifica ed è responsabilità dell'azienda, trasmessa anche al software, implementare e adattare. Personalmente ritengo che la mancanza di volontà di seguire le specifiche a causa della difficoltà percepita sia ciò che porta la maggior parte dei browser Web a rimanere più o meno indietro rispetto agli standard Web: la modifica delle regole è stata una soluzione temporanea che ha portato nel tempo a un costo accumulato molto maggiore supportando le stranezze di ciascun browser. Cerca di implementare le nuove regole di business alla velocità con cui appaiono o cambiano: in caso contrario, si accumulano carenze cumulative di supporto per le nuove funzionalità e alla fine rendono il tuo software deprecato.

È un po 'come il ruolo / la forza del CIO. Se il lato IT è in grado di convincere il lato business che sarebbe più semplice / economico / economico modificare il processo aziendale rispetto al codice, di quanto non si abbia ragione. Altrimenti, la bizzarra pratica commerciale potrebbe essere più preziosa di quanto pensi. Dubito anche che tu stia chiarendo che se trascorri del tempo sul problema bizzarro, non fornirai le funzionalità necessarie in tempo (buona fortuna con quello).

Se i tecnologi avessero trovato la loro strada, la GUI e il mouse / puntatore non sarebbero mai usciti dal laboratorio. Per gli utenti di tutti i giorni, sono qui per restare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top