lunedì, novembre 5

Agile development & Extreme programming


Ho "qualche" esperienza nello sviluppo del software anche relativamente alla gestione di un gruppo di programmatori e della gestione dei conflitti anche in relazione alle necessità sia del cliente che del committente.
Niente di pauroso, ma le aspettative delle "tre" parti sono sempre diverse, speciali e importanti.

Ho passato diverso tempo a spiegare che la tecnologia "Agile" e l'Extreme programming non sono la soluzione a tutti i problemi, e oggi ho trovato questo. Mi è sembrato utile e interessante, quindi lo riporto.
Sono spiacente per gli eventuali errori di battitura, colpa mia. :)


The Art of Agile Development
James Shore & Shane Warden
O'REILLY - 2008


CHAPTER 1

Why Agile?

Agile development is popular. All the cool kids are doing it: Google, Yahoo, Symantec, Microsoft, and the list goes on. I know of one company that has already changed its name to Agili-something in order to ride the bandwagon. (They called me in to pitch their "agile process" which, upon further inspection, was nothing more than outsurced offshore development, done in a different country than usual.) I fully expect the big consulting companies to start offering Certified Agile Process and Certified Agile Consultant -for astronomical fees, of course- any day now.

Please don't get sucked into that mess.

In 1986 [Harold Brooks] famous predicted that there were no silver bullets: that by 1996, no single technology or management technique would offer a tenfold increase in productivity, reliability, or simplicity. None did.

Agile development isn't a silver bullet, either.

In fact, I don't recommend adopting agile development solely to increase productivity. Its benefits -even the ability to release software more frequently- come from working "differently", not from working "faster". Although anedoctal evidence indicates that agile teams have above-average productivity(1), that shouldn't be your primary motivation. Your team will need time to learn agile development. While they learn -and it will take a quarter or two- they'll go slower, not faster. In addition, emphasizing productivity might encourage your team to take shortcuts and to be less rigorous in their work, which could actually "harm" productivity.

Agile development may be the cool thing to do right now, but that's no reason to use it. When you consider using agile development, only one question matters:
Will agile development help us be more successfull?
When you can answer that question, you'll know whether agile development is right for you.
--------------------------------------------
(1) Various experience reports at the Extreme Programming and Agile conferences.

Link al sito O'REILLY - direttamente al manuale di cui sopra.

domenica, novembre 4

Sviluppare in modo nativo e in C# su Linux

Una delle cose più interesanti/affascinanti del framework .Net è ciò che Microsoft cerca in ogni modo (e accuratamente) di nascondere: il framework .Net è un framework open source.

Ciò posto è possibile usare un linguaggio .Net per sviluppare in sistemi operativi diversi di quelli che ci fornisce mamma MS? La risposta è "ovviamente si".

A me piace C# (lo adoro in realtà) e per VB è pure possibile ma non allo stesso livello.

Ma come si fa a sviluppare software per Linux usando un linguaggio di programmazione Microsoft senza usare emulatori?
Ecco una delle cose che mi è sembrata complicata (oggi) è avere un "ambiente" dove provare. Fino a qualche anno fa, fino a quando esisteva Novell che sponsorizzava il progetto Mono, era facile trovare una virtual machine già pronta. Oggi non c'è.

Allora si segue il giro "standard":andare sul sito di monodevelop, nella pagina download (http://monodevelop.com/Download), scoprire che ci sono delle versioni installabili su determinati sistemi operativi e fare tutto quanto viene indicato... Per verificare infine che non funziona: si installa MonoDevelop e poi premendo sulla finestrella per editare il sorgente, l'ambiente si pianta e si chiude. Miseramente.
Molto Bello.

Io che però non mi arrendo facilmente ho provato di tutto, da aggiornamenti di apt, a speciali configurazioni di yum, a versioni specifiche di linux, quasi sempre senza successo... Fino a quando ieri ci sono riuscito :).
Ecco di seguito i passi che io ho seguito:

1) Ho scaricato VmWare player dal sito:qui

2) Ho scaricato Ubuntu 12.04, virtual machine per VmWare, versione con ambiente grafico e vmware tools già installati:qui

3) Ho dovuto attivare l'utente ROOT per Ubuntu che purtroppo è disabilitato. Perchè ho dovuto farlo? Alcune operazioni di compilazione e debug vanno in eccezione "denied error" e dato che comunque uso un sistema operativo temporaneo e virtuale e mi posso preoccupare poco della sicurezza. (Leggere qui)

4) Ho fatto l'update on line di Ubuntu (463 download! wow, altro che Windows!), usando l'utility standard di sistema.

5) Ho usato uno script che ha scaricato e compilato monodevelop ultima versione sulla macchina virtuale (... Che spettacolo poterlo fare!) trovato su Blog di John Ruiz, vedi quiGRAZIE JOHN!

6) Ho scoperto che qualcosa è imperfetto per XSP e per lo sviluppo web allora ho fatto a mano:
    a) apt-get install mono-xsp
    b) ho usato l'utility di sistema per installare software per scaricare XSP4.

Non riesco a sviluppare in web/XSP4 ma XSP2 mi basta e avanza visto che posso arrivare al .net v3.5

Buon divertimento!