chemical-and-materials-engineering
Applicare i requisiti Ingegneria: dalla teoria alla realizzazione pratica
Table of Contents
Ingegneria: La Fondazione di sviluppo di software di successo
L'ingegneria dei requisiti è una delle fasi più critiche nello sviluppo di sistemi software, applicazioni e soluzioni tecnologiche complesse. Rappresenta il processo sistematico di identificare, analizzare, documentare, convalidare e gestire le esigenze, le aspettative e i vincoli di tutti gli stakeholder coinvolti in un progetto.
La disciplina dei requisiti di ingegneria si è evoluta in modo significativo negli ultimi decenni, trasformando da semplici pratiche di documentazione in una metodologia sofisticata che incorpora elementi di teoria della comunicazione, psicologia cognitiva, analisi aziendale e pensiero dei sistemi.
Nonostante la sua importanza riconosciuta, l'ingegneria dei requisiti rimane uno degli aspetti più impegnativi dello sviluppo del software. Gli studi dimostrano costantemente che la gestione dei requisiti poveri è tra le principali cause di fallimento del progetto, sovraccarichi dei costi e disfazione degli stakeholder. Il divario tra la conoscenza teorica e l'applicazione pratica spesso lascia i team che lottano per tradurre i principi del libro di testo in processi attuabili che lavorano in ambienti reali con vincoli reali.
I principi fondamentali di requisiti Ingegneria
Il suo nucleo, l'ingegneria dei requisiti comprende diversi principi fondamentali che guidano i professionisti verso risultati di successo. La comprensione di questi principi fornisce la base teorica necessaria per un'applicazione pratica efficace in diversi contesti di progetto e ambienti organizzativi.
Approccio Stakeholder-Centric
Ogni esigenza, in ultima analisi, ripercorre un bisogno di stakeholder, se tale stakeholder è un utente finale, un dirigente aziendale, un organo normativo o un membro del team tecnico. Un approccio focalizzato sulle parti interessate significa impegnarsi attivamente con tutte le parti interessate, comprendere le loro prospettive e bilanciare gli interessi concorrenti per arrivare a requisiti che servono gli obiettivi di progetto più ampi.
La gestione efficace degli stakeholder richiede l'identificazione di tutte le parti rilevanti all'inizio del ciclo di vita del progetto, che comprende evidenti stakeholder come utenti finali e sponsor di progetti, ma anche soggetti meno visibili come team di manutenzione, personale di sicurezza, funzionari di conformità e persino concorrenti le cui azioni possono influenzare i requisiti del sistema.
Scoperta iterativa e incredibile
I requisiti sono raramente pienamente noti all'inizio di un progetto, ma essi emergono ed evolvono attraverso un processo iterativo di scoperta, perfezionamento e convalida. Questo principio riconosce l'incertezza intrinseca nei progetti software complessi e abbraccia il cambiamento come parte naturale del processo di sviluppo piuttosto che un fallimento della pianificazione iniziale.
La natura iterativa dei requisiti di ingegneria significa che i team devono stabilire processi per la scoperta e la raffinatezza dei requisiti continui durante il ciclo di vita del progetto. I requisiti iniziali forniscono un punto di partenza e una direzione, ma i team dovrebbero aspettarsi e pianificare i requisiti per evolvere in quanto gli stakeholder acquisiscono una migliore comprensione di ciò che è possibile, in quanto le condizioni di business cambiano, e come prototipi e le prime versioni rivelano nuove conoscenze sulle esigenze degli utenti e sulle capacità di sistema.
Comunicazione e documentazione trasparenti
I requisiti servono come mezzo di comunicazione tra diversi stakeholder che spesso parlano lingue professionali diverse e hanno diversi modelli mentali del sistema in fase di costruzione. Le parti interessate di business pensano in termini di processi e risultati, gli utenti pensano in termini di compiti e flussi di lavoro, e gli sviluppatori pensano in termini di componenti e algoritmi.
I requisiti devono essere specifici per guidare le decisioni di implementazione e attivare la verifica, ma abbastanza comprensibile che gli stakeholder non tecnici possano convalidare che le loro esigenze siano accuratamente acquisite, spesso richiede molteplici rappresentazioni delle stesse esigenze, utilizzando diversi formati e livelli di dettaglio appropriati per il pubblico diverso.
Il processo di ingegneria dei requisiti: un quadro globale
Mentre gli approcci specifici variano tra organizzazioni e metodologie, la maggior parte dei processi di ingegneria dei requisiti includono diverse attività fondamentali che lavorano insieme per trasformare le esigenze degli stakeholder in requisiti convalidati e documentati pronti per l'implementazione.
Requisiti Elicitazione: Scoprire cosa Stakeholders davvero bisogno
L'elicitazione dei requisiti è il processo di raccolta attiva delle informazioni sulle esigenze degli stakeholder, sui processi aziendali, sui vincoli di sistema e sugli obiettivi del progetto. Questa fase va oltre a chiedere semplicemente agli stakeholder cosa vogliono; coinvolge indagini approfondite per scoprire ipotesi non quotate, bisogni impliciti e problemi di fondo che il sistema dovrebbe affrontare.
Interviews[]] fornisce opportunità di approfondimento delle esigenze dei singoli stakeholder e consentono agli ingegneri dei requisiti di sondare più a fondo su argomenti complessi. Le interviste one-on-one funzionano particolarmente bene per comprendere le esigenze dei principali stakeholder e per esplorare argomenti sensibili che potrebbero non emergere nelle impostazioni del gruppo.
I laboratori di lavoro e le sessioni facilitate[[] riuniscono diversi stakeholder per esplorare in modo collaborativo i requisiti, risolvere i conflitti e costruire la comprensione condivisa. Queste sessioni sfruttano le dinamiche di gruppo per generare idee, identificare le dipendenze e ottenere il consenso sulle priorità.
Observazione e studi etnografici[[]] implicano guardare gli utenti nel loro ambiente di lavoro naturale per capire come effettivamente eseguire compiti, al contrario di come descrivono il loro lavoro nelle interviste. Questa tecnica spesso rivela soluzioni di lavoro, processi informali e tacita conoscenza che gli utenti potrebbero non pensare di menzionare nelle interviste. L'osservazione è particolarmente preziosa per la comprensione dei flussi di lavoro complessi e l'individuazione delle opportunità di miglioramento dei processi.
L'analisi del documento[[]] esamina la documentazione esistente, comprese le descrizioni dei processi aziendali, i manuali utente, i requisiti normativi e le specifiche del sistema legacy. Questa tecnica fornisce un contesto prezioso e aiuta a identificare i requisiti che gli stakeholder possono assumere sono evidenti e quindi non menzionare esplicitamente.
Questionnaires and surveys[[]] permette agli ingegneri di soddisfare le esigenze di raccogliere informazioni da un gran numero di stakeholder in modo efficiente. Sebbene meno flessibile rispetto alle interviste, le indagini possono raggiungere gli stakeholders geograficamente dispersi e fornire dati quantitativi sulle preferenze e priorità degli utenti.
Analisi dei requisiti: Fare il senso di informazioni raccolte
Una volta che i requisiti sono stati richiesti, devono essere analizzati per identificare conflitti, lacune, dipendenze e opportunità di ottimizzazione. L'analisi trasforma l'ingresso delle parti interessate raw in requisiti coerenti e coerenti che possono guidare la progettazione e l'implementazione del sistema.
L'analisi inizia con classificazione e organizzazione[[[]]] dei requisiti in categorie logiche. I sistemi di classificazione comuni distinguono tra requisiti funzionali che descrivono ciò che il sistema dovrebbe fare e i requisiti non funzionali che descrivono come bene il sistema dovrebbe eseguire.
La risoluzione dei conflitti[[]] affronta situazioni in cui i diversi stakeholder hanno requisiti incompatibili o dove i requisiti sono in conflitto con i vincoli di progetto.
L'analisi della fattibilità[[]] valuta se i requisiti possono essere implementati in vincoli di progetto, tra cui budget, pianificazione, capacità tecnologiche e capacità organizzative.Questa analisi può rivelare requisiti tecnicamente impossibili, economicamente impraticabili, o incompatibili con altri obiettivi di progetto.
I requisiti di modellazione[[]] creano rappresentazioni astratte dei requisiti utilizzando diagrammi, notazioni formali e specifiche strutturate. I modelli aiutano le parti interessate a visualizzare il comportamento del sistema, identificare i requisiti mancanti e convalidare che i requisiti documentati catturano accuratamente le loro esigenze.
Specificazione dei requisiti: Documentazione per la precisione e precisione
Le specifiche dei requisiti prevedono la creazione di una documentazione formale che acquisisca i requisiti in modo chiaro, completo e non ambiguo. La specifica serve come contratto tra le parti interessate e il team di sviluppo, fornendo le basi per la progettazione, l'implementazione, il test e le attività di gestione dei progetti.
Una specifica dei requisiti ben strutturata comprende in genere diversi componenti chiave. Un introduzione[[]] fornisce il contesto descrivendo lo scopo del sistema, il pubblico destinato per la specifica, e la portata del progetto. Questa sezione aiuta i lettori a capire il quadro grande prima di immergersi in requisiti dettagliati.
La sezione overall Description[[[]]] presenta una visione di alto livello del sistema, comprese le sue principali funzioni, caratteristiche dell'utente, ambiente operativo e vincoli.
I requisiti specifici[] costituiscono il nucleo del documento di specificazione, fornendo descrizioni dettagliate dei requisiti funzionali e non funzionali. Ogni requisito deve essere identificato in modo unico, chiaramente dichiarato, e includere i criteri di accettazione che definiscono come il requisito sarà verificato.
[[FLT]]] sono conformi[FLT:[FLT:]], compresi tutti i requisiti necessari senza lacune significative. Sono , liberi da contraddizioni tra diversi requisiti. Sono inambigui, con ogni esigenza che ha una sola interpretazione possibile.
Validazione dei requisiti: Garantire l'accuratezza e la completezza
La convalida dei requisiti conferma che i requisiti documentati rappresentano con precisione le esigenze degli stakeholder e che i requisiti, se implementati, risulteranno in un sistema che raggiunge i suoi obiettivi previsti. La convalida cattura gli errori e le omissioni prima di propagarsi nella progettazione e nell'implementazione, dove diventano molto più costosi da correggere.
Le recensioni dei requisiti[[] comportano un esame sistematico della documentazione dei requisiti da parte degli stakeholder, degli esperti di materia tematica e dei membri del team tecnico.Le valutazioni possono essere ispezioni formali con ruoli e procedure definiti, o percorsi informali in cui i requisiti dell'ingegnere presentano requisiti per le parti interessate per il feedback.
Prototipazione[]] crea modelli di lavoro del sistema con cui gli stakeholder possono interagire per convalidare i requisiti. I prototipi rendono concreti i requisiti astratti, aiutando gli stakeholder a visualizzare come il sistema funzionerà e identificare i requisiti che sono errati, incompleti o mancanti.
Test case development[]] comporta la creazione di scenari di prova basati sui requisiti prima dell'implementazione. Il processo di sviluppo dei casi di prova spesso rivela ambiguità e lacune in requisiti che potrebbero non essere evidenti semplicemente leggendo le specifiche.
I requisiti di modellazione e simulazione[[[]]] utilizzano modelli formali per analizzare i requisiti per completezza, coerenza e fattibilità. Gli strumenti di analisi automatizzati possono controllare i modelli per le contraddizioni logiche, identificare gli stati irraggiungibili e verificare che i requisiti soddisfino le proprietà specificate.
Gestione dei requisiti: Controllo cambiamento durante tutto il progetto
La gestione dei requisiti comprende le attività necessarie per mantenere i requisiti durante il ciclo di vita del progetto, in quanto la comprensione evolve, le priorità cambiano e le condizioni aziendali. La gestione dei requisiti efficaci garantisce che i cambiamenti siano valutati, approvati e implementati in modo controllato che mantengano l'integrità del sistema e l'allineamento dei progetti.
I processi di controllo delle modifiche[[] stabiliscono procedure per proporre, valutare, approvare e implementare i cambiamenti dei requisiti. Un processo formale di controllo dei cambiamenti impedisce il strisciamento di portata incontrollata, consentendo modifiche legittime da incorporare quando aggiungono valore.
Il controllo della domanda[[]] mantiene una storia di cambiamenti dei requisiti, permettendo ai team di monitorare come i requisiti si sono evoluti e di tornare alle versioni precedenti, se necessario. Il controllo della versione è essenziale per capire perché le decisioni sono state prese e per gestire i requisiti in più versioni o varianti di prodotto.
Richiesta tracciabilità[[[]]] stabilisce e mantiene i collegamenti tra i requisiti e altri artefatti di progetto, tra cui le esigenze degli stakeholder, gli elementi di progettazione, i moduli di codice e i casi di test.
Il monitoraggio dello stato[[]] monitora lo stato di ogni esigenza durante il ciclo di vita del progetto, dalla proposta iniziale attraverso l'implementazione e la verifica.
Teoria e pratica di Bridging: strategie di applicazione reali
Mentre i quadri teorici forniscono una guida preziosa, l'applicazione dei principi di ingegneria dei requisiti in progetti reali richiede l'adattamento dei concetti generali a contesti organizzativi specifici, vincoli di progetto e capacità di squadra.
Processi di sartoria al contesto del progetto
Il livello appropriato di formalità, dettagli della documentazione e coinvolgimento degli stakeholder dipende da fattori quali dimensione del progetto, complessità, rischio, ambiente normativo e cultura organizzativa. I piccoli progetti con team co-locati e requisiti stabili possono avere successo con processi leggeri, mentre i grandi progetti distribuiti nelle industrie regolamentate richiedono approcci più rigorosi.
I progetti ad alto rischio in cui il fallimento potrebbe portare a una significativa perdita finanziaria, ai rischi di sicurezza o alle sanzioni normative giustificano processi ingegneristici più approfonditi. I progetti con molti stakeholder o i requisiti di integrazione complessi hanno bisogno di maggiore enfasi sull'analisi dei requisiti e sulla risoluzione dei conflitti. I progetti in ambienti aziendali in rapida evoluzione dovrebbero enfatizzare la flessibilità e la raffinatezza iterativa sulle specifiche in anticipo complete.
Le organizzazioni nuove per l'ingegneria dei requisiti formali dovrebbero iniziare con le pratiche di base e gradualmente adottare tecniche più sofisticate come le capacità si sviluppano. Tentando di implementare processi eccessivamente complessi prima che l'organizzazione sia pronta spesso porta alla frustrazione e all'abbandono delle pratiche ingegneristiche dei requisiti.
Integrazione dei requisiti Ingegneria con metodi di sviluppo
L'ingegneria dei requisiti deve allinearsi alla metodologia di sviluppo globale utilizzata dall'organizzazione. Le metodologie Agile integrano l'ingegneria dei requisiti in tutto il processo di sviluppo, con requisiti emergenti e in evoluzione attraverso la collaborazione continua degli stakeholder.
In Agile ambienti[[[]], l'ingegneria dei requisiti prende la forma di un continuo miglioramento del backlog del prodotto, sviluppo della storia dell'utente e definizione dei criteri di accettazione. Piuttosto che creare specifiche complete in anticipo, i team Agile mantengono un backlog prioritario delle funzionalità e lavorano con i proprietari di prodotti per elaborare requisiti solo nel tempo per l'implementazione.
L'ingegneria dei requisiti Agile sottolinea la comunicazione faccia a faccia sulla documentazione completa, anche se alcune documentazioni rimangono necessarie per caratteristiche complesse, la conformità normativa e la conservazione delle conoscenze. Le storie degli utenti forniscono un formato leggero per catturare i requisiti dalla prospettiva dell'utente, mentre i criteri di accettazione definiscono le condizioni specifiche che devono essere soddisfatte per la storia da considerare completa.
In approcci tradizionali basati su piani[[[[]], l'ingegneria dei requisiti produce specifiche dettagliate che guidano le fasi successive di progettazione e implementazione. Questo approccio funziona bene quando i requisiti sono relativamente stabili e possono essere compresi accuratamente prima di un investimento significativo di sviluppo.
Molte organizzazioni adottano approcci ibridi[[] che combinano elementi di metodologie sia agile che tradizionali. Ad esempio, i team potrebbero sviluppare requisiti di alto livello e l'architettura in anticipo per stabilire la direzione generale, quindi utilizzare pratiche agili per elaborare e implementare i requisiti iterativamente.
Efficace costruzione Stakeholder Relazioni
L'ingegneria dei requisiti è fondamentalmente un'attività sociale che dipende da una comunicazione efficace e dalla collaborazione tra diversi stakeholder. La costruzione di forti relazioni tra gli stakeholder è essenziale per suscitare requisiti precisi, risolvere conflitti e mantenere l'impegno in tutto il progetto.
L'impegno efficace degli stakeholder inizia con ]identificare tutti i soggetti interessati[] all'inizio del progetto. Ciò include non solo gli stakeholder evidenti come gli utenti finali e gli sponsor del progetto, ma anche i soggetti meno visibili i cui bisogni o vincoli possono influenzare il sistema.
Costruire la fiducia[[]] con gli stakeholder richiede dimostrare competenza, affidabilità e interesse autentico per comprendere le loro esigenze.I requisiti ingegneri dovrebbero ascoltare attivamente, porre domande chiare e convalidare la loro comprensione prima di andare avanti.
Managing aspettative[[]]] implica essere onesti su ciò che è possibile all'interno dei vincoli di progetto e aiutare gli stakeholder a comprendere i trade-off tra i requisiti concorrenti.
La collaborazione facilitante[[] tra gli stakeholder con diverse prospettive e priorità richiede una negoziazione qualificata e una risoluzione dei conflitti.Gli ingegneri dei requisiti spesso servono come mediatori, aiutando gli stakeholder a trovare un terreno comune e raggiungere il consenso sui requisiti che servono obiettivi di progetto più ampi anche se non soddisfano pienamente ogni singola preferenza.
Prevenire i requisiti Efficacemente
La maggior parte dei progetti ha più requisiti potenziali che possono essere implementati entro i tempi disponibili e i vincoli di bilancio.
]MoSCoW prioritization[[] classifica i requisiti come deve avere, Dovrebbe avere, o non avrà questa volta. Questo semplice schema aiuta gli stakeholder a distinguere tra i requisiti essenziali e le caratteristiche bello-avere, anche se può portare a troppi requisiti classificati come "deve avere" se non applicato rigorosamente.
Presunzione basata sul valore[[[]]] classifica i requisiti in base al valore aziendale che forniscono rispetto al loro costo di attuazione. Questo approccio focalizza le risorse sui requisiti di alto valore, a basso costo prima, massimizzando il ritorno sull'investimento.
La priorità basata sul rischio[[[] dà una maggiore priorità ai requisiti che affrontano rischi significativi o consentono la mitigazione del rischio. Questo approccio è particolarmente adatto per i progetti in cui determinati rischi tecnici o aziendali devono essere affrontati presto per evitare il fallimento del progetto.
Presunzione basata sulla dipendenza[[]] considera dipendenze tecniche e logiche tra i requisiti, assicurando che i requisiti fondamentali siano implementati prima delle caratteristiche che dipendono da loro. L'analisi della dipendenza aiuta a creare sequenze di implementazione realistiche e identifica i requisiti che consentono o contraggono altre caratteristiche.
Gli ingegneri dei requisiti dovrebbero facilitare le sessioni di priorità, presentare informazioni rilevanti sui costi e sulle dipendenze e aiutare gli stakeholder a comprendere le implicazioni delle scelte di priorità diverse.
Tecniche essenziali per le esigenze Ingegneria pratica
L'ingegneria dei requisiti di successo si basa su un kit di strumenti di tecniche collaudate che supportano le attività di elicitazione, analisi, specificazione e validazione.
Utilizzare la modellazione dei casi: Catturare le interazioni dell'utente
Un caso di utilizzo identifica un attore (un utente o un sistema esterno), un obiettivo che l'attore vuole raggiungere, e la sequenza di interazioni tra l'attore e il sistema necessario per raggiungere tale obiettivo.
Ogni caso di utilizzo include un flusso primario che descrive la sequenza normale delle interazioni, oltre a flussi alternativi che gestiscono variazioni e eccezioni. Questa struttura aiuta a garantire che i requisiti si rivolgono non solo agli scenari di percorso felice, ma anche alle condizioni di errore e ai casi di bordo che potrebbero altrimenti essere trascurati.
I diagrammi di casi di utilizzo forniscono una panoramica visiva della funzionalità del sistema, mostrando attori, casi di utilizzo e relazioni tra di loro. Mentre i diagrammi sono utili per la comunicazione, il valore reale di utilizzo della modellazione dei casi proviene dalle descrizioni testuali dettagliate che specificano esattamente come il sistema dovrebbe comportarsi in scenari diversi.
I casi di utilizzo funzionano particolarmente bene per sistemi con interazioni utente ben definite e limiti di attività chiari, meno adatti per sistemi con algoritmi complessi, trasformazioni di dati o elaborazione continua in cui il modello di interazione non si applica naturalmente. In tali casi, i casi di utilizzo possono essere integrati con altre tecniche di modellazione che meglio catturano le caratteristiche del sistema pertinenti.
Storie utente: Requisiti di Agile Specificazione
Le storie degli utenti forniscono un formato leggero per catturare i requisiti in ambienti di sviluppo Agile. Una storia dell'utente descrive una funzione dalla prospettiva della persona che lo userà, tipicamente seguendo il modello: "Come un [tipo di utente], voglio [qualche obiettivo] in modo che [qualche motivo]." Questo formato mantiene l'attenzione sul valore dell'utente piuttosto che sui dettagli di implementazione tecnica.
Le storie degli utenti sono intenzionalmente brevi, servendo come segnaposto per conversazioni tra sviluppatori e stakeholder piuttosto che specifiche complete.I dettagli emergono attraverso la discussione durante la pianificazione e l'implementazione dello sprint, permettendo ai requisiti di evolversi in base all'apprendimento e al feedback.
Ogni storia dell'utente dovrebbe includere criteri di accettazione che definiscono condizioni specifiche che devono essere soddisfatte per la storia da considerare completa. I criteri di accettazione forniscono i dettagli necessari per l'implementazione e il test, mantenendo l'attenzione della storia sul valore dell'utente. I criteri di accettazione ben scritti sono specifici, testabili e concentrati sui risultati piuttosto che sugli approcci di implementazione.
Le storie degli utenti funzionano meglio quando il team di sviluppo ha un accesso regolare agli stakeholder che possono rispondere alle domande e fornire feedback.Quando la disponibilità degli stakeholder è limitata o quando i requisiti normativi richiedono una documentazione completa, le storie degli utenti potrebbero essere completate con specifiche più dettagliate.
Requisiti Traceability Matrices: Mantenere le connessioni
Una matrice di tracciabilità dei requisiti (RTM) documenta le relazioni tra i requisiti e altri manufatti di progetto, tra cui obiettivi aziendali, elementi di progettazione, moduli di codice e casi di test. La matrice tipicamente assume la forma di una tabella con i requisiti elencati nelle righe e nei relativi artefatti nelle colonne, con le celle che indicano dove esistono i rapporti.
La tracebilità serve diversi scopi importanti. Consente analisi di impatto] mostrando quali elementi di progettazione, codice e test sono influenzati quando un requisito cambia. Supporta analisi di copertura[] verificando che tutti i requisiti sono implementati e testati.
Mantenere la tracciabilità richiede disciplina e supporto agli strumenti. Le matrici di tracciabilità manuali diventano rapidamente obsolete in quanto i progetti si evolvono, quindi la maggior parte delle organizzazioni utilizza strumenti di gestione dei requisiti che mantengono automaticamente i collegamenti di tracciabilità e forniscono rapporti che mostrano lo stato di tracciabilità. L'investimento nel mantenimento della tracciabilità paga attraverso rilavoro ridotto, migliore gestione dei cambiamenti e una migliore qualità.
La tracciabilità dovrebbe essere bidirezionale, consentendo alla navigazione sia in avanti dai requisiti di implementazione che all'indietro dall'implementazione ai requisiti.
Prototipazione: Rendere i requisiti tangibile
Prototipazione crea modelli di lavoro del sistema con cui gli stakeholder possono interagire per convalidare i requisiti e per esplorare le alternative di progettazione. I prototipi rendono concreti i requisiti astratti, aiutando gli stakeholder a visualizzare come il sistema funzionerà e identificare i requisiti che sono errati, incompleti o mancanti.
I prototipi di lancio[[] sono costruiti rapidamente per esplorare domande specifiche o convalidare particolari requisiti, poi scartati una volta che hanno servito il loro scopo. Questi prototipi privilegiano la velocità e la flessibilità sulla qualità del codice, consentendo una rapida sperimentazione senza l'onere di mantenere il codice di qualità della produzione.
Prototipi evolutivi[[[]]] iniziano come modelli semplici e gradualmente si evolvono nel sistema finale attraverso una raffinatezza iterativa. Questo approccio funziona bene quando i requisiti sono incerti e probabili cambiare in base al feedback degli utenti.
Prototipi di bassa fedeltà[]] come schizzi di carta o wireframe sono veloci per creare e lavorare bene per esplorare il flusso di lavoro complessivo e l'architettura delle informazioni. Prototipi ad alta fedeltà con design visivo realistico e i modelli di comportamento interattivo sono migliori per convalidare le decisioni visive dettagliate.
La prototipazione è particolarmente preziosa per i requisiti dell'interfaccia utente, dove gli stakeholder spesso lottano per immaginare il prodotto finale da sole descrizioni testuali.
Analisi dello scenario: il comportamento del sistema di Esplorazione
Scenarios descrivono situazioni specifiche in cui il sistema sarà utilizzato, tra cui il contesto, gli attori coinvolti e la sequenza degli eventi. Mentre simili a casi di utilizzo, gli scenari sono tipicamente più concreti e narrativi, descrivendo particolari istanze piuttosto che modelli generali.
Gli scenari efficaci includono un ricco dettaglio contestuale che aiuta gli stakeholder a immaginarsi nella situazione, non solo a descrivere ciò che accade, ma perché accade e ciò che gli attori stanno cercando di realizzare.
Attraverso scenari specifici, i team possono identificare situazioni in cui i processi normali si diffondono e sono necessari requisiti per la gestione delle eccezioni.
Modellazione dati: Definizione delle strutture informative
La modellazione dei dati crea rappresentazioni formali delle informazioni che il sistema memorizza, elabora e scambia. I diagrammi di relazione-entità mostrano i tipi di entità dei dati, i loro attributi e le relazioni tra entità. I modelli di dati aiutano a garantire che i requisiti per la memorizzazione e la manipolazione dei dati siano completi e coerenti.
La modellazione efficace dei dati identifica non solo i dati di cui il sistema ha bisogno, ma anche i vincoli su quei dati, inclusi i tipi di dati, i range di valore validi, i requisiti di unicità e le regole di integrità referenziale, che diventano requisiti che il sistema deve far rispettare per mantenere la qualità e la coerenza dei dati.
La modellazione dei dati rivela spesso i requisiti mancanti evidenziando le informazioni che il sistema ha bisogno ma che non sono state esplicitamente discusse. Ad esempio, la modellazione dei dati dei clienti potrebbe rivelare la necessità di monitorare le preferenze dei clienti, la cronologia dei contatti o lo stato dell'account che non è stato menzionato nelle discussioni dei requisiti iniziali.
Strumenti e tecnologie Supporta i requisiti di ingegneria
L'ingegneria dei requisiti moderni si basa su strumenti specializzati che supportano le attività di elicitazione, documentazione, analisi, validazione e gestione, e la selezione ed efficacemente utilizzando strumenti appropriati può migliorare significativamente l'efficienza e l'efficacia dell'ingegneria dei requisiti.
Requisiti Piattaforme di gestione
Le piattaforme di gestione dei requisiti dedicati forniscono un supporto completo per l'intero ciclo di vita di ingegneria dei requisiti, che includono in genere capacità per la cattura e la documentazione dei requisiti, la gestione delle tracciabilità, il controllo delle versioni, la gestione dei cambiamenti e la segnalazione.
IBM Engineering Requisiti Management DOORS[[] (ex Rational DOORS) è una delle piattaforme di gestione dei requisiti più consolidate, particolarmente popolari nelle industrie aerospaziale, di difesa e automobilistica dove la gestione rigorosa dei requisiti è essenziale.
Jama Connect[] offre una piattaforma moderna e basata sul web per la gestione dei requisiti con un forte supporto per la collaborazione, la tracciabilità e l'integrazione con gli strumenti di sviluppo. Jama sottolinea la facilità di utilizzo e la collaborazione degli stakeholder, fornendo al contempo il rigore necessario per lo sviluppo di prodotti complessi.
Requisiti di rilascio[[]] fornisce la gestione dei requisiti integrata con funzionalità di gestione del ciclo di vita delle applicazioni più ampie. Questa integrazione consente una tracciabilità senza soluzione di continuità dai requisiti attraverso la progettazione, l'implementazione, il test e la distribuzione.
Quando si seleziona una piattaforma di gestione dei requisiti, le organizzazioni dovrebbero considerare fattori tra cui la complessità dei loro requisiti, la necessità di tracciabilità e conformità, l'integrazione con gli strumenti esistenti e la sofisticazione tecnica degli utenti. Le piattaforme Enterprise forniscono capacità potenti ma richiedono un investimento significativo nel licensing, formazione e adattamento dei processi.
Strumenti di gestione del progetto Agile
Le organizzazioni che utilizzano le metodologie Agile gestiscono spesso i requisiti attraverso strumenti di gestione del progetto Agile piuttosto che piattaforme di gestione dei requisiti dedicati, supportando la creazione di storie utente, la gestione del backlog, la pianificazione delle impronte e il monitoraggio dei progressi.
Jira[]] è lo strumento di gestione del progetto Agile più utilizzato, che offre un monitoraggio flessibile dei problemi, flussi di lavoro personalizzabili e una vasta capacità di integrazione. Jira supporta storie utente, epici e criteri di accettazione, con caratteristiche per la priorità backlog e la gestione dei sprint.
Azure DevOps[[]] fornisce supporto integrato per la pianificazione Agile, il controllo delle versioni, la costruzione dell'automazione e il test. Le sue capacità di tracciamento degli articoli di lavoro supportano la gestione dei requisiti attraverso le storie degli utenti, le caratteristiche e gli elementi di backlog del prodotto, con tracciabilità integrata al codice e ai test.
VersionOne[] (ora parte di Digital.ai) si concentra specificamente sulla gestione del progetto Agile con un forte supporto per la scalazione delle pratiche Agile in tutte le grandi organizzazioni.
Strumenti di modellazione e diagramming
Gli strumenti di modellazione visiva supportano l'analisi e la specificazione dei requisiti attraverso diagrammi, tra cui diagrammi di utilizzo, modelli di dati, flussi di processo e macchine di stato, che aiutano i team a visualizzare i requisiti e identificare lacune o incongruenze.
Enterprise Architect[[[]] fornisce funzionalità di modellazione complete che supportano UML, BPMN, SysML e altre lingue di modellazione. Include funzionalità di gestione dei requisiti e possono generare documentazione da modelli, supportando approcci di sviluppo basati sui modelli.
Lucidchart[]] offre un diagramma basato su cloud con un'interfaccia intuitiva e una collaborazione in tempo reale. Sebbene meno formale di Enterprise Architect, la facilità d'uso di Lucidchart lo rende popolare per la creazione di diagrammi che comunicano i requisiti a diversi stakeholder.
Draw.io[ (ora diagrams.net) fornisce gratuitamente, open-source diagramming funzionalità senza costi di licenza. Supporta una vasta gamma di tipi di diagrammi e si integra con piattaforme di collaborazione popolari, rendendolo accessibile per le squadre con budget limitati per gli strumenti.
Piattaforme di collaborazione e documentazione
Le piattaforme di collaborazione supportano la comunicazione in tempo reale, la condivisione dei documenti e la modifica collaborativa che consentono un'ingegneria efficace dei requisiti attraverso i confini geografici e organizzativi.
Confluenza[[]] fornisce documentazione basata su wiki con controllo delle versioni, commento e integrazione con Jira. Molte squadre utilizzano Confluence per documentare i requisiti, catturare le note di riunione e mantenere le basi di conoscenza del progetto che completano gli strumenti di gestione dei requisiti più formali.
Microsoft Teams[] e Slack[[]] facilitano la comunicazione in tempo reale e la condivisione dei file, supportando le conversazioni in corso che sono essenziali per l'elicitazione e la validazione dei requisiti. L'integrazione con altri strumenti consente di discutere i requisiti per essere collegati alla documentazione formale dei requisiti.
Miro] e [Mural[[] forniscono capacità di whiteboard virtuali che supportano workshop di requisiti collaborativi e sessioni di brainstorming. Questi strumenti sono particolarmente preziosi per i team distribuiti che devono replicare le dinamiche collaborative dei workshop in-person.
Strumenti di prototipazione e di filiframing
Gli strumenti di prototipazione specializzati consentono una rapida creazione di mockup interattivi che aiutano a convalidare i requisiti dell'interfaccia utente. Questi strumenti spaziano dalle semplici applicazioni di wireframing alle piattaforme sofisticate che creano prototipi ad alta fedeltà con interazioni realistiche.
Figma[]] è diventata la piattaforma di progettazione e prototipazione collaborativa leader, offrendo in tempo reale collaborazione, librerie di componenti e capacità di prototipazione interattiva.
Axure RP[[]] fornisce potenti capacità di prototipazione, tra cui logica condizionale, contenuto dinamico e interazioni complesse.
Balsamiq[]] si concentra sulla filigrana a bassa fedeltà con uno stile visivo volutamente schizzo che incoraggia gli stakeholder a concentrarsi sulla funzionalità e sul flusso di lavoro piuttosto che sui dettagli del design visivo.
Sfide comuni in requisiti Ingegneria e come superare Loro
Nonostante i migliori sforzi, i progetti di ingegneria requisiti incontrano spesso sfide che possono derail progresso e risultati di compromesso. Capire i casi comuni e sviluppare strategie per affrontarli è essenziale per la pratica di ingegneria di requisiti di successo.
Requisiti incompleti o ambigui
I requisiti incompleti lasciano vuoti che devono essere colti attraverso ipotesi durante la progettazione e l'implementazione, spesso portando a sistemi che non soddisfano pienamente le esigenze degli stakeholder.
Per affrontare questa sfida occorre applicare tecniche di validazione sistematiche, comprese le recensioni dei requisiti, la prototipazione e lo sviluppo dei casi di test. I requisiti devono essere scritti utilizzando un linguaggio chiaro e specifico con esempi concreti, se del caso. I criteri di accettazione dovrebbero definire esattamente quali condizioni devono essere soddisfatte per un requisito da soddisfare.
I modelli strutturati e le liste di controllo aiutano a garantire che i requisiti includono tutte le informazioni necessarie. Ad esempio, un modello di requisito potrebbe richiedere l'affermazione dei requisiti, la razionalità, la priorità, i criteri di accettazione e le dipendenze, assicurando che questi elementi siano esplicitamente affrontati piuttosto che lasciati impliciti.
Scope Creep e Cambiamento Incontrollato
Se si verificano nuovi requisiti senza modifiche corrispondenti a pianificazione, budget o altri requisiti, mentre alcuni requisiti cambiano inevitabilmente e sano, il cambiamento incontrollato può sminuire i progetti e prevenire la consegna delle funzionalità principali.
La definizione delle specifiche dei requisiti iniziali dovrebbe definire esplicitamente ciò che è in ambito e ciò che è fuori campo per il progetto corrente. Quando vengono proposti nuovi requisiti, devono essere valutati contro gli obiettivi e i vincoli del progetto prima di essere accettato.
I processi di controllo dei cambiamenti dovrebbero richiedere che vengano documentate, valutate per l'impatto e approvate da parti interessate appropriate prima dell'attuazione. L'analisi degli impatti dovrebbe considerare gli effetti sul calendario, sul bilancio, su altri requisiti e sul rischio di progetto.
Mantenere un elenco di requisiti di backlog o futuri fornisce un luogo per catturare buone idee che sono fuori portata per il progetto corrente, che riconosce il valore della suggestione, impedendo al tempo stesso di interrompere il lavoro corrente.
Conflitti e priorità di Competing
I diversi stakeholder hanno spesso requisiti contrastanti basati sui loro ruoli, prospettive e priorità diverse. Le parti interessate possono dare priorità alle caratteristiche che guidano i ricavi, mentre gli utenti privilegiano la facilità d'uso e i team tecnici privilegiano la manutenbilità e le prestazioni.
I requisiti ingegneri dovrebbero facilitare le discussioni che aiutano gli stakeholder a comprendere le prospettive e trovare soluzioni creative che rispondano alle esigenze fondamentali anche se non soddisfano le richieste iniziali esattamente come indicato.
Quando i conflitti non possono essere risolti, è necessario intensificare gli sponsor esecutivi o i comitati di direzione, che possono essere i responsabili delle decisioni in grado di effettuare i trade-off basati su priorità strategiche e obiettivi organizzativi che trascendeno le preferenze individuali degli stakeholder.
I processi di priorità trasparenti aiutano a gestire le richieste concorrenti, facendo esplicite le esigenze utilizzate per definire le esigenze e la logica delle decisioni di priorità.Quando gli stakeholder capiscono perché alcuni requisiti sono prioritari per gli altri, sono più propensi ad accettare decisioni anche quando i loro requisiti preferiti sono differiti.
Gaps di comunicazione tra gli Stakeholder tecnici e non tecnici
Gli stakeholder tecnici e non tecnici spesso si sforzano di comunicare efficacemente i requisiti dovuti a diversi vocabulari, modelli mentali e livelli di comprensione tecnica. Le parti interessate possono descrivere i requisiti in termini troppo vaghi per l'implementazione, mentre i membri del team tecnico possono usare il gergo che gli stakeholder aziendali non capiscono.
Gli ingegneri dei requisiti servono come traduttori, aiutando gli stakeholder tecnici e non tecnici a capirsi, richiedendo lo sviluppo di fluidità sia nel campo commerciale che tecnico e la capacità di spiegare i concetti a livelli appropriati di dettaglio per i diversi spettatori.
I modelli e i prototipi visivi forniscono punti di riferimento comuni che gli stakeholder con diversi background possono discutere. Un prototipo o un diagramma spesso comunica più efficacemente delle pagine del testo, aiutando gli stakeholder a sviluppare la comprensione condivisa nonostante i diversi vocabolari.
La creazione di un glossario di progetto che definisce i termini chiave consente di prevenire i malintesi causati da diverse interpretazioni delle stesse parole.
Requisiti che sono difficili da verificare
Alcuni requisiti sono indicati in modi che rendono impossibile determinare oggettivamente se sono stati soddisfatti. I requisiti come "il sistema deve essere user-friendly" o "il sistema deve avere buone prestazioni" sono troppo soggettivi o vaghi per verificare attraverso i test.
Invece di "user-friendly", i requisiti potrebbero specificare che "il 90% degli utenti deve essere in grado di completare i compiti comuni senza consultare la documentazione dell'aiuto" o "gli utenti valuteranno la facilità d'uso a 4.0 o superiore su una scala a 5 punti". Invece di "buone prestazioni", i requisiti potrebbero specificare che "il sistema risponderà alle richieste degli utenti entro 2 secondi in condizioni di carico normali".
I criteri di accettazione dovrebbero definire condizioni specifiche e testabili che devono essere soddisfatte per ogni esigenza. Se un requisito non può essere testato, deve essere raffinato fino a quando non possono essere definiti criteri di accettazione chiari. Il processo di sviluppo dei casi di prova spesso rivela requisiti che richiedono chiarificazione o ulteriori dettagli.
Inadeguato Stakeholder Engagement
L'ingegneria dei requisiti dipende dalla partecipazione attiva dei soggetti interessati, ma gli stakeholder sono spesso impegnati con altre responsabilità e non possono dare priorità alle attività dei requisiti.
Migliorare l'impegno degli stakeholder richiede di dimostrare il valore della loro partecipazione e di rendere il più facile possibile per loro di contribuire.
L'attività di pianificazione richiede a volte un'attività comoda per gli stakeholder e la conservazione di riunioni focalizzate e produttive rispetta il tempo delle parti interessate e incoraggia la partecipazione continua. Fornire più canali per l'ingresso, tra cui interviste, workshop, sondaggi e prototipi, consente agli stakeholder di contribuire in modi che si adattano ai loro orari e preferenze.
La sponsorizzazione esecutiva aiuta a garantire l'impegno degli stakeholder, rendendo chiaro che le attività dei requisiti sono una priorità e che la partecipazione degli stakeholder è prevista e valutata.
Migliori Pratiche per Requisiti Ingegneria Eccellenza
Le organizzazioni che riescono costantemente a soddisfare i requisiti di ingegneria seguono pratiche provate che migliorano la qualità dei requisiti, la soddisfazione dei stakeholder e i risultati del progetto.
Inizia con obiettivi aziendali chiari
I requisiti dovrebbero risalire a obiettivi aziendali chiari che definiscono ciò che l'organizzazione spera di raggiungere attraverso il progetto. Capire gli obiettivi aziendali fornisce un contesto per valutare i requisiti e prendere decisioni di compromesso.
Gli obiettivi aziendali dovrebbero essere specifici e misurabili, definendo criteri di successo che possono essere valutati dopo l'implementazione del sistema.Obiettivi vaghi come "migliorare la soddisfazione del cliente" dovrebbero essere affinati in obiettivi misurabili come "aumentare i punteggi di soddisfazione del cliente da 3,5 a 4,2 su una scala a 5 punti entro sei mesi di implementazione".
Coinvolgere gli Stakeholders primi e spesso
Il coinvolgimento precoce degli stakeholder contribuisce a garantire che i requisiti riflettano con precisione le esigenze degli stakeholder e che gli stakeholder sviluppino la proprietà dei requisiti.
Il coinvolgimento degli stakeholder non dovrebbe includere solo le richieste di elicitazione, ma anche le attività di validazione come le recensioni dei prototipi e i test di accettazione.Gli stakeholder che partecipano alla validazione sono più propensi ad accettare il prodotto finale e meno propensi a sostenere che non soddisfa le loro esigenze.
Documento al giusto livello di dettaglio
La documentazione dei requisiti dovrebbe fornire abbastanza dettagli per guidare l'implementazione e consentire la verifica, ma non tanto dettaglio che diventa oneroso per creare e mantenere. Il livello appropriato di dettaglio dipende dal contesto del progetto, tra cui l'esperienza del team, la complessità del sistema e i requisiti normativi.
I requisiti di alto rischio o complessi possono garantire una documentazione dettagliata, mentre i requisiti semplici possono richiedere solo brevi descrizioni integrate da esempi o prototipi. La documentazione dovrebbe focalizzarsi su ciò che il sistema dovrebbe fare e perché, lasciando dettagli di attuazione alle attività di progettazione, a meno che non siano necessari approcci specifici di implementazione da vincoli o standard.
Mantenere la tracebilità in tutto il ciclo di vita
I collegamenti tra requisiti e altri manufatti di progetto consentono analisi, verifica della copertura e dimostrazione della conformità, pur mantenendo la tracciabilità richiede sforzi, i benefici in termini di rilavoro ridotto e qualità migliorata tipicamente giustificano l'investimento.
La tracciabilità manuale diventa rapidamente obsoleta, quindi il supporto degli strumenti è essenziale per tutti i progetti più piccoli. I rapporti di tracebilità dovrebbero essere esaminati regolarmente per identificare le lacune e garantire che tutti i requisiti siano adeguatamente tracciati.
Piano di cambiamento
I requisiti cambieranno in quanto gli stakeholder imparano più su ciò che è possibile e le condizioni aziendali si evolvono, piuttosto che cercare di prevenire tutti i cambiamenti, l'ingegneria dei requisiti di successo stabilisce i processi per gestire il cambiamento in modo controllato che mantiene l'integrità del sistema.
I processi di gestione dei cambiamenti dovrebbero bilanciare la flessibilità con il controllo, consentendo cambiamenti preziosi, evitando il rischio di un'estensione incontrollata. I cambiamenti dovrebbero essere valutati per il loro impatto sugli obiettivi del progetto, il programma, il bilancio e altri requisiti prima dell'approvazione.
Validare i requisiti prima dell'implementazione
La convalida dei requisiti prima di un investimento significativo di implementazione aiuta a catturare gli errori quando sono meno costosi da risolvere. Le tecniche di convalida, comprese le recensioni, la prototipazione e lo sviluppo dei casi di test devono essere applicate sistematicamente per garantire che i requisiti rappresentano esattamente le esigenze degli stakeholder e che sono complete, coerenti e fattibili.
La convalida deve coinvolgere gli stakeholder che possono confermare che i requisiti acquisiscono con precisione le loro esigenze. La validazione tecnica da parte di architetti e sviluppatori senior aiuta a garantire che i requisiti siano tecnicamente fattibili e che non contengono contraddizioni o impossibilità nascoste.
Investire in requisiti di ingegneria competenze
L'ingegneria dei requisiti richiede competenze specialistiche, tra cui la comunicazione degli stakeholder, il pensiero analitico, la scrittura tecnica e la conoscenza del dominio.
Gli ingegneri esperti di requisiti portano competenze preziose che possono migliorare significativamente i risultati del progetto. Le organizzazioni dovrebbero riconoscere i requisiti di ingegneria come disciplina specializzata e fornire percorsi di carriera che permettono ai professionisti di sviluppare competenze profonde piuttosto che trattare i requisiti di ingegneria come un'attività entry-level che chiunque può svolgere.
Scopri dall'esperienza
Le organizzazioni dovrebbero acquisire sistematicamente le lezioni apprese dalle attività ingegneristiche dei requisiti e utilizzare quelle lezioni per migliorare i progetti futuri.
I metrici, compresi i requisiti di volatilità, i tassi di difetti tracciati agli errori dei requisiti, e la soddisfazione dei soggetti con i processi di requisiti, forniscono dati oggettivi per identificare le opportunità di miglioramento.
Requisiti di settore-Specifici Considerazioni di ingegneria
Mentre i principi di ingegneria dei requisiti fondamentali si applicano in tutti i settori, diversi domini hanno caratteristiche uniche che influenzano la pratica dei requisiti di ingegneria.
Sistemi di sicurezza-critici
I sistemi critici di sicurezza in domini come aerospaziale, dispositivi medici e automobilistici richiedono requisiti di ingegneria eccezionalmente rigorosi perché i guasti possono causare lesioni o morte. Questi sistemi devono rispettare rigidi standard normativi che richiedono una documentazione completa dei requisiti, una verifica formale e una tracciabilità estesa.
I requisiti per i sistemi critici di sicurezza devono essere completi, inequivocabili e verificabili. I metodi formali e la modellazione matematica sono spesso utilizzati per analizzare i requisiti per la completezza e la coerenza. I requisiti di sicurezza devono essere identificati e tracciati esplicitamente attraverso la progettazione, l'implementazione e i test per dimostrare che gli obiettivi di sicurezza sono soddisfatti.
La conformità alle normative richiede una vasta documentazione e prove che i processi ingegneristici di requisiti seguono standard stabiliti. Le organizzazioni che sviluppano sistemi critici per la sicurezza utilizzano in genere processi di ingegneria dei requisiti maturi con ruoli definiti, procedure e porte di qualità.
Servizi finanziari e banche
I sistemi di servizi finanziari devono rispettare i requisiti normativi estensivi relativi alla sicurezza, alla privacy, ai percorsi di audit e alla rendicontazione finanziaria.
I sistemi finanziari spesso si integrano con numerosi sistemi esterni e devono mantenere la coerenza dei dati attraverso flussi di transazioni complessi. I requisiti devono specificare punti di integrazione, formati di dati, procedure di gestione degli errori e procedure di riconciliazione in dettaglio.
I cambiamenti normativi possono generare cambiamenti significativi anche dopo l'implementazione dei sistemi. I processi di ingegneria dei requisiti devono soddisfare i requisiti di conformità normativi in corso e consentire una risposta rapida ai cambiamenti normativi.
Assistenza sanitaria e Informatica medica
I sistemi sanitari devono rispettare le normative come HIPAA negli Stati Uniti o GDPR in Europa che disciplinano la privacy dei pazienti e la sicurezza dei dati.
L'interoperabilità è una delle principali preoccupazioni nel settore sanitario, con sistemi che necessitano di scambiare dati utilizzando standard quali HL7 e FHIR. I requisiti devono specificare i formati di scambio dati, gli standard terminologici e i protocolli di integrazione in dettaglio.
I flussi di lavoro clinici sono complessi e variano tra le organizzazioni, richiedendo un'attenta richiesta di richieste per capire come i sistemi saranno utilizzati in pratica. L'utilizzo è particolarmente critico nel settore sanitario dove le interfacce utente povere possono contribuire a errori medici.
Applicazioni di commercio elettronico e di consumo
Le applicazioni di customer-facing operano in mercati altamente competitivi dove l'esperienza degli utenti è un differenziatore chiave. L'ingegneria dei requisiti deve bilanciare gli obiettivi aziendali con le esigenze degli utenti, spesso richiedendo scambi tra ricchezza di funzionalità e semplicità.
I requisiti per le applicazioni di consumo spesso emergono attraverso la sperimentazione e il feedback degli utenti piuttosto che le specifiche di upfront complete. I test e gli analytics di A/B forniscono dati sul comportamento degli utenti che informano la raffinatezza dei requisiti.
I requisiti di scalabilità e prestazioni sono fondamentali per le applicazioni di consumo che possono sperimentare una rapida crescita o un carico altamente variabile. I requisiti devono affrontare non solo le esigenze attuali, ma anche la scala futura anticipata.
Pianificazione delle risorse aziendali e sistemi aziendali
I sistemi Enterprise supportano processi aziendali complessi che abbracciano più dipartimenti e si integrano con numerosi altri sistemi. L'ingegneria dei requisiti deve comprendere i processi aziendali esistenti, identificare le opportunità di miglioramento e specificare come il sistema supporterà sia i processi attuali che futuri.
La gestione degli stakeholder è particolarmente impegnativa per i sistemi aziendali, dato il gran numero di stakeholder con diverse esigenze e priorità. L'ingegneria dei requisiti deve bilanciare la standardizzazione che consente l'efficienza con la personalizzazione che affronta specifiche esigenze di reparto.
I requisiti di gestione e formazione dei cambiamenti sono significativi per i sistemi aziendali che possono cambiare in modo fondamentale il modo in cui lavorano le persone. I requisiti dovrebbero affrontare non solo le funzionalità del sistema, ma anche la gestione dei cambiamenti organizzativi e l'adozione degli utenti.
Il futuro dei requisiti Ingegneria
L'ingegneria dei requisiti continua ad evolversi come nuove tecnologie, metodologie e contesti aziendali emerge. Capire le tendenze emergenti aiuta i professionisti a prepararsi a sfide e opportunità future nel campo.
Intelligenza artificiale e apprendimento automatico
L'intelligenza artificiale e l'apprendimento automatico stanno iniziando a migliorare le attività di ingegneria dei requisiti. L'elaborazione del linguaggio naturale può analizzare i documenti requisiti per identificare ambiguità, incongruenze e informazioni mancanti. I modelli di apprendimento automatico possono prevedere i requisiti basati su progetti precedenti simili o suggeriscono requisiti che sono comunemente associati a caratteristiche specifiche.
I chatbot e gli assistenti virtuali alimentati dall'IA possono supportare le richieste di elicitazione, conducendo interviste iniziali agli stakeholder e raccogliendo informazioni di base prima che gli ingegneri dei requisiti umani vengano coinvolti. Tuttavia, gli aspetti sociali e cognitivi complessi dei requisiti di ingegneria significano che l'AI aumenterà piuttosto che sostituire gli ingegneri dei requisiti umani per il futuro prevedibile.
I sistemi che incorporano l'intelligenza artificiale e l'apprendimento automatico presentano nuove sfide ingegneristiche. I requisiti tradizionali specificano il comportamento del sistema deterministico, ma i sistemi AI imparano e si adattano in modi che potrebbero non essere completamente prevedibili.
Requisiti continui Ingegneria
Il passaggio verso la consegna continua e le pratiche DevOps sta conducendo l'evoluzione verso l'ingegneria dei requisiti continui in cui i requisiti emergono e si evolvono continuamente piuttosto che essere specificati in fasi discrete.
L'ingegneria dei requisiti continui si basa sulla telemetria e l'analisi da sistemi implementati per capire come gli utenti utilizzano effettivamente le funzionalità e dove incontrano problemi. Questo dato informa la raffinatezza dei requisiti in corso e aiuta a privilegiare i miglioramenti basati su modelli di utilizzo reali piuttosto che su ipotesi.
Le bandiere di funzionalità e i test A/B consentono di sperimentare diverse implementazioni di requisiti, consentendo ai team di convalidare i requisiti attraverso l'utilizzo del mondo reale prima di impegnarsi a approcci specifici.
Ingegneria dei sistemi basata su modelli
L'ingegneria dei sistemi basati sui modelli (MBSE) utilizza modelli formali come mezzo primario per specificare i requisiti e la progettazione del sistema. Piuttosto che i documenti dei requisiti basati su testo, MBSE crea modelli eseguibili che possono essere simulati e analizzati per convalidare i requisiti prima dell'implementazione.
MBSE promette una migliore qualità dei requisiti attraverso analisi e simulazione formale, una migliore comunicazione attraverso modelli visivi, una generazione automatizzata di documentazione e casi di test da modelli.
Standard come SysML forniscono linguaggi di modellazione standardizzati per l'ingegneria dei sistemi, consentendo l'interoperabilità degli strumenti e il trasferimento di conoscenze attraverso le organizzazioni.
Maggiore attenzione ai requisiti non operativi
Poiché le funzionalità diventano sempre più commoditizzate, i requisiti non funzionali relativi alle prestazioni, alla sicurezza, all'usabilità e all'affidabilità diventano differenziatori chiave. L'ingegneria dei requisiti sta ponendo maggiore enfasi sull'elicitazione, la specificazione e la convalida di requisiti non funzionali che storicamente hanno ricevuto meno attenzione rispetto ai requisiti funzionali.
I requisiti di sicurezza e privacy stanno ricevendo particolare attenzione data crescente minacce informatiche e requisiti normativi. L'ingegneria dei requisiti deve affrontare la sicurezza durante il ciclo di vita del sistema, dai principi di progettazione sicura attraverso le pratiche di codifica sicura e il monitoraggio della sicurezza in corso.
Sostenibilità e impatto ambientale stanno emergendo come importanti requisiti non funzionali in quanto le organizzazioni si concentrano sulla riduzione dell'impronta ambientale.
Attuazione pratica: un approccio passo-passo
Per le organizzazioni che cercano di migliorare le loro pratiche ingegneristiche, un approccio sistematico di attuazione aumenta la probabilità di successo.
Passo 1: Valuta lo Stato attuale
Iniziare comprendendo le pratiche ingegneristiche dei requisiti attuali, tra cui quello che funziona bene e che cosa ha bisogno di miglioramento. Questa valutazione dovrebbe esaminare processi, strumenti, competenze e cultura organizzativa relativi ai requisiti di ingegneria.
Raccogliere i dati attraverso interviste con stakeholder, retrospettive di progetto e analisi dei risultati del progetto passato. Cercare modelli in problemi legati ai requisiti, tra cui lo scopo strisciare, i difetti dei requisiti, la disfazione degli stakeholder e il rilavoro causato da errori di requisiti.
Le pratiche attuali di Benchmark contro gli standard industriali e le migliori pratiche per identificare lacune e opportunità di miglioramento specifiche. I modelli di maturità di Capability come CMMI forniscono i framework per la valutazione dei requisiti di maturità ingegneristica e l'identificazione di aree per il miglioramento.
Fase 2: Definire obiettivi di Stato e di miglioramento dell'obiettivo
Sulla base della valutazione dello stato attuale, definire obiettivi specifici e misurabili per il miglioramento dell'ingegneria dei requisiti. Gli obiettivi potrebbero includere la riduzione dei difetti dei requisiti da una specifica percentuale, migliorare i punteggi di soddisfazione degli stakeholder, o ridurre il rilavoro causato da errori di requisiti.
Lo stato di destinazione dovrebbe essere realistico dato vincoli organizzativi e la cultura. Tentare di implementare cambiamenti troppo ambiziosi troppo rapidamente porta alla resistenza e al fallimento.
Iniziative di miglioramento prioritarie basate sul loro impatto potenziale e sulla fattibilità, focalizzate innanzitutto sui cambiamenti che affrontano i problemi più significativi e che possono essere implementati con risorse disponibili e supporto organizzativo.
Fase 3: Sviluppare e Documentare i processi
I processi di ingegneria dei requisiti di documento che definiscono come i requisiti saranno richiesti, analizzati, specificati, convalidati e gestiti. I processi dovrebbero essere abbastanza specifici per fornire una guida chiara ma abbastanza flessibile per ospitare diversi contesti di progetto.
La documentazione di processo dovrebbe includere ruoli e responsabilità, attività e consegnabili, modelli e strumenti, e criteri di qualità. I modelli di processo visivo aiutano gli stakeholder a comprendere il flusso di lavoro e i handoff tra ruoli diversi.
I processi imposti dall'alto senza input del professionista spesso falliscono perché non tengono conto dei vincoli reali e delle condizioni di lavoro.
Passo 4: selezionare e implementare gli strumenti
Scegli strumenti che supportano processi definiti e che si adattano alle esigenze organizzative, al budget e all'ambiente tecnico. La selezione degli strumenti dovrebbe considerare non solo caratteristiche ma anche facilità d'uso, integrazione con strumenti esistenti, supporto dei fornitori e costo totale di proprietà.
Strumenti di implementazione incrementalmente, a partire dalle funzionalità del core e aggiungendo funzionalità avanzate, mentre gli utenti diventano comodi con funzionalità di base.
Evita la tentazione di lasciare che i processi di guida degli strumenti. Gli strumenti dovrebbero supportare processi definiti, non dettarli. Se uno strumento non si adatta al modo in cui l'organizzazione funziona, sia personalizzare lo strumento o scegliere uno strumento diverso piuttosto che forzare l'organizzazione per adattarsi alle limitazioni degli strumenti.
Passo 5: Costruisci competenze e capacità
Investire nello sviluppo delle competenze ingegneristiche attraverso la formazione, il mentoring e lo sviluppo professionale. La formazione dovrebbe coprire sia le basi teoriche che le tecniche pratiche, con opportunità di praticare nuove competenze in scenari realistici.
Stabilire comunità di pratica in cui i requisiti ingegneri possono condividere esperienze, discutere le sfide e imparare l'un l'altro. Le comunità di pratica aiutano a costruire la conoscenza organizzativa e fornire supporto ai professionisti mentre sviluppano le loro abilità.
Considera i programmi di certificazione come IREB (International Requisiti Engineering Board) che forniscono percorsi di apprendimento strutturati e credenziali riconosciute dal settore. La certificazione dimostra l'impegno per lo sviluppo professionale e fornisce una base comune di conoscenza in tutta l'organizzazione.
Passo 6: Pilota e raffina
I piloti offrono l'opportunità di identificare e affrontare i problemi in un ambiente controllato prima di influenzare l'intera organizzazione.
Raccogliere feedback da parte dei partecipanti pilota su ciò che funziona bene e ciò che ha bisogno di aggiustamento. Preparatevi a perfezionare processi e strumenti basati sull'esperienza pilota. Il miglioramento del processo è iterativo, con una raffinatezza continua basata sull'esperienza.
Lezioni di documenti apprese dai piloti e le incorporano nella documentazione di processo e nei materiali di formazione.
Fase 7: Scala e Istituzionalizzazione
Una volta che i processi e gli strumenti sono stati convalidati attraverso i piloti, li scalano attraverso l'organizzazione. Scaling richiede non solo dispiegare processi e strumenti, ma anche la costruzione di cultura organizzativa che valorizza i requisiti di ingegneria e supporta i professionisti.
La sponsorizzazione esecutiva è fondamentale per la scalabilità di successo. I leader devono supportare in modo visibilmente i requisiti di ingegneria, assegnare le risorse necessarie e tenere i team responsabili per i seguenti processi definiti.
Stabilire metriche per monitorare l'efficacia ingegneristica dei requisiti e identificare le aree per il miglioramento continuo. I metrici potrebbero includere i requisiti tassi di difetto, la volatilità dei requisiti, la soddisfazione degli stakeholder e i risultati del progetto relativi alla qualità dei requisiti.
Passo 8: Migliorare continuamente
Il miglioramento dell'ingegneria dei requisiti non è uno sforzo di una volta ma un viaggio continuo. Stabilire meccanismi per il miglioramento continuo, tra cui regolari recensioni di processo, retrospettive e l'integrazione di lezioni apprese da progetti completati.
Restate attuali con le migliori pratiche, strumenti e tecniche in evoluzione attraverso lo sviluppo professionale, conferenze di settore e il coinvolgimento con la più ampia comunità di ingegneria dei requisiti. Il campo continua ad evolversi e le organizzazioni devono evolversi con esso per mantenere l'efficacia.
Celebra i successi e riconosce i team che dimostrano l'eccellenza nell'ingegneria dei requisiti. Il riconoscimento rafforza i comportamenti desiderati e costruisce l'impegno organizzativo per le esigenze di eccellenza ingegneristica.
Conclusione: Bridging the Gap Between Theory and Practice
L'ingegneria dei requisiti rappresenta il ponte critico tra le esigenze degli stakeholder e i sistemi implementati. Mentre i quadri teorici forniscono una guida preziosa, l'ingegneria dei requisiti di successo richiede l'adattamento dei principi generali a specifici contesti organizzativi, vincoli di progetto e bisogni degli stakeholder.
Il viaggio dalla comprensione teorica alla padronanza pratica richiede investimenti in processi, strumenti, competenze e cultura organizzativa, richiede impegno da leadership, impegno da parte degli stakeholder e dedizione da parte dei professionisti, ma il pagamento in termini di risultati di progetto migliorati, rilavoro ridotto e maggiore soddisfazione degli stakeholder rende questo investimento utile.
Le organizzazioni che sviluppano forti esigenze di ingegneria si posizionano per il successo in un mondo sempre più guidato dal software. Applicando i principi, le tecniche e le migliori pratiche discusse in questo articolo, i professionisti possono colmare il divario tra la teoria dell'ingegneria dei requisiti e l'implementazione pratica, fornendo sistemi che soddisfano veramente le esigenze degli stakeholder e creano un valore duraturo.
Per coloro che desiderano approfondire la loro comprensione di requisiti di ingegneria, le risorse preziose includono il [ International Requisiti Engineering Board (IREB)] che offre programmi di certificazione e formazione, e il Project Management Institute (PMI)] che fornisce risorse sull'analisi aziendale e la gestione dei requisiti.
Con approccio sistematico, strumenti e tecniche appropriati, professionisti esperti e impegno organizzativo, qualsiasi organizzazione può sviluppare requisiti di ingegneria capacità che guidano il successo del progetto e forniscono sistemi che rispondono veramente alle esigenze degli stakeholder. L'investimento in requisiti di eccellenza ingegneristica paga dividendi in tutto il ciclo di vita del sistema, da ridotti costi di sviluppo attraverso una migliore soddisfazione degli utenti e una manutenzione più facile.