Domanda:
Come attraggo sviluppatori candidati desiderosi di imparare un linguaggio proprietario?
Xav
2013-01-08 18:40:53 UTC
view on stackexchange narkive permalink

Nell'azienda in cui sono entrato di recente, lo sviluppo del prodotto a cui sto lavorando ora viene eseguito in una lingua di produzione propria senza applicabilità oltre a questo team di prodotto.

Faremo pubblicità per i nuovi sviluppatori a breve, ma mi aspetto che ciò richiederà molto tempo a causa della lingua.

Chiaramente, ci saranno ancora opportunità significative per i nostri nuovi assunti per sviluppare competenze trasferibili insieme alla lingua specifica e al dominio aziendale , ma cosa possiamo fare per rendere i ruoli più propensi ad attrarre candidati con già poche lingue alle spalle, desiderosi di imparare e capaci di apprendere rapidamente una nuova lingua?

Alcuni chiarimenti per le domande poste nei commenti e nelle risposte:

  1. Il prodotto e il linguaggio esistono da decenni e sono ENORMI sia per scala che per complessità. In passato, l'intenzione era quella di sviluppare un'intera suite di prodotti in questa lingua, ma per ragioni perse nelle nebbie della storia antica ciò non è mai accaduto. La conversione a una lingua tradizionale sarebbe probabilmente un progetto di cinque anni e nel frattempo devono essere sviluppate nuove funzionalità, quindi abbiamo bisogno di sviluppatori disposti a imparare la lingua.

  2. Non è basato in qualsiasi altra lingua che conosco. È un modo molto efficiente per esprimere la logica aziendale per il nostro particolare dominio. È supportato da un team di strumenti interno e abbiamo persone con decenni di esperienza su entrambi i lati della divisione strumenti / app.

  3. Diverse persone hanno chiesto informazioni sulle competenze trasferibili. A mio avviso, il linguaggio che usi per lo sviluppo del software, la sua sintassi e le sue stranezze grammaticali, sono solo una parte del tuo lavoro. Risoluzione dei problemi, analisi, stima, lavoro di squadra, architettura, progettazione funzionale e tecnica, revisione tra pari, refactoring, disciplina di gestione del codice sorgente, analisi dei difetti, debug, auto-test, pratiche di lavoro Agile, resilienza e professionalità sono tutte competenze trasferibili o attributi che i candidati prescelti svilupperanno durante la loro permanenza in servizio. È anche mia opinione che l'apprendimento di una seconda lingua renda l'apprendimento delle lingue tre e oltre più facile.

  4. Cosa mi ha attratto del mio ruolo (non sono stato uno sviluppatore per alcuni volta) è stata l'occasione per aiutare un team di prodotto a migliorare in Agile e a sviluppare la mia esperienza Agile allo stesso tempo - una serie di problemi e allettamenti molto diversi dalla domanda di reclutamento degli sviluppatori.

(Lottato per decidere se questa domanda fosse qui o in "Programmers". Alla fine ho deciso di provare qui, ma felice di sentirmi dire che ho sbagliato ...)
È basato su un'altra lingua o richiede la conoscenza di un'altra lingua per interfacciarla con altri prodotti?
perché deve essere un linguaggio proprietario? perché non può essere fatto in un linguaggio standard, comunemente usato?
Cosa ti ha attratto dell'azienda? O questo è l'unico progetto in lingua homebrew?
Sarei meno preoccupato di apprendere una lingua proprietaria e più preoccupato / confuso sul motivo per cui l'azienda avrebbe preso la decisione di utilizzare un linguaggio personalizzato proprietario in primo luogo.
Penso che dovresti eliminare il tuo codice BobX e riscriverlo in PHP.
"Chiaramente, ci saranno ancora opportunità significative per i nostri nuovi assunti per sviluppare competenze trasferibili accanto al linguaggio specifico e al dominio aziendale" Vuoi citarne qualcuno?
[It] .all / depend / + ~ on !!!! [what] * your, @looks% & @ * # like
Eh - quindi dove ci rivolgiamo?
Quanto è grande la tua azienda / il team di sviluppo che utilizzerà questo linguaggio per lo sviluppo? Quante persone hai intenzione di coinvolgere? Hai qualche influenza sull'assunzione di queste persone e / o sui progetti a cui lavoreranno?
Azienda: 10000+ in tutto il mondo. Team: 20 persone. Assunzioni: 2. Faccio parte del processo di colloquio, quindi sì, ho una certa influenza su chi assumiamo ;-)
@Xav: Qual è il ragionamento alla base dell'utilizzo di un linguaggio locale? Il ragionamento alla base di questo potrebbe essere importante, poiché è (chiaramente) un ostacolo. Se è qualcosa sulla falsariga di "BobX", avrai difficoltà a trovare candidati di qualità che siano disposti a lavorarci. Se è perché lavori nel settore industriale e hai molte cose proprietarie con cui interfacciarti, allora arriva con il territorio. Non sto dicendo che sei uno di quelli, ma molti hanno chiesto informazioni e non ho visto una risposta alle loro domande.
@DA., Tentativo ravvicinato di una strategia di blocco del fornitore. Sviluppa in un linguaggio proprietario e non ti lasceranno mai.
* In passato, l'intenzione era che un'intera suite di prodotti fosse sviluppata in questa lingua, ma per ragioni perse nelle nebbie della storia antica questo non è mai accaduto. * - Sospetto che il motivo per cui non è mai successo sia probabilmente lo stesso motivo hai difficoltà a trovare buoni sviluppatori che vogliano lavorarci. E sebbene queste competenze di base siano trasferibili, 20 anni con la tua lingua probabilmente ti qualificheranno per una posizione di sviluppatore .net di livello base. Chi vuole passare 20 anni solo per ricominciare da capo.
Questo non è Magic / UniPaaS per caso, vero?
Il denaro funzionerà, altrimenti smetti di usare le sciocchezze proprietarie.
Questo è il linguaggio di programmazione gosu?
"A mio avviso, il linguaggio che usi per lo sviluppo del software, la sua sintassi e le sue stranezze grammaticali, sono solo una parte del tuo lavoro. Risoluzione dei problemi, [...] e professionalità sono tutte abilità trasferibili o attributi che i candidati di successo svilupperannodurante la loro permanenza in servizio. "Bene, qui è dove punge.Quante volte le persone vengono ai colloqui, spiegano come le competenze di un'altra lingua sono trasferibili, solo per essere interrotte dalle risorse umane perché non hanno esperienza con la lingua utilizzata?Faranno effettivamente peggio che fare un lavoro con un linguaggio più tradizionale.
Hai considerato l'open sourcing della lingua?Alla fine, potrebbe guadagnare utenti ed essere più attraente per i potenziali dipendenti (come lo sarebbe anche lavorare su un programma open source).Dal punto di vista aziendale, la tua azienda potrebbe addebitare il supporto.
Tredici risposte:
DJClayworth
2013-01-09 00:05:09 UTC
view on stackexchange narkive permalink

Il modo tradizionale per attirare gli sviluppatori (o chiunque altro) a fare un lavoro che non è popolare è offrire loro un sacco di soldi (o l'equivalente in benefici, formazione, ferie ecc.) . Questo può essere molto efficace. Conoscevo qualcuno che ha continuato a lavorare sul codice IBM Assembler per anni, perché ogni volta che provava a passare a un linguaggio più popolare, l'azienda aumentava lo stipendio a qualunque cosa chiedesse. Probabilmente scoprirai che anche in questo modo non attirerai la crema di sviluppatori e dovresti essere preparato per questo. Questo ovviamente aumenterà i tuoi costi e potresti voler compensare questo trovando persone per le quali gli svantaggi della posizione non sono così gravi come potrebbero essere per lo sviluppatore medio. Ecco alcuni suggerimenti:

  • scegli come target gli sviluppatori più giovani . Anche se non hanno esperienza con una lingua conosciuta, avranno acquisito alcune abilità di programmazione nel mondo reale. La loro carriera avrà sofferto meno di uno sviluppatore più anziano. Tuttavia, tieni presente che probabilmente rimarranno solo un anno o due.
  • indirizzati agli sviluppatori meno recenti . Se sei a cinque anni dal pensionamento, non importa così tanto che le tue abilità non saranno così commerciabili - e comunque, probabilmente sono già competenti in diverse lingue. Uno sviluppatore più anziano potrebbe apprezzare uno stipendio più alto ora piuttosto che prospettive di lavoro migliori in seguito.
  • Indirizza gli sviluppatori che non si adattano al modello di lavoro standard Molti sviluppatori hanno difficoltà a trovare lavoro per motivi niente a che vedere con la loro competenza. Coloro che vogliono lavorare part-time per adattarsi ai doveri dei genitori lo hanno particolarmente male, quindi possono prendere in considerazione qualsiasi offerta che si adatti ai loro orari. Inoltre tendono ad essere meno preoccupati per la progressione della carriera.
  • Un'altra forma di sviluppatore che non si adatta al modello di lavoro standard è la persona che vuole lavorare al proprio progetto ma ha bisogno di uno stipendio regolare per pagare le bollette. Offri loro una posizione part-time. Tuttavia, ancora una volta, se sono bravi, probabilmente se ne andranno dopo un po '.
  • Saccheggiando in modo nudo l'eccellente risposta di Kris, considera di prendere di mira i lavoratori a distanza.
  • Prendendo in prestito di nuovo da Kris, tu dovrebbe anche lavorare per migliorare il potenziale a lungo termine per le persone che accettano il lavoro.
+1: target degli sviluppatori che non si adattano ... Perfetto Molti bravi sviluppatori vorrebbero avere 1000-1800 ore all'anno di lavoro a contratto fisso a un buon ritmo.
Adoro l'idea di indirizzare gli sviluppatori più anziani che si stanno preparando a ritirarsi in 5 anni.
Questa è davvero una buona risposta. Mi trovo / ero in una situazione simile. Ti hanno dato uno stipendio iniziale decente e poi hanno dato una promozione, con un aumento del 33% dopo 1-1,5 anni.
Anche sviluppatori di paesi in via di sviluppo (sponsorizzati a distanza o con carta verde) se la tua azienda si trova in un paese sviluppato.
Questa domanda è appena tornata (marzo 2019) e tutti gli sviluppatori più anziani che hai assunto che erano pronti a ritirarsi tra 5 anni se ne sono andati :-( Suggerisco: corromperli!
Kris
2013-01-08 22:49:53 UTC
view on stackexchange narkive permalink

La prima cosa che devi fare è riconoscere ciò che stai chiedendo ai potenziali dipendenti; stai chiedendo loro di commettere effettivamente un suicidio professionale.

Dici che " ci saranno ancora opportunità significative per i nostri nuovi assunti di sviluppare competenze trasferibili " ma non ti dilunghi su questo e presumo che ciò non includerà alcun tempo significativo speso per lo sviluppo utilizzando linguaggi di programmazione più tradizionali.

Quando si assumono nuovi sviluppatori, la prima cosa che un datore di lavoro esaminerà è se un candidato ha svolto un lavoro simile . Preferibilmente utilizzando non solo lo stesso linguaggio utilizzato internamente, ma anche framework simili. Non riuscendo a trovare tali candidati, possono prendere in considerazione candidati che hanno utilizzato linguaggi simili (ad esempio, assumere uno sviluppatore C # per una posizione Java o uno sviluppatore Java per un Ruby ecc.) O uno che ha l'esposizione delle tecnologie che sono considerate emergenti ( possibilmente assumere uno sviluppatore Scala o Python per un ruolo Java).

Dato che nessun'altra azienda utilizza lo stesso linguaggio della tua azienda, gli sviluppatori ne avranno poco o nessun credito quando potenziali futuri datori di lavoro considereranno il loro CV. Anche un linguaggio di programmazione di nicchia servirebbe loro meglio in quanto la persona che assume l'assunzione potrebbe averne abbastanza familiarità per determinare se la sua competenza può tradursi in qualche modo.

Questo può sembrare duro, ma questo è come la maggior parte dei manager si avvicinerà all'assunzione. O vogliono che si adattino alle abilità o apportano nuove abilità che sono necessarie. Se nessuno di questi è disponibile, è molto probabile che assumano qualcuno inesperto che si mostra promettente e può essere addestrato senza dover prima essere inesperto.

Quindi, nella migliore delle ipotesi, aver lavorato per te per un paio d'anni Guarderei a posizioni di sviluppatori abbastanza entry level e probabilmente verrei considerato "con troppa esperienza" (del tipo sbagliato) anche per quelli.

OK, quindi tutto ciò è molto deprimente, cosa si può fare?

Idealmente, dovresti pianificare una migrazione a una lingua moderna e seguirla. Supponendo che non sia possibile, devi offrire incentivi che compensano il suicidio professionale.

Alcune opzioni possibili:

  • Offri lavoro a distanza . Potrebbe esserci un buon sviluppatore che vive (e non vuole trasferirsi) dove ci sono poche opportunità da avere. Una persona del genere può vederlo come una manna dal cielo ed essere del tutto indifferente alle questioni delineate sopra poiché ha già difficoltà a trovare lavoro senza trasferirsi. Questo amplia anche il tuo pool di possibili candidati.

  • Offri uno stipendio / vantaggi molto competitivi . Ciò include cose come il tempo flessibile. Poco / nessun straordinario (appello a chi mette su famiglia). Lo stipendio da solo non servirà a molto, poiché coloro che sono più motivati ​​dalla pura compensazione monetaria sono probabilmente quelli più consapevoli delle implicazioni a lungo termine dell'accettazione di questo tipo di lavoro.

  • Dimostralo il lavoro ha un potenziale a lungo termine . Spiega in modo convincente che questo non è solo un lavoro, ma una carriera in sé. Ciò richiede la dimostrazione che è probabile che l'azienda rimanga in circolazione per molto tempo. Che promuovi dall'interno, ecc.

  • Inizia a utilizzare le lingue moderne ove possibile . Anche se le tue applicazioni principali rimangono più legate al tuo linguaggio proprietario, iniziando a utilizzare linguaggi moderni in ogni possibile area, interfacciandoti con il legacy secondo necessità.

Penso che competitivo sia l'aggettivo sbagliato. Cercherei un generoso pacchetto di compensi prima ancora di prendere in considerazione una posizione che lavora con una lingua non tradizionale.
+1 per il lavoro a distanza. Assumi appaltatori con una buona paga oraria e lasciali lavorare a distanza la maggior parte del tempo. Molte persone non si preoccupano del potenziale a lungo termine, ma probabilmente non si trasferiranno neanche.
"... stai chiedendo loro di commettere effettivamente un suicidio professionale." Non necessariamente, ho conosciuto sviluppatori che hanno accettato lavori in cui hanno lavorato con lingue utilizzate solo internamente e hanno trovato lavoro utilizzando altre lingue in seguito.
Suicidio di carriera? Difficilmente. Direi che qualsiasi sviluppatore che consenta a un singolo linguaggio o framework di definirli è quello che commette un suicidio professionale. Inoltre i linguaggi nostrani sono comuni per molte applicazioni industriali in cui è necessario l'interfacciamento con macchinari complessi e robotica. Al di fuori di quella piccola area, tuttavia, sono d'accordo che non c'è motivo per un linguaggio sviluppato internamente se tutto ciò che stai facendo sono applicazioni LOB, che è circa il 98% degli sviluppatori di software.
@maple_shaft Ovviamente uno sviluppatore dovrebbe evitare di essere eccessivamente specializzato. Tuttavia, non si tratta di questo, si tratta delle percezioni di coloro che assumono. Giudicheranno un CV principalmente in base a ciò con cui il richiedente ha lavorato più di recente. Questo è ancora peggio se passa attraverso le risorse umane. Non avere recenti esperienze pratiche con * qualsiasi * lingua che la persona che assume ha familiarità renderà molto più difficile ottenere un colloquio, figuriamoci un lavoro. "Suicidio professionale" può essere un modo inutilmente colorato di definirlo, ma accettare questo lavoro danneggerebbe la carriera di chiunque e l'OP deve riconoscerlo e affrontarlo.
@Kris Sento ancora che sei inutilmente negativo su questo. Ogni lavoro promuove una carriera a seconda di come lo vendi. Per quanto riguarda le risorse umane, vorresti davvero lavorare per un posto che pone l'accento sulle parole d'ordine rispetto ai dipendenti di alta qualità?
Considerando quanti ruoli "entry level" sembrano insistere su QUALCHE tipo di esperienza in questi giorni, non vedo come averlo in una lingua insolita faccia la differenza.
@maple_shaft non tutti hanno questa scelta. Alla fine, le risorse umane (e persino i responsabili delle assunzioni) prenderanno un candidato altrettanto qualificato che è "meno rischioso". Avere esperienza con una lingua (in realtà gli errori che la lingua produce, le sue librerie e idiomi, ecc.) È ancora utile e non rischioso. E ad essere onesti, lavorare con un linguaggio specifico del dominio homebrew non aiuterà il dipendente a diventare un "dipendente di alta qualità" tanto quanto un ambiente più generalmente applicabile.
Occasionalmente il linguaggio / piattaforma / qualunque cosa di nicchia fornisce sfide che ti costringono a imparare a pensare MOLTO fuori dagli schemi, e quell'abilità potrebbe effettivamente renderti più adatto a una data posizione rispetto a qualcuno che ha appena percorso il percorso fatto da altri. Ho scritto programmi Java per la piattaforma AS / 400 (dove Java è un linguaggio di nicchia) ed era molto raro che i problemi che vedevo avessero una soluzione googlabile.
maple_shaft
2013-01-08 19:57:17 UTC
view on stackexchange narkive permalink

Esistono due tipi di sviluppatori software:

  1. Specialisti Sviluppatori che hanno una conoscenza approfondita e completa di una o più tecnologie, linguaggi o framework. I datori di lavoro che cercano specialisti in una determinata area stanno cercando di pagare un po 'di più se l'abilità o la conoscenza è insolita. Vogliono garantire la qualità e che il lavoro sia svolto nel miglior modo possibile. Lo specialista può incontrare difficoltà nel trovare un lavoro stabile di tanto in tanto.

  2. Generalista Gli sviluppatori tendono ad essere dilettanti forti e affidabili praticamente in tutto. Dato abbastanza tempo possono sempre trovare una soluzione accettabile. Imparano in piedi e si aggiornano rapidamente in situazioni non familiari. Possono essere ottimi consulenti poiché sono adattabili e diventano modestamente produttivi molto rapidamente. Ai datori di lavoro piacciono perché sono più comuni, più economici e perché il datore di lavoro potrebbe non avere una decisione tecnologica ferma per i loro progetti.

Ovviamente stai cercando un tipo Generalista. Ecco alcuni modi per attirare uno sviluppatore di software di tipo generalista di alta qualità:

  1. Valuta le conoscenze minori su un'ampia varietà di tecnologie e framework.

  2. Partecipa a conversazioni durante il colloquio in cui parli solo di progetti software. Se sono disinteressati o disinteressati nella progettazione o nelle conversazioni generali sullo sviluppo del software, potrebbero non essere un buon generalista.

  3. Fatti un'idea della serie di esperienze che lo sviluppatore ha avuto carriera. Più sono e meglio è.

  4. Giudica la loro etica del lavoro. Un buon generalista lavorerà di più quando si trova in una situazione sconosciuta.

Come puoi attrarre un buon generalista:

  1. Offri loro l'opportunità di crescere e apprendere una vasta gamma di competenze

  2. Possibilmente dare loro ruoli di leadership che possono portare bene su un curriculum

  3. Offrire un po 'più di denaro non può far male.

cnst
2013-01-12 13:39:20 UTC
view on stackexchange narkive permalink

Considera la possibilità di aprire il tuo linguaggio commerciale proprietario.

Potrebbe volerci molto tempo per farlo bene e rivelare così tante routine di libreria da rendere i costrutti del linguaggio utile per altre persone e aziende, ma senza rivelare informazioni veramente proprietarie che stimolano la tua azienda.

Inoltre, il processo di open-source del linguaggio lo renderà molto probabilmente più solido per la tua applicazione e il I miglioramenti inevitabili durante il processo di open-sourcing aumenteranno invariabilmente l'attrattiva delle tue posizioni e la produttività immediata di eventuali futuri nuovi assunti, ridurranno la loro curva di apprendimento e aumenteranno la probabilità che le loro abilità sul lavoro siano commerciabili e trasferibili.

Conosco personalmente uno studio di web design russo che ha sviluppato un linguaggio CGI chiamato Parser, che con la versione 2 hanno deciso di rendere disponibile al pubblico in generale come un interprete solo binario (con documentazione completa del linguaggio stesso), ma poi con la versione 3 hanno deciso di diventare completamente open source, e il linguaggio è abbastanza popolare in Russia per lo scripting di siti web (o almeno era molto popolare un paio di anni fa all'invasione di Ruby e Python, con molte aziende esterne che richiedono la conoscenza di questo linguaggio).

Allo stesso modo, i fondatori di GitHub hanno un eccellente articolo su quali parti esatte di un sistema proprietario dovrebbero essere aperte di origine; ottima pubblicità e attrarre e trattenere i talenti sono solo alcuni dei motivi che citano per rendere open-source molti costrutti generici e biblioteche e strumenti generici, pur mantenendo come proprietarie le app di business primarie uniche e di grande portata.

Nella mia esperienza personale con sistemi proprietari e open source, il codice open source tende ad essere di qualità molto superiore rispetto al codice proprietario mantenuto da un team solo per uso interno. Rendendo open source la tua lingua correttamente, molto probabilmente migliorerai in modo significativo la tua base di codice esistente a dir poco.

user8365
2013-01-08 19:49:15 UTC
view on stackexchange narkive permalink

Compensa questo con altri vantaggi dell'azienda / posizione:

  1. orari flessibili
  2. ambiente informale
  3. massimizza il tempo speso per la programmazione e non in riunioni e altri distrattori
  4. avere voce nel processo decisionale

A vantaggio della tua azienda e della crescita del tuo personale, dovresti essere sinceramente aperto all'uso di altre tecnologie se è appropriato. Stai usando la tua lingua, quindi dovresti essere in grado di farlo funzionare.

IDrinkandIKnowThings
2013-01-08 23:12:12 UTC
view on stackexchange narkive permalink
  1. Trova alcuni sviluppatori dilettanti che vogliono diventare professionisti. Soprattutto le persone che non hanno una laurea o alcuna esperienza. Stai cercando persone che non avranno preconcetti sui linguaggi di programmazione, quindi è più probabile che qualcuno a questo livello di abilità si entusiasmi nell'apprendere la tua lingua poiché dovrebbe imparare una nuova lingua in qualsiasi modo. Ciò richiederà che qualcuno si prenda il tempo di fare da mentore e insegnare loro, ma questo rafforza anche la lealtà se fatto correttamente.

  2. Assicurati che il tuo compenso per questa posizione sia superiore alle aspettative. L'ultima cosa che vuoi è che uno sviluppatore si formi e cresca è che venga attirato via da più soldi. Sii generoso fin dall'inizio. Stai chiedendo loro di dedicare la loro carriera a un'abilità che non fornirà molto, se non alcun vantaggio, se dovessero andarsene. Quindi impegnati a provvedere a loro e alle loro famiglie sin dall'inizio.

  3. Fornire un ambiente di lavoro stabile. Questo non significa solo evitare cicli di cassa integrazione, ma una continuità di gestione e potenziale di crescita all'interno dell'azienda. Non creare un atteggiamento da tritacarne nei confronti delle nuove reclute. Trattali tutti come membri della famiglia. Fai di tutto per farli sentire preziosi e importanti.

"1" suona come una ricetta per il disastro ...
È un disastro per l'azienda, perché se stai cercando di addestrare qualcuno in una nuova lingua, dovresti cercare qualcuno che abbia già diverse lingue alle spalle; comprenderanno già i concetti necessari, è solo questione di imparare la nuova sintassi per loro. Ed è un disastro per il povero sviluppatore dilettante, perché sarà estremamente difficile per loro trovare lavoro altrove in futuro: * "Sembra che la tua unica esperienza nel mondo reale si stia sviluppando con il linguaggio oscuro Robblefuzz? No grazie, noi stai cercando qualcuno che conosca il C ++. "*
C'è una certa grande azienda nel Midwest che ama reclutare fin dal college per un linguaggio estremamente oscuro. Lo stipendio iniziale è alto per un neolaureato, ma c'è poco margine di manovra e molti sviluppatori finiscono per sentirsi "intrappolati" perché ci sono poche altre applicazioni della loro conoscenza del dominio.
CincinnatiProgrammer
2013-01-08 19:59:42 UTC
view on stackexchange narkive permalink

Penso che la risposta migliore sarebbe NON avere un linguaggio proprietario. Quale vantaggio puoi davvero ottenere dallo scrivere il tuo? Le persone in Microsoft che hanno sviluppato C #, ad esempio, probabilmente sapevano molto di più sull'argomento di quanto i tuoi dipendenti sapessero e sicuramente sapevano di più sul sistema operativo su cui gira perché la loro azienda lo ha progettato. Oltre al fatto che la lingua ha probabilmente molti problemi rispetto a qualsiasi lingua testata e provata oggi disponibile, renderà molto più difficile assumere nuovi dipendenti in futuro dato che ognuno di loro avrà la curva di apprendimento iniziale di un nuova lingua.

Se vuoi davvero restare fedele alla tua lingua, sottolineerei tutti gli altri vantaggi della posizione per cercare di minimizzare lo svantaggio che il candidato avrebbe dall'apprendimento della tua lingua speciale. Mi sento come se avresti bisogno di dare di più per qualcuno che lavori a progetti con la tua lingua, o potresti semplicemente rimanere bloccato con persone alla disperata ricerca di un lavoro che lo prenderanno perché non hanno nessun altro posto dove andare. Spendere la tua carriera in progetti basati su una tecnologia che nessun altro utilizzerà mai rende difficile convincere i futuri datori di lavoro che hai un'esperienza utile.

+1 L'ho fatto (ho lavorato in una piccola azienda con un linguaggio proprietario) ed è stato l'unico motivo per cui me ne sono andato: è difficile immaginare cosa stia facendo la tua lingua e rende quasi impossibile ottenere e mantenere competenze tecniche trasferibili dipendenti.
@Michael Sono sempre stupito che qualsiasi azienda pensi che sia una buona idea scrivere la propria lingua. Qual è stato il motivo per farlo nella tua azienda?
un medico che pensava di conoscere meglio ...
Penso che tu sia troppo sprezzante nei confronti dei linguaggi proprietari. Non posso dire nulla su quello a cui si riferisce l'OP, ma [linguaggi specifici del dominio] (http://en.wikipedia.org/wiki/Domain-specific_language) in generale possono certamente essere vantaggiosi perché sono progettati per essere più adatto al dominio di una determinata attività.
Giusto punto, questo particolare linguaggio è stato utilizzato per scrivere app desktop piuttosto semplici, quindi avrebbe potuto essere facilmente realizzato in quasi tutti i linguaggi tradizionali (era costruito su c ++ quindi anche farlo sarebbe stato utile!)
"un MD" ahi. Un'altra enorme bandiera rossa! ;)
-1 (metaforicamente, dato che mi manca la reputazione) per aver dato il consiglio giusto al momento sbagliato. Questo mi sembra come se l'OP avesse detto "Dato che ho avuto questo incidente automobilistico, cosa dovrei fare?" e la risposta è "Non essere coinvolto in un incidente d'auto". È un buon consiglio, ma probabilmente non è possibile per lui implementarlo. (E scrivere la tua lingua è * decisamente * come essere in un incidente d'auto.)
@BoofusMcGoofus - Vero, ma se l'azienda riconosce questo come un problema, potrebbe iniziare a pianificare la transizione a una lingua tradizionale.
Non sono sicuro del motivo per cui ricevo così tanti voti negativi. Sono sicuro che nel 99% dei casi sarebbe un progetto suicida scrivere la propria lingua invece di utilizzare linguaggi testati e comprovati. Certo, alcune persone lo fanno come [Joel] (http://www.joelonsoftware.com/items/2006/09/01b.html), ma molti [Non sono d'accordo con la sua scelta] (http: // www. codinghorror.com/blog/2006/09/has-joel-spolsky-jumped-the-shark.html). Gli svantaggi sono semplicemente molto maggiori dei vantaggi.
Voglio dire, onestamente, vuoi dedicare il tempo necessario a scrivere una lingua, che non avrà il supporto della comunità, essere di qualità inferiore rispetto alle lingue che il PHD scrive per noi, il che costringe ogni nuovo dipendente a impararlo, il che riduce la tua capacità di assumere nuovi dipendenti, per quale motivo? Un _potenziale_ piccolo miglioramento delle prestazioni che è irrilevante con l'hardware economico di oggi?
@PaulBrown: Come ha detto Boofus, la tua risposta * non si adatta alla situazione *. È troppo tardi per dire "Non usare la tua lingua". Non posso parlare per gli altri, ma è per questo che ho svalutato questa risposta.
+1 @PeterOlson, un DSL se usato correttamente è una cosa di bellezza. Vorrei anche considerare che ci sono probabilmente attività di supporto che utilizzano lingue / strumenti di uso generale per gestire ciò che il DSL non gestisce.
Un medico ... non stai usando MUMPS, vero?
È abbastanza normale avere linguaggi proprietari quando si ha a che fare con hardware specializzato.
@PaulBrown Ribadendo ciò che altri hanno già detto: L'OP non ha chiesto dei pro e dei contro dei linguaggi proprietari, è già lì ... I voti negativi non riflettono un disaccordo sul merito di questa decisione, è semplicemente fuori questione.
Jeremy1026
2013-01-08 19:15:07 UTC
view on stackexchange narkive permalink

Penso che dovrai pubblicizzarlo come una posizione di sviluppatore e trovare qualcuno che non si identifichi come uno sviluppatore <INSERT LANGUAGE HERE> , ma piuttosto qualcuno che è uno sviluppatore .

Un bravo sviluppatore cercherà di imparare qualcosa di nuovo per espandere i propri orizzonti e tu avrai una nuova cosa da imparare. Dovrebbe essere una corrispondenza perfetta.

Un buon sviluppatore in genere non accetterà di lavorare su un "linguaggio creato in casa" - mancanza di documentazione, strumenti, incapacità di trovare aiuto su Internet o porre domande online, e con ogni probabilità fa schifo poiché creare un buon linguaggio di programmazione richiede uno sforzo enorme .. Metterei anche in discussione il processo che ha portato l'azienda a creare un proprio linguaggio piuttosto che uno di quelli esistenti, poiché si tratta di un'enorme bandiera rossa
@AndreasBonini Non sono d'accordo sul fatto che un bravo sviluppatore scapperà urlando perché non può ottenere aiuto su Internet. Senza sapere esattamente quale sia la lingua, la sua età, la sua documentazione, la conoscenza del livello senior, è del tutto possibile che Google non sia il miglior amico degli sviluppatori.
@Jeremy1026 un buon sviluppatore scapperà perché sarà un enorme problema per% @ # effettivamente * sviluppare * software invece di combattere le cose menzionate da Andreas
I buoni sviluppatori sono alla ricerca di qualcosa di nuovo per espandere i propri orizzonti, certo. Ma perché dovrebbero voler imparare la tua lingua proprietaria invece di una delle tante tecnologie interessanti e ampiamente applicabili che potrebbero invece imparare? Rispondi a questa domanda e potresti essere in grado di reclutarli. Se non lo fai, avrai problemi.
@AndreasBonini Se la documentazione fa schifo, allora c'è una posizione per qualcuno come un Technical Writer o un Designer per venire a colmare le lacune. Potrebbe non essere buono come convertire in una nuova lingua, ma eliminerà il problema della "mancanza di supporto"!
@Rachel: Questo presuppone che il linguaggio sia stato creato da una grande azienda con un budget enorme, che è il caso 1 su un milione in cui è in qualche modo accettabile. Nell'altro 99% dei casi i nuovi linguaggi vengono creati da piccole aziende da un programmatore ingenuo che non conosce meglio.
@Jeremy1026, ci sono poche cose nella vita che mi spaventano come sviluppatore che cercare un'eccezione su Google e ottenere 5 (cinque) risultati. Questo mi è successo una volta e sì, era su una piattaforma proprietaria
Michael Shaw
2013-01-14 01:16:30 UTC
view on stackexchange narkive permalink

Puoi:

Svolgere il compito della tecnologia: lavorerai con un database NoSQL? su un prodotto cloud? vasto lavoro http REST? ciclo di vita completo? membri del team di mentoring, certificazione scrum?

Fai il lavoro sul settore industriale: diventerai un esperto in questo settore? le conoscenze acquisite su come questo settore sarà trasferibile? hai molti concorrenti, clienti e fornitori? (sì, rischioso, lo so ..)

Fai il lavoro per l'ambiente: lavoro flessibile, ambiente adatto alle famiglie, Starbucks consegnato alla tua scrivania alle 10:00 ogni giorno

Fai il lavoro riguardo al posizione: qui c'è un'ottima posizione per lavorare, comoda, parcheggio fornito, gran parte del paese in cui trasferirsi ...

Fai il lavoro per il risarcimento: ti pagheremo di più, paghiamo di più nella tua pensione, diamo grandi bonus, opzioni di condivisione, serate aziendali mensili ...

Ogni lavoro deve proporsi a buoni candidati, utilizzando una combinazione di quanto sopra. Se vale la pena avere il candidato, allora avrà diverse offerte di lavoro e dovrai rendere la tua offerta più attraente rispetto alle altre offerte. Ricorda solo che la maggior parte dei programmatori risponderà al denaro, ma risponderà meglio ad altri incentivi .

dr__red
2013-01-09 22:52:24 UTC
view on stackexchange narkive permalink

Potresti dire loro che:

  • le competenze nelle lingue tradizionali sono mercificate oggigiorno. Cioè per ogni sviluppatore Java near-shore ci sono 3 * 10 ^ 6 sviluppatori java in attesa in località a basso costo.
  • quantificare il valore del campo di business applicato. Cioè l'acquisizione di competenze analitiche in determinate aree di business applicate può aprire l'opportunità individuale di crescita oltre il semplice software codder
  • se il marchio aziendale è noto, provare a quantificare il suo valore insieme a prospettive di carriera a lungo termine. Cioè lui / lei può ottenere un aumento dell'enumerazione saltando tra le aziende Java. Ma dove sarà dopo diciamo 8 anni di esperienza al tuo posto
kolossus
2013-01-12 10:18:10 UTC
view on stackexchange narkive permalink

Rispondo come uno che di recente ha preso una posizione in una gigantesca azienda che mi ha offerto la stessa scelta. Sono uno sviluppatore e un integratore aziendale piuttosto esperto nello spazio JEE e sono stato intervistato in base alle mie competenze ed esperienza, diavolo la posizione è stata pubblicizzata come ruolo di sviluppatore aziendale. Poi è arrivata l'intervista

  1. Non mentire sulla natura dell'opportunità. Pubblicizza il ruolo così com'è. L'annuncio di lavoro era per uno sviluppatore JEE senior con un forte background finanziario. Poi è arrivata l'intervista e si è scoperto che quello che volevano veramente era riqualificarmi nella piattaforma proprietaria e usarmi esclusivamente per quello. Ho cercato opportunità di lavoro con quella lingua e ne ho trovate esattamente 6. Su 3 principali siti di lavoro. Non travisare la posizione. Ho rifiutato l'offerta la prima volta e ho fornito i motivi sopra indicati.

  2. Assicurati di avere una piattaforma accattivante e versatile. Uno dei principali svantaggi della piattaforma su cui sono stato invitato è stato il suo scarso supporto per xml, tra le altre cose. Voglio dire, che tipo di linguaggio non ti consente di manipolare xml? Lavora sul tuo prodotto, rendilo solido e offri veramente valore, non concentrarti solo sui tuoi sforzi per bloccare i tuoi clienti nella tua piattaforma (che è più o meno ciò che questi ragazzi qui hanno finito per fare).

  3. Sii molto chiaro che l'ambiente di lavoro sarà equilibrato. Non verranno incasellati nella piattaforma proprietaria. È stato solo su questa base che alla fine ho accettato il lavoro e il mio manager è stato fedele alle sue parole. Sono principalmente uno sviluppatore Java e mi diletto nella piattaforma proprietaria

Personalmente sarei più disposto a scegliere più progetti nella piattaforma proprietaria in cui mi trovo in questo momento se ha visto una sorta di proposta di valore o utilità del linguaggio. Quello che hanno fatto è provare a duplicare (scarsamente) un linguaggio di scripting ben noto e popolare e l'unico valore che viene fornito è bloccare il mio datore di lavoro nella sua piattaforma senza speranza di fuga

scaaahu
2013-02-02 16:17:45 UTC
view on stackexchange narkive permalink

Ho letto la domanda, ma non ho letto tutte le risposte.

Stavo cercando di indovinare la lingua di cui parlava OP, finora nessuno l'ha detta (ho cercato di trovarla parola su questa pagina)

Credo di sapere cosa sia perché mi capita di essere uno che usa quella lingua (ora sono in pensione)

Lo stipendio alto non è la soluzione. Il candidato farà una domanda, cosa succede se il progetto finisce in 5 anni? Il mio curriculum avrà un'esperienza di 5 anni che dovrei spiegare al mio futuro datore di lavoro tra 5 anni.

Credo che la soluzione sia spiegare al candidato perché questa lingua è buona, perché usi quella lingua . Quindi ottieni le persone che vogliono davvero farlo. Questi sono quelli che vuoi assumere.

Se la lingua è quella che ho usato prima, hai molti modi per convincerli a usarla. È ancora in uso oggigiorno. Google per questo.

Ho deliberatamente evitato di nominare sia la lingua che il mio datore di lavoro mentre sto postando unilateralmente, piuttosto che con il loro permesso, supporto e guida editoriale ...
@Xav Capisco. Ecco perché non ho esplicitato esplicitamente quella lingua. Penso che le altre risposte siano sbagliate se la mia ipotesi era giusta. In bocca al lupo!
Itsme2003
2019-03-17 21:36:21 UTC
view on stackexchange narkive permalink

Ci sono molte buone risposte qui, quindi non le ribadirò nella mia risposta. Invece, ho notato un'area che non ritenevo fosse adeguatamente affrontata dalle altre risposte qui.

Anche se non hai fornito un esempio della lingua, la mia esperienza con le lingue specifiche del dominio interno è quella sono più simili ai linguaggi procedurali invece che ai linguaggi orientati agli oggetti. Spesso, quando supportano funzionalità che sono un concetto orientato agli oggetti, sono ancora implementate in modo procedurale. Questo è comune, ma ovviamente il tuo DSL potrebbe essere un'eccezione.

Supponendo che il tuo DSL sia più simile a un linguaggio procedurale, penso che dovresti rivolgerti a sviluppatori che hanno principalmente un background di scripting. Ovviamente la maggior parte dei principali linguaggi di scripting ha molti costrutti orientati agli oggetti implementati nel loro linguaggio e molti sviluppatori il cui ruolo principale è lo scripting utilizzano questi costrutti orientati agli oggetti. La mia convinzione è che la maggior parte degli script nel mondo reale assomigli molto di più allo sviluppo del linguaggio procedurale invece che allo sviluppo orientato agli oggetti.

Suggerisco di scegliere come target sviluppatori con un background PERL e altri linguaggi di scripting precedenti come JCL mainframe, File batch DOS / Windows, ecc. Penso che in generale uno sviluppatore che esegue scripting a tempo pieno potrebbe essere meno interessato alla decomposizione delle abilità rispetto ad altri sviluppatori. Ovviamente ci saranno molti sviluppatori di script che si occupano della decomposizione delle abilità e che utilizzano le tecniche orientate agli oggetti il ​​più possibile, quindi il tuo processo di selezione dovrebbe probabilmente funzionare per eliminare quelle persone dal momento che potrebbero non essere un buon candidato come il sviluppatori che sto consigliando.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...