Sep 29

Depuis quelques semaines je me suis intéressé a Google App Engine. Cela m’a permis de “rafraichir” mes connaissances Python, de regarder de plus près l’offre “Cloud” de Google, et aussi les problématiques de déploiement associées.

J’ai dans un premier temps utilisé l’intégration Django avec GAE. Première constatation: la mise en place de l’infrastructure —pourvu que l’on prenne bien les bonnes versions des composants — est vraiment simple, rapide et on crée son application “hello world” très rapidement.

En revanche, dès que l’on doit creuser un peu dans les fonctionnalités, la documentation n’est plus au niveau. Surtout que Django est quelque peu brutalisé/modifié car on utilise BigTable. Autre inconvénient: il faut quand même tout développer soit même car le framework WebApp fournit dans GAE est relativement “fin”. On est donc loin d’avoir une stack applicative bien étoffé.

Je suis donc passé à GAE patch…et là on a vraiment à notre disposition un framework suffisamment développé pour supporter du développement rapide d’applications. On a effectivement un pseudo-container d’applications avec:

  • service d’authentification,
  • application d’administration,
  • service de cache,
  • service de mail (et XMPP)
  • MVC (Django et ragendj)
J’ai donc utilisé Google AppEngine Patch sur une application pour gérer mon (mes) CV, et j’en suis très satisfait. Je vais explorer d’autres aspects de cette environnement dans les jours qui viennent (framework de test, authentication django, l18n…etc) et ferais quelques billets sur chaque sujets.
Sep 14

Je suis d’accord avec Udi Dahan (Don’t Delete - Just Don’t) et Ayende sur le fait de ne pas détruire d’entité.
Dans les Enterprise Application, les entités metier on quasiment toutes un cycle de vie. Et souvent, la dernière étape de ce cycle n’est pas la suppression mais la désactivation.
Ceci n’est cependant pas vrai pour toutes les entitiés. Je pense entre autre a celles qui n’on d’existence que dans un context donné, comme une référence catalogue dans un shopping cart. Il n’y a en effet pas de workflow (ou cycle de vie): l’utilisateur ajoute ou enlève des éléments de sont shopping cart tant que celui-ci n’a pas été validé. C’est en effet le shopping cart qui a un cycle de vie.
Cela veut donc dire que le Delete (le “D” de CRUD) doit etre implémenté et accessible a l’utilisateur, mais que pour les entités a cycle de vie, il faut remplacé la destruction par un status.

Sep 10

The Candle experienceJe suis tombé sur ce billet du Dr Goulu sur la motivation dans le monde du travail. Il s’appuie sur la présentation faite par Daniel Pink sur la science de la motivation.

Ayant travaillé dans différents environnements (de la startup à la très grande entreprise), j’ai pu clairement constater que la motivation était clé. Je suis persuadé qu’on peut facilement doublée la productivité quand une équipe est très motivée. On peut aussi la diviser par 10 si elle est démotivée. Et surtout, dans un domaine comme le développement logiciel où les solutions ne sont jamais idéales et demandes beaucoup de créativité, une équipe motivée trouvera des solutions souvent bien meilleur.

Daniel Pink plaide que la science a démontré bien des fois que les “bonus” fonctionnent bien pour des tâches plutôt mécaniques ou dont la solution est simple a trouver. Dans les autres cas, les “bonus” dégradent les performances. Cela ne veut pas dire qu’il faut supprimer les “bonus” en développement logiciel (qui demande créativité sur des problèmes complexes et toujours différents), mais que cela ne va certainement pas augmenter la productivité et la motivation. En revanche cela permet d’éviter que vos têtes pensantes n’aillent penser dans une autre entreprise.

La deuxième partie de la vidéo parle de l’autonomie et des expériences prouvant que l’autonomie est source de créativité. Ils parle des 20% de temps que Google accorde a ses employé pour faire ce qu’ils veulent et que au final, la moitié des projets les plus connu de Google…viennent de ces 20%.

J’ai pu constater que la productivité est clairement lié a la motivation, et que l’autonomie est une grande source de motivation. Il passe un peu vite sur les “objectifs” qui a mon sens sont aussi très important. Car même si une entreprise laisse ses employés faire ce qu’ils veulent 20% de leur temps, il est important que les 80 autres pourcents permettent d’atteindre des objectif. Je trouve que les méthodes agiles de développement logiciel sont un excellent moyen d’y arrivé par la responsabilisation des membres de l’équipe et non par un manager qui décide tout, distribue les tâches et centralise la communication.

Bref, une vidéo a voir absolument (anglais, sous-titres français).

Sep 04

Google AppEngineGoogle vient d’ajouté le support de XMPP dans AppEngine. Le Web 2.0 (certain versés dans le marketing diraient Web 3.0) fait une part belle a l’interaction, et le chat en ait bien sur un des pillier. Des APIs wave seront certainement ajoutées bientot. En effet, wave est basé sur XMPP.

Sep 01

…et sortie pour les autres. Suite a un nouveau plan de sauvegarde de l’emploie (PSE) chez HP, je vais certainement devoir repasser par la case recherche d’emploie. Première tâche: mise à jour de mon CV. Ensuite lancement marketing de…mon profil professionnel. C’est donc une excellente occasion pour redémarrer ce blog que j’avais quelque peu délaissé.