martedì 22 marzo 2016

Quanto costa uno sketch per Arduino?

Ciao e ben ritrovato sul blog "aspettando il bus". 
Oggi vi propongo una riflessione sul prezzo di un bene immateriale: lo sketch !
I programmi (ed in generale il Software) hanno un prezzo ma, in particolare, qual' e' il "giusto prezzo" di uno sketch ?

Sketch vuoto - Fonte Arduino IDE 1.6.8
Sketch vuoto - Fonte Arduino IDE 1.6.8
Quasi ogni giorno ricevo richieste di aiuto e/o di sviluppo di sketch da persone che con Arduino desiderano fare progetti complessi, pur non essendo particolarmente bravi in elettronica o in programmazione.
Vi faccio alcuni esempi:

Ciao Paolo,
ho visto che sei bravo con Arduino UNO e vorrei il tuo aiuto nel realizzare un drone che partendo da un punto geo referenziato arrivi ad un' altro punto geo referenziato, evitando eventuali ostacoli imprevisti come uccelli e altro. Non sono bravo in elettronica e lo sono ancor meno in programmazione. Mi daresti una mano? 
Ciao Andrea

o anora:

Ciao Paolo,
sono uno studente di un istituto tecnico e vorrei presentare alla maturità un progetto semplice: un robot che pulisca casa e che si ricarichi automaticamente. Deve essere in grado di evitare il gatto ed eventuali oggetti imprevisti oltre a "mappare" casa. Inoltre deve costare poco perché ho un budget di 30 Euro. Ho già comprato un motore passo passo e ho fatto qualche prova, ma non ho capito bene come funziona. Mi aiuti?
Ciao Marco

A queste email rispondo dicendo che sono idee bellissime ma non sono così semplici come sembrano, ed è meglio fare dei piccoli passi fornendo alcune indicazioni di massima su come procedere. Il più delle volte la persona ringrazia e saluta,  ma c'è anche chi se la prende a male o prova altre strategie nella speranza di avere il lavoro a costo zero ovvero GRATIS !

Non mi dilungherò sul divertente scambio di email che segue, ma credo sia giusto fare una riflessione su come si stanno sviluppando le dinamiche dei compensi del lavoro. Si, perché si tratta di lavoro e, per definizione, il lavoro è tale se è corrisposta una remunerazione per quello che si è fatto.

Vi faccio qualche esempio per definire un "giusto" prezzo.  
In prima istanza si può pensare a quanto costano le materie prime e moltiplicare l'importo per tre.
Infatti il prezzo di un bene è composto, in grandi linee, da:
  •    una parte per l'acquisto delle materie prime;
  •    una parte per le tasse legate al reddito prodotto;
  •    una parte per il "lavoro" di trasformazione delle materie prime;
  •    spese fisse legate ad affitto di locali, ammortamento delle attrezzature, etc. .
Questa suddivisione si può fare se si fornisce un bene "materiale" con del "lavoro" aggiunto, ad esempio per fare una bella pizza margherita ! Ma se si vuole "comprare" solo uno sketch ?
Qui il problema si complica perché uno sketch "funziona" su un determinato Hardware (HW). Quindi, per svilupparlo senza difetti, bisogna almeno avere "accesso" all' HW. Nel caso precedente occorre il drone completo di GPS e altro.
E queste sono cose che costano !
Poi se si pensa che nelle "prove" si può distruggere il bene oggetto dello sketch !

Inoltre occorre impiegare del "tempo" e delle "conoscenze" per realizzare lo sketch, considerando anche il tempo necessario per "familiarizzare" col drone, evitare danni a persone e cose, etc..

Oppure per quantificare il "giusto prezzo" si possono osservare i prezzi di altre prestazioni, ad esempio la paga oraria per le pulizie domestiche. Nella mia zona si aggira dai 5 ai 9 euro per ora, con un minimo di 2 ore. Credo che sviluppare progetti con Arduino sia un po' più complicato, diciamo che 15 euro l'ora sia una buona prima approssimazione. Però basta andare in una officina autorizzata con l'auto per scoprire che chiedono dai 40 ai 60 euro l'ora per la manodopera : e quindi ?
La questione del prezzo è più complicata di quanto sembri !

Forse è il caso di imparare, piano piano, a fare gli sketch e a proporsi sul mercato come "artigiano di Arduino". Vi ricordo che Arduino è un marchio registrato e quindi non si può fare col suo nome, ma come "artigiano degli sketch" credo di si ! Magari può essere il futuro della vostra vita !

Lo stesso discorso può essere fatto per un quadro o una statua, ma qui è più facile aggiungere un "bonus" per il piacere di possedere un' opera d'arte.

Vorrei continuare ma, finalmente, è arrivato il bus e devo scappare.

Concludendo: consigli gratis per tutti, ma per gli sketch provate (e riprovate) a farli da soli che conviene !
Sarà divertente vederli funzionare e godere della gioia di averli fatti con le proprie mani !

Scappo, ma aspetto i vostri commenti !

Ciao
Paolo :-)









6 commenti:

Paolo Mattiolo ha detto...

Io sviluppo software per lavoro ed il calcolo del prezzo dipende da numerosi fattori. Generalmente uso un foglio excel dove metto un calcolo ore, prezzo orario, rischio e difficoltà. Alla fine esce un prezzo.
Tieni conto che si parla sempre di 30-40 euro all'ora.

Paolo PerCdS ha detto...

Grazie Paolo per la tua testimonianza.

Approfitto della tua cortesia per farti due domande (se ti va):

1) Credi che possa esserci un futuro (lavorativo) per chi decide di studiare e specializzarsi nel "mondo di Arduino" ?
2) Che consigli daresti ad un ragazzo di 16 anni per imparare ?

Grazie e (ovviamente) se altre persone vogliono contribuire sono benvenute.

Ciao
Paolo

Paolo Mattiolo ha detto...

Ciao Paolo,

personalmente ritengo che Arduino, la sua IDE ed il suo linguaggio sia un'ottima base di partenza per imparare il mondo dei microcontrollori e quello che si può fare in questo campo. Lo step successivo per essere appetibili è quello di sviluppare firmware per microcontrolli utilizzando i tool di sviluppo ufficiali di ogni marca in linguaggio C/C++ ufficiale. Con Arduino si possono fare dei progetti molto grandi, ad esempio Ardupilot ma poi bene o male si è costretti ad uscire dal C di arduino per utilizzare dei pattern più ufficiali. Io ci ho provato usando l'ide ufficiale di arduino ma alla fine mi sono incasinato inutilmente. A quel punto tanto vale usare Atmel studio per atmel e MPLAB per i micro microchip.

Ad un ragazzo consiglierei di utilizzare all'inizio Arduino ma studiarei fin da subito la programmazione multitasking, interrupt ecc. Una volta capito l'argomento transiterei come detto prima su ambienti di sviluppo più professionali.

L'appetito viene mangiando e quindi inizierei comunque con Arduino.
Ho visto comunque grossi progetti fatti con Arduino di incredibile complessità.
Io stesso continuo ad usare Arduino per i miei progetti, per l'immediatezza del setup e la velocità con cui si ottengono i risultati

Spero serva ad aiutare.

Paolo PerCdS ha detto...

Grazie Paolo per la tua disponibilità e cortesia.
Aspettiamo il contributo di altri ;-)

Ciao
Paolo

hiperformance71 ha detto...

Ciao e Complimenti per l'articolo nonché per l'originalità del format (solo a fine lettura ho compreso appieno, a scanso di equivoci, il significato del nome del blog!).
Sono d'accordo in pieno con l'analisi del problema, passare dal chiedere (e dare) consigli a voler progetti belli e pronti è tutta un'altra cosa. Purtroppo molto di questo atteggiamento "approfittatore" lo si sta vedendo molto negli ultimi anni, la gente si è fatta l'idea (sbagliata!) che si può avere tutto gratis, ma non hanno compreso che per ottenere dei risultati, ci si deve "sporcare le mani" e fare esperienza da se, altrimenti ogni richiesta diventa una richiesta di lavoro, ma come detto nell'articolo, certi progetti sono costosi da ingegnerizzare e quantificare, ma poi, basterebbe "sparare" un preventivo (anche molto modesto) per farli scappare!

Io non sono un'esperto di Arduino e programmazione C/C++ mi ritengo ancora lontano da quella definizione anche se ammetto (e ne sono orgoglioso) di aver fatto passi da gigante da quando ho iniziato (dic 2012 con arduino ed il c/c++ con un'anno di pausa nel mezzo!) ed è stato tutto merito della filosofia indicata nel tuo post, quando mi è servito un'aiuto ho cercato, se non ho trovato nulla di esaustivo, ho chiesto nel forum di arduino.cc e ho ricevuto sempre ottimi consigli, correzzioni ed indicazione, ma ho sempre fatto il mio corso, ed è per questo che la soddisfazione è maggiore, non vedo merito nella "pappa pronta", avvolte sono andato anche a "reinventare la ruota" e se questo da una parte serve proprio a velocizzare il lavoro di sviluppo, dall'altra va contro lo stimolo di imparare!

PS: Complimenti anche per il blog, anch'io ho un piccolo blog ma della mia prima passione, l'automobile, specialmente per i motori da competizione ad alte prestazioni!

Paolo PerCdS ha detto...

Grazie hiperformance71 per la tua testimonianza, anche io "gioco" con Arduino da tre di anni, e ho lavorato con µC negli anno '80 e, allora, non era una passeggiata come lo è oggi con Arduino.
Ricordo ancora il "sistema di sviluppo" col probe che sostituiva il chip del µC nel circuito e le ore a cercare i bug: Brr ho ancora la pelle d'oca. Non parliamo del tempo perso per la introvabile documentazione: quando scrivevi una lettera alla casa costruttrice del chip aspettavi almeno una settimana o due per una risposta. SOB!

Approfitto del tuo post per una riflessione:
una volta, quando si era invitati da conoscenti per una pizza a casa si finiva, con la scusa di aspettare che il fattorino che consegnasse le pizze, col "dare una occhiata al PC che non andava bene" e, in conclusione, si era pagati a pizze.
Quando, in occasioni successive, si ripresentava la stessa "occasione" io gli proponevo di venire a casa mia e, mentre aspettavamo, di ridipingere la stanza o di "spostare" un tramezzo o altri "lavoretti" simili.
Solo in quel momento si rendevano conto che anche l'informatica è un lavoro, come tanti. Oggi, solo per il fatto di possedere un PC, tutti si sentono in grado di "sistemarlo" e quando ti chiamano disperati non sai nemmeno da dove cominciare, visti i casini che combinano e poi la pizza ... diventa pure fredda !
Ormai molti centri di assistenza, per fare prima, reinstallano il sistema operativo e ... amen.

Il mondo di Arduino, a mio giudizio, segue la stessa linea ma in modo più soft. Il fatto di avere a disposizione i sorgenti dovrebbe indurre le persone a "curiosare" e a "modificare" lo sketch per vedere cosa succede, ma l'impazienza e la scarsa voglia di mettersi in gioco rovinano tutto.

Non c'è gioa più grande di aver fatto qualcosa con le proprie mani, magari reinventando anche la ruota se serve ! DIY docet!


A proposito ...
Drin drin (telefono): Ciao paolo, vieni stasera a casa per una pizza? Sai ho il PC che non si collega più col WiFi, magari ci diamo uno sguardo?
Gia che ci sei, porti anche il necessario per Arduino? Mio figlio ti vuole chiedere una "cosuccia" che non riesce a far fare al drone.
Tu sei bravissimo, vedrai che in 5 minuti risolvi tutto !

Questa è la volta buona che mi metto a dieta !
;-P

Infine, grazie per i commenti via email e vi invito a postarli anche qui.

Ciao e buon lavoro a tutti.
;-)