vendredi, juillet 28

Professionnel indépendant : grand questionnaire de l'été !

Je réponds à ce questionnaire qui m'a été transmis par l'infatigable Jean-Marie (Adscriptor), pour qui je suis prêt à faire la première entorse à la ligne éditoriale de ce blog. Pour me donner bonne conscience, je vais quand même essayer de glisser quelques allusions (subtiles ?) au web 2.0 :

#1 - Quand et quelle est votre prochaine prestation facturée ?

Aujourd'hui, pour un ERP web riche en cours de développement.

#2 - Pour quelle raison reprendriez-vous une activité salariée classique ? Qu'est-ce qui vous manquerait le plus ?

- Si l'activité en question me permettait de me sentir plus utile.
- Les playlists de mon bureau.

#3 - Que fait un professionnel autonome l'été alors que ses clients sont à la plage ?

Il bosse sans craindre de voir le téléphone sonner.

#4 - Décrivez votre principal outil de travail sans citer son nom.

Il est l'alpha et l'oméga de nos tentatives de socialisation webisante. Ses 0 et ses 1 s'enchaînent en mélopées harmonieuses et recrée sans relâche les reflets de nos mondes intérieurs... Loué soit-il ! Embrassons-nous !

#5 - Finalement, tout serait parfait si...

... la perfection était de ce monde, forcément.

mardi, juillet 18

Retour d'expérience sur quelques librairies Ajax

Ce que j'entends dans cet article par librairies Ajax sont les nombreux ensembles de classes Javascript destinées à faciliter le développement d'applications web riches.

Elles comprennent souvent :
- un gestionnaire d'événements
- un système de fenêtres web 2.0 (c'est à dire faites à partir de div)
- des petits effets graphiques sympas
- un gestionnaire de requêtes Ajax
- des widgets évolués prêts à l'emploi (calendrier, treeviews, sliders...)

Il serait présomptueux de faire de faire une analyse détaillée dans ce billet à partir de ma simple expérience, néanmoins mon ressenti peut être utile à certains d'entre vous ... notamment à l'heure du choix d'une librairie Ajax !

Je déconseillerai d'abord YahooUI : pas complet, mais doté d'un noyau de fonctions indispensables assez lourd, il ne possède rien qui puisse justifier son choix.

DojoToolKit semble intéressante, je n'ai pas poussé très loin mes expérience sur cette librairie, mais elle a priori tout ce qu'il faut pour faire une base de travail très correcte : une petite communauté, des widgets sympas... bon, je ne peux cependant pas la conseiller parce qu'entre une utilisation de test et une application qui doit tourner en production, il y a un monde (donc si qq veut commenter sur le sujet, qu'il n'hésite pas).

DHTML Goodies est une petite suite de contrôles avec de temps en temps des scripts PHP pour faire des fonctions AJAX complètes. Pratique à l'occasion, mais à ne pas utiliser sur des points critiques : ce sont là des scripts intéressants, indépendants les uns des autres (pas de noyau à charger), mais pas faits pour une application professionnelle (on rencontre souvent de petits problèmes à la longue).

Prototype est pour moi la Rolls des librairies Ajax. Ecrite à la base pour RubyOnRails, soutenue par une grosse communauté d'utilisateurs, très bien structurée, permettant d'utiliser de nombreuses librairies pouvant se greffer sur elle (OpenRico, Scriptaculous pour les plus célèbres), elle offre toutes les garanties pour un développement Ajax d'envergure.

A vous maintenant d'enrichir ce point de vue personnel de vos propres expériences...

jeudi, juillet 13

L'usine logicielle web 2.0

Le web 2.0 a apporté son lot d'opportunités et d'innovations dans la productivité des développements web et il est probablement temps de capitaliser sur ces nouveautés pour les industrialiser au sein d'une usine logicielle (software factory).

L'usine logicielle est sensée couvrir toutes les étapes du développement d'un logiciel de l'analyse du besoin à la mise en production. Toutes ces étapes doivent bien entendu être accomplies de manière cyclique : l'ensemble des développements est découpé en plusieurs "cycles", chacun de ceux-ci accomplissant le parcours "analyse / conception / développement / test / intégration" en deux semaines (c'est la norme).

Du côté des outils, il nous faut en général (dans le désordre, je l'écris comme ça me vient) :
- un système de supervision du projet et de son avancement (ex : Cruisecontrol)
- une plate-forme de communication avec le client (même si le client fait partie de la même entreprise que l'équipe de développement) (ex : Basecamp)
- un système de bug-reporting (ex : Bugzilla)
- un système de versionning (ex : SourceSafe, Subversion, CVS)
- un framework de tests (ex : JUnit, SimpleTest, Selenium)
- un système de contrôle qualité du code (ex : FxCop)
- un outil de modélisation (qui, si possible, génère des classes à partir d'un diagramme) (ex : Visio, Poseidon, Rational Rose)
- un outil/framework facilitant le mapping objet-relationnel (c'est à dire faire le lien entre la base de données et les objets métier) (ex : Hibernate, RubyOnRails)
- des outils pour automatiser différents processus (copie de fichier, build, exécutions de tests...) (ex : Ant, Phing)
- un environnement de développement (ex : Eclipse, Visual Studio)

Les apports de l'ère web 2.0 dans ces domaines sont donc d'après moi :
1- les méthodes de RubyOnRails : c'est à dire patterns Active Record + MVC + pleins de petits trucs qui font le mapping objet relationnel n'est plus un problème (et l'architecture d'une application non plus).
2- la simplicité des tests Selenium qui permet de tester correctement une application web 2.0 pleine de javascript et d'AJAX
3- les bonnes idées de BaseCamp (à noter, son équivalent libre : ActiveCollab) : se focaliser sur la communication car c'est l'essentiel dans un projet.
4- la terrible efficacité du dernier Visual Studio.

Pour ce qui est du reste, pas vraiment de boulversement d'après moi :
- les outils calibrés pour l'industrie viennent du monde Java
- les outils permettant la plus grande productivité viennent de Microsoft
- les idées nouvelles viennent d'ailleurs (et souvent du libre)
- la vraie bonne usine logicielle se fait encore à partir de services/logiciels très divers et ne s'achète pas en pack "tout en un" (façon Visual Studio Team System).

Et pour vous, la killer app de l'usine logicielle web 2.0, c'est quoi ?