Come scegliere un ingegnere del software applicativo web? [chiuso]

10

Come dovrei scegliere un ingegnere del software applicativo web?

La posizione (permanente) è quella di riscrivere il client di un'applicazione server client desktop esistente. Le pagine non verranno generate dinamicamente su un server, ma il server esporrà un'API completa in qualsiasi modo sia necessario, ad esempio le chiamate JSON RPC, e può rendere disponibili i file statici. Sostituirà un client che le persone devono scaricare e installare, quindi è necessario un browser decente con impostazioni ragionevoli (ad esempio JavaScript abilitato). Quasi tutti i casi d'uso sono per un desktop P.C. Non sarà accessibile ai motori di ricerca (è un'applicazione aziendale).

Possiamo arrivare al punto di scrivere tutto in un'unica pagina, ma non è necessario. Sarebbe praticamente tutto scritto dall'ingegnere del software dell'applicazione Web in questione. Le esatte librerie open source da utilizzare dipendono anche dall'ingegnere, entro limiti ragionevoli.

Sono specificamente alla ricerca di consigli su quali qualifiche cercare / verificare in un colloquio, dal momento che scegliere un ingegnere software per applicazioni Web in generale è un argomento troppo ampio.

Modifica - La posizione sarebbe puramente di programmazione JavaScript nel browser (ed essere responsabile per HTML e CSS) - altri sviluppatori svilupperebbero il server ma questa posizione potrebbe richiedere facciate sull'API. Non ci sono Ruby, ASP, JSP, ecc. Perché il livello del server web è molto sottile e traduce semplicemente le chiamate all'API del livello aziendale e le restituisce come JSON (o qualsiasi altra cosa, ma JSON sembra più semplice).

    
posta psr 02.09.2011 - 23:48
fonte

2 risposte

2

Come sviluppatore web che lavora principalmente su applicazioni aziendali che trattano sistemi legacy, posso offrire alcuni suggerimenti su cosa mi renda di successo, e spero che possa aiutarti.

Non sono sicuro che tu stia cercando una situazione temporanea / di consulenza per fornirti un'app o un FTE per svilupparlo e mantenerlo a lungo termine, ma questi dovrebbero applicarsi in entrambi i casi, credo.

  • Uso principalmente Ruby. Questo rende la prototipazione rapida molto veloce e facile, e Rails rende semplice il bootstrap di un nuovo progetto. Ora, non so come sia il tuo ambiente, se hai mandati istituzionali su linguaggi, piattaforme, strumenti, ma se puoi assumere uno sviluppatore esperto in un linguaggio / framework moderno e flessibile che faccia scrivere i DSL da trattare le API straniere sono relativamente semplici e veloci, questo è un vantaggio. Fondamentalmente, una qualsiasi delle lingue con la natura Lisp sarà superiore a questo riguardo. Inoltre, assumere qualcuno esperto in una lingua con un buon ecosistema di librerie open source per affrontare le astrazioni comuni è un must.
  • Se riesci a trovare qualcuno abituato a gestire sistemi legacy e ad astrarre le loro idiosincrasie, è raro e dovresti esplorarlo. La maggior parte degli sviluppatori sono abituati a costruire progetti da zero (o essere introdotti per mantenere progetti esistenti) e creare qualcosa di nuovo per interfacciarli con qualcosa di vecchio che prende una certa ... non abilità, di per sé, ma approccio.
  • Quando dici "il server esporrà un'API in qualsiasi modo sia necessario", è piuttosto vago, ma suppongo che ci siano sviluppatori esistenti in grado di implementare l'API sul server? Vorrei chiarire che la posizione implicherà il lavoro con quegli sviluppatori per specificare l'API. Se è possibile fornire un esempio del tipo di interazione richiesto e chiedere al candidato le loro prime riflessioni su come implementarlo, ciò potrebbe essere indicativo. Penso che il fatto che il tuo pensiero iniziale fosse JSON RPC mostra che ti stai appoggiando nella giusta direzione, quindi fai attenzione a chi ha visioni di interazioni XML e XSLT complesse.
  • Se puoi aspettarti un supporto decente per il browser JavaScript, cerca qualcuno esperto con framework JS come Backbone.js, JavaScriptMVC, ecc. In tal caso, puoi fare l'intera app (fondamentalmente) nel browser e magari servirla con il nodo. js o qualcosa del genere ... quindi guarda ai buoni sviluppatori di JS. Se dicono che preferiscono scrivere il loro JS in CoffeeScript, probabilmente sono sviluppatori JS ancora migliori.

Solo alcuni pensieri della mia esperienza nelle trincee, ma se il mio dipartimento stava assumendo un nuovo sviluppatore, questo è quello che vorrei dire loro di cercare.

Vorrei che il mio dipartimento avesse il budget per un altro sviluppatore ...

    
risposta data 03.09.2011 - 00:08
fonte
1

Nota: questa è semplicemente la mia opinione, quindi non gettare il lavandino della cucina contro di me;)

Penso che stai mungendo i nomi di due posizioni chiaramente diverse (che possono essere un po 'confuse).

Software Engineer : un ingegnere. Uno che è strong nel risolvere problemi astratti che non sono necessariamente legati a una piattaforma specifica. Conoscenza approfondita dei modelli di progettazione, degli algoritmi (sia degli algoritmi noti che della progettazione e dell'analisi degli algoritmi), una certa forza nell'algebra lineare e forse qualche calcolo. Quando ho assunto un ingegnere del software in passato, non ero così preoccupato delle loro conoscenze specifiche sul dominio quanto la loro capacità di risolvere problemi complessi.

Sviluppatore di applicazioni Web : qualcuno che conosce i dettagli della creazione di applicazioni Web. Comprende le architetture server vs client e come comunicare efficacemente tra i due. Conosce gli standard W3C, sia quelli completati che quelli WIP. Comprende come funzionano i database e come ottimizzare quando necessario (ottimizzazione delle query, memorizzazione nella cache del database, indicizzazione, ecc.). Comprendi anche diversi meccanismi di memorizzazione nella cache e altri modi per ottimizzare le loro applicazioni. Comprende anche le convenzioni semantiche.

Ci sono probabilmente alcune cose che mi mancano che potrei compilare come penso a loro.

Dalla descrizione di ciò che stai cercando, mi sembra che tu non stia cercando affatto un ingegnere del software; stai cercando uno sviluppatore di applicazioni web.

Quindi, la prima cosa che farei è restringere chi stai cercando e quale competenza ti aspetti da un candidato. Potresti aiutarti un po '.

    
risposta data 03.09.2011 - 02:59
fonte

Leggi altre domande sui tag