È brutto essere l'unico software di supporto che hai sviluppato?

5

Il mio datore di lavoro ha bisogno di un'applicazione web-based per gestire e condividere i dati all'interno del dipartimento, con circa 50-75 possibili utenti. Sento di avere la capacità di scriverlo per loro. Probabilmente userò Python / Django con un database MySQL, quindi sarebbe open source. Tuttavia, sono l'unica persona IT del mio dipartimento (la nostra organizzazione più grande ha uno staff di supporto IT separato con cui lavoro spesso, ma non per lo sviluppo web). Voglio sviluppare questa applicazione, ma se partirò tra 1-2 anni, e qualcun altro dovrà venire dopo di me e sostenerlo, sarà considerata una decisione sbagliata?

Ciò presuppone tutti i punti ovvi: scriverò la documentazione, commenterò il mio codice e mi impegnerò a seguire i buoni principi di progettazione delle applicazioni. Ma sarà abbastanza? In linea di principio, è accettabile per una persona sviluppare e supportare un'intera applicazione web? Si tratta di un tipo di situazione "fai prima, poi mostra e chiedi", o dovrei essere sicuro che verrà adottato da tutti i soggetti coinvolti per primo?

Riguardo alle specifiche, lavoro in un dipartimento accademico di un'università che ha processi specifici per i candidati studenti e per il loro ricovero. Devi fare domanda per l'università, E il mio dipartimento separatamente. Il processo specifico del dipartimento è molto manuale e messo insieme, ed è qui che verrebbe il mio sviluppo. Noi (io e IT) stiamo già pianificando di incorporare le domande aggiuntive che riguardano il mio dipartimento nella principale applicazione universitaria (che è elettronica, e si inserisce in PeopleSoft), in modo tale da risolvere il pezzo di front-end e tutto sarebbe in un unico posto. Ma per la facoltà e il personale di acquisire e "digerire" tali informazioni durante il processo di ammissione richiederà un'applicazione di qualche tipo, che preferirei fare "a modo mio". Lo staff IT vuole svilupparlo ALL in PeopleSoft, e temo che sarà troppo rigido e non sarà ben accolto dal nostro dipartimento, e potrebbe non soddisfare ancora completamente le nostre esigenze. Esistono soluzioni di terze parti che soddisfano perfettamente questa esigenza, ma sono proibitive dal punto di vista dei costi. Vorrei interrogare i dati di PeopleSoft e presentarlo come so che la facoltà e il personale hanno bisogno di vederli. (Ottenere l'accesso alla query PeopleSoft è una battaglia completamente diversa.)

    
posta trpt4him 27.11.2012 - 03:14
fonte

6 risposte

1

Se il tuo datore di lavoro ha un dipartimento IT, il tuo sviluppo potrebbe portare a qualche infelicità politica :)

Dove sarà ospitato il tuo sito? Provare a consegnare uno sviluppo esterno agli utenti IT potrebbe essere problematico.

Suggerirei che il capo dipartimento inserisca una richiesta per l'IT per guidare tale sviluppo e che tu tenti di essere coinvolto con esso.

La maggior parte delle organizzazioni ha un metodo set / SDLC che seguono e potrebbe avere alcune scelte tecnologiche che non includono quelle con cui si ha familiarità.

Per lo meno ottenere l'OK dall'IT per continuare con qualcosa di simile.

    
risposta data 27.11.2012 - 05:45
fonte
13

Direi che alcuni dei miei migliori ingegneri sono venuti dal fare esattamente quello che stai descrivendo. Essere collocati in una posizione in cui devi prendere queste decisioni (molti ingegneri di grandi organizzazioni non ottengono questo tipo di scelte) aiuta ad aumentare il tuo livello di comprensione a passi da gigante.

Sì, è un po 'più stressante. Ma questo sarà qualcosa che hai creato, ti dà incentivo e un strong desiderio di imparare, e una capacità di affinare le tue abilità per imparare come imparare.

Ho guidato troppe squadre in cui gli ingegneri si affidano alle risposte che altri forniscono senza il pensiero critico alle implicazioni.

Questo progetto sembra un ottimo modo per creare non solo il set di abilità di sviluppo, ma anche il set di abilità tecniche di leadership, il set di abilità open source, il set di abilità di pensiero critico.

Imparerai anche qualcosa che raramente gli altri sviluppatori apprendono ... che cosa è per mantenere un'applicazione che tu stesso hai scritto! Sai in che misura ti avvicini allo sviluppo del software quando devi mangiare il tuo cibo per cani?

Uno dei miei requisiti per gli ingegneri Jr e anche Sr è che mantengano il software su cui un giorno potranno svilupparsi.

    
risposta data 27.11.2012 - 04:17
fonte
4

Essere un unico sviluppatore è una benedizione e una maledizione. Molte persone non avranno mai l'opportunità, quindi prenditela e imparerai molto, dovendo mantenere i tuoi stessi errori, sentendo il dolore che imparerai molte cose che la gente non fa mai nelle grandi aziende. La parte maledizione è che non otterrai l'input esterno che a volte può accelerare la tua capacità di applicare nuove soluzioni che non avresti riconosciuto da solo. Morale della trama, prendi la rara opportunità, ma non fermarti troppo a lungo perché l'insularità può cementare cattive abitudini senza che la gente ti corregga. Assicurati inoltre di essere attivo nelle community online con altri sviluppatori per ottenere il maggior numero di feedback possibile. Vedi link per questo scopo e forse cerca un forum per condividere idee e discutere.

Data la portata del tuo problema, devi esaminare due tipi di strumenti, molti dei quali sono molti e utilizzarli per creare la tua soluzione, che offrirà una soluzione più completa e molto più stabile: ETL (Extract Transform Load) e un motore di report. Cerca di fare il minor lavoro personalizzato possibile, questo ridurrà al minimo il tuo lavoro di manutenzione e anche se l'integrazione degli strumenti insieme potrebbe non sembrare così affascinante come l'hacking della tua soluzione, mostrerà una maggiore attitudine per vedere l'intera immagine e riconoscere il valore di un il problema da risolvere è maggiore di una soluzione.

Il dominio del problema che hai dettagliato è molto comune ed è noto nell'industria con il termine "Business Intelligence".

Quello che vuoi fare è estrarre i dati dal database di peoplesoft, trasformarli in utili aggregati per i tuoi scopi e caricarli nel tuo database MySql. Successivamente, si desidera generare report da quel database MySql per visualizzare le informazioni in modo utile ai propri colleghi. Solitamente i motori di reporting hanno cose come le esecuzioni pianificabili e le e-mail automatiche opzionali di tali report, ecc. Queste sono le caratteristiche di robustezza e comprensività che è piacevole ottenere da un motore di reporting piuttosto che scrivere a mano qualcosa.

Ecco alcuni motori di segnalazione open source che sono riuscito a scavare (non ne so nulla di nessuno, l'analisi di queste soluzioni e altre che potresti trovare su di te). Nota, c'è una differenza significativa tra "charting" e "reporting". Non confondere le idee e pensare che riportare significa solo grafici graziosi che non trasmetteranno tutte le tue informazioni, cioè la creazione di grafici. Il reporting si riferisce alla generazione di report con dati e grafici tabulari e qualsiasi informazione generale che si desidera visualizzare come ci si aspetterebbe da un report.

Python:

Le soluzioni in altri linguaggi potrebbero interagire bene con Python, quindi non ignorarle finché non esegui l'analisi tecnica.

Java:

C ++:

Questa domanda riguarda la segnalazione di motori con opinioni: link

Ecco alcune soluzioni ETL rapide che ho trovato.

risposta data 27.11.2012 - 17:04
fonte
1

Fidati di me sono stato nei tuoi panni e sì, ho mantenuto l'applicazione che avevo sviluppato in precedenza. Dalla mia esperienza, penso che un anziano potrebbe legare il processo di apprendimento sugli approcci migliori a un determinato problema, ma questo si ripaga da solo quando inizi a trovare tali approcci con esperienza. Ciò ti consentirà di essere più autosufficiente rispetto ad altri sviluppatori dato che farai parte di ogni fase di SDLC (Requirement Gathering to Maintenance). Questa esperienza generale ti aiuterà anche a conoscere quale parte dello sviluppo ti piace di più e concentrarti maggiormente su questo!

I want to develop this application, but if I leave in 1-2 years, and someone else has to come in after me and support it, will this be seen as a bad decision?

No - Se segui i punti ovvi che hai menzionato (documento, commenti e buona progettazione).

In principle, is it acceptable for one person to develop and support an entire web application?

Sì. Se ho capito bene, hai già esperienza nello sviluppo ma non necessariamente nel dominio web. Questa sarà una buona opportunità per affinare le tue abilità su una tecnologia web. Una cosa da ricordare è che dal momento che è un nuovo orizzonte, devi prendere le critiche dagli utenti con un pizzico di sale.

Is this a "do first, then show and ask" kind of situation, or should I be certain it will be adopted by everyone involved first?

Penso che sia possibile chiarire il più possibile la comprensione all'inizio, quindi aumentare la visibilità creando un prototipo con le funzionalità di base e chiedendo il feedback dell'utente. Cambia il tuo approccio se necessario e poi immergiti in uno sviluppo completo.

Ti auguro il meglio!

    
risposta data 27.11.2012 - 05:47
fonte
0

"Bad"? No. "Ideale"? No.

A seconda dell'impatto di questa applicazione tra la base di utenti, una singola persona potrebbe certamente gestire il mantenimento di questo. E anche eventuali sostituzioni in arrivo. Direi di provare il progetto, ma sottolineare tutto il tuo desiderio di mitigare le aspettative (la quantità di tempo / sforzo richiesto per richieste di funzionalità o correzioni di bug, insieme a qualsiasi altro "compito assegnato").

    
risposta data 27.11.2012 - 03:29
fonte
0

Il rovescio della medaglia - dal punto di vista della società, e probabilmente non ti piacerebbe nemmeno - è la possibilità di un "errore di bus". La possibilità che l'unica persona che sa come funziona l'app (tu) venga investita da un autobus e all'improvviso la società ha 0 persone che sanno come funziona l'app ma ne dipendono ancora.

Se fossi il tuo manager, mi chiederei quanto sia critico questo strumento per cercare di capire la gravità del rischio, e sicuramente se c'è qualche strumento standard che farà lo stesso lavoro ma che sarà più semplice o meno costoso da supportare.

    
risposta data 27.11.2012 - 10:05
fonte

Leggi altre domande sui tag