dimanche 5 janvier 2014

First year of MOOC

Happy new year,

This post will be in English contrary to the previous one because I want to talk about Massive Open Online Course. It was my main occupation during my free time doing as far sa 4 courses in parallel.

My first and main learning plateform was Coursera.

I began with "Functional Programming Principles in Scala" in Sep 18th 2012. A great course to learn functional programming by Martin Odersky, the creator of the Scala language himself, and maybe one of the best course I have done even if it's one of the most difficult, needing a lot of time and motivation.

In programmation, I have also done "Algorithms, Part I" from Princeton. Again a difficult and time consuming course with no certification at the end but the content is great if you want to learn algorithms and java performance tips. I will try to do the 2nd part this year.

"Introduction to data science" was a good introduction to Data Science. I have learned the basic component of Data Science with Map Reduce techniques, Hadoop, the difference with classic SQL data access and storage, a bit of python programming language and SciPy librairie (the famous lib for machine learning in Python) and a good overview of Data Visualisation. Two problems for this course: the instructor is not an engaging orator and the subject would require more depth. The best thing of this course was the discovery of the machine learning competition website called Kaggle. This website is clearly a great place to learn Data Science / Machine Learning and show your level.

"Malicious Software and its Underground Economy" is also only an introduction to a very large and somewhat very technical subject. Even I have only done the quizzes (and avoided the difficult exercices) but I have learned about traditional and mobile malware, the security threats they represent, state-of-the-art analysis and detection techniques, and the underground ecosystem that drives such a profitable but illegal business. The instructor is good and the subject is crazy. However, at the end of the course, don't think you have become an hacker. You understand you're really far from it :)

More in the side of development but also at the frontier of business was "Startup Engineering" from Stanford. As the title says, the goal is to make you create your first web application and associated startup with first funding (with bitcoin crypto-currency). You learn how to choose your market, designing for mobile first and mainly how to code your webapp with html/css/javascript in NodeJS and deploying in the cloud with Heroku. For a developer like me, the certification was pretty easy but I think it's a real challenge for a non-programmer and the course is 12 weeks long. The goal to build your first startup is really present and you can compete with others for the startup who has the most social influence and the most funding. By the way, two french guys won it. I was just a bit disappointed by the video content because the instructor only read the PDF material where all the "how to" (deploy in the cloud, install, html, js ...) are explained. However if you prefer to read and don't like videos, it's great :)

The course "Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship" is also for startup creation but only on the business side without development. Only 6 weeks long, mainly quizzes and some peer review exercices, it's really accessible but the content is not the most interesting I have done. Even if the course is closest to Lean Startup, you can learn how much a business plan is useless :)

The two courses "Grow to Greatness: Smart Growth for Private Businesses" part 1 and part 2 by Edward D. Hess are the shortest course I have done with only a final quizz. It's easy, with good tips to build a company and make it growth.  The instructor is one of the most engaging and motivating of all the courses I have done.

"New Models of Business in Society" is also very short, not really time consuming. However the business tips are more high level. More interesting if you already work in a company at strategic decision levels and want to see a refreshing view on business models.

"Foundations of business Strategy" is good and offers more pratical learning on business than the previous one. It demands also more work. I have learned how industry structure impacts competitive outcomes and learn how to analyze industry forces, how to analyze firm capabilities and how they may provide competitive advantage, how businesses compete in multiple markets and how to analyze firm scope.

One of the last course of the year I have done was "Design Thinking for Business Innovation". As a Design Thinking fan, I couldn't miss this course. However, if the video content is good and it's a great introduction, there was no practical exercices (even no quizzes). It seems more like a promotional content of the book of the instructor than a real course.

I have also one two MBA level courses from Wharton University. "An introduction to Marketing" which is a long course (12 weeks) but also totally accessible because it's only quizzes. Moreover its content is great and engaging with three instructors, each with their expertise. "An introduction to operations management" is shorter but the exercices need really more work (lots of calculation). The instructor and the content are good. Fun fact, the management of the "machine" is not my primary focus, I prefer more human view of the business. However, even with such a analytical view, you learn how the errors of the typical management.

Finally the best two courses are "gamification" where I have learned the application of game elements and digital game design techniques to non-game problems, such as business and social impact challenges and "Social Psychology" where I have learned more "why people do what they do?".
This two courses are amazing by their content, their professor, theirs exercices. They are totally accessible and demands the good level of time to do it.
If you have only two courses to do in 2014, you know what to do!

Et voila! This long list was the course I have done in Coursera with a certificate! But I have also followed some other courses and have almost win the certificate of "Human-Computer interaction" (69% for 70%). This course has great content but the exercices are really time consuming and the last week exercice seems to me totally useless in modern software development.

I have also done two courses from Stanford University on the platform NovoEd "Designing a New Learning Environment" and “Design Thinking Action Lab”. I was disappointed by this two courses because there is almost no direct content. The style of learning focus more on doing by yourself and interacting with other students. My way of using MOOC is totally different because I almost never interact with others students or use the forum. However it is very easy to finish with success the course.

Finally I have done a "MongoDB for java developer course" and lots of Codecademy or CodeSchool programming courses. These type of MOOC are more easy to do because you can come and learn when you want but it lacks a real tempo to engage you. The content is very good if you want to learn coder skills. And even if you have to pay, CodeSchool has an amazing design and their courses are very well done. I have also tried a bit KhanAcademy for the mathematical cursus.

Update: oops, I forgot my french MOOC by EM Lyon about Effectuation. I know you should ask yourself but what is this new term ? In fact, it's very close to Lean Startup and it's trying to show how entrepreneurship works. You should look at this TED Conference if you want to have an overview of the concept. This MOOC was fine with good content, good professor and, even it's the exercices weren't very difficult, the limitation in how to do them make the whole course a bit challenging.

What the conclusion of this ?

Clearly MOOCs are changing the world. I have learned a lot and from the best for free! (Just 9$ for one month of CodeSchool). I have successfully achieved so many course because I could do some weeks three to four courses. How ? I always watch the video when I go to my work during transportation (count 50 to 90 minutes of videos by week and by course) and I made the exercices either the evening, the week-end and sometimes during my lunch time. I think in average a course needs 3 to 6 hours of work by week. The business courses with only quizzes are the easiest. The programming one and worst the design one can be a lot more time consuming. For example, Reactive Programming is almost impossible if you are not fluent in the Scala programming language. 
However I am clearly an addict and I should do less course but trying to use more what I have learned to directly improve my work. 
It's the goal of 2014: less MOOC, more practice :D

mardi 28 août 2012

Revente de livres du Personal MBA ! (et autres)

Voilà, pour faire de la place dans ma bibliothèque physique, j'aimerais revendre de nombreux livres du Personal MBA, la plupart sont usagés (j'ai surligné des passages) mais certains sont neufs.
Ce sont bien sur tous des bouquins extrêmement intéressants et bien notés que je vends en dessous des meilleurs prix (cf Amazon) !

Je revends le tout en main propre sur Paris (ou par colis si on m'en prend plusieurs) et bien sûr si on m'en prend plusieurs je ferais des prix ;)

La liste ci-dessous :

Crucial Conversation, usagé, 5
I will teach you to be rich, neuf, 5
Getting Things Done, usagé, 5
Making Things Happen, usagé, 10
Highly Effective People, neuf, 5
Rework, usagé, 5
Your money or your life, neuf, 5
On writing well, neuf, 5
Deep Survival, usagé, 5
1ndispensable, neuf, 10
The art of the start; neuf, 10
Influence, usagé, 5
Made to stick, usagé, 5
Cut to the chase, usagé, 5
getting started in consulting, neuf, 10
Tribes, usagé, 5
The Power Of full engagement, usagé, 5

Bon et bah voila merci à mon ami Stéphane Dautroy qui me prend le tout ;)

Au passage, dans un tout autre registre, j'ai deux pantalons neufs T.38 (un velour cotelé gris bleu avec effet moiré et un jean brut bleu) que je revends à 15 euros chacun :p

mardi 17 janvier 2012

Stoos network gathering

Disclaimer : This a summary in French of the articles diffused by Jurgen Appelo in his blog after the Stoos Network Gathering. You can see them here.

Le but du rassemblement Stoos était une réflexion autour du management pour tenter de parvenir à un consensus sur la façon d'accélérer sa transformation.

Jurgen Appelo explique dans son blog que beaucoup d'informations ont été collectées avant l'événement par l'intermédiaire de différents blogs mais peu d'information ont filtré durant l'événement pour deux raisons principales :
  • certains des participants avaient des accords de non-divulgation avec leurs organisations et / ou clients
  • certains des participants n'étaient pas à l'aise sur le fait de diffuser leurs opinions
Au final seul les participants pouvaient diffuser librement leurs opinions personnelles.
A cela, c'est rajouté le Wifi de mauvaise qualité et le fait que les discussions étaient si intéressante qu'ils n'ont simplement pas pris le temps de les tweeter :)

Intervenants et Persona
Qui est le client ? Quel est l'audience visée ? Qui sont les intervenants dans la transformation de l'organisation ?
Au final la liste des intervenants est longue (au total 16) mais les plus importants semblent être le middle management, l'enseignement et les startups. Une idée est d'aussi de catégoriser les intervenants car n'importe quelle méthode pour effectuer un changement dépend du besoin de l'intervenant. Certains demandent confiance et transparence, d'autres plus le retour sur investissement. L’idée est donc de développer des persona et d'y associer des user stories (à l'instar des méthodes de l'expérience utilisateur ou du design thinking).

L'idée principale.
Le rassemblement à Stoos a pour principal objectif de découvrir une fondation commune qui puisse réconcilier les différentes méthodes de management (The Toyota Way, the 14 Points for Management, Radical Management, Management 3.0, Wiki-Management, Beyond Budgeting, Tribal Leadership, Servant Leadership, Elastic Leadership, the Declaration of Interdependence).
Y a-t-il un axiome de management ? Y a-t-il un message de base qui implique plus ou moins tout ce que pensent ces méthodes de management ?
Un axe émergent est que les organisations les mieux managés privilégient des réseaux de création de valeur plus que l'organisation classique de type hiérarchique. Cependant il y a beaucoup d'exemples de bon fonctionnement des hiérarchies au sein des réseaux.
Les mots clés du message sont les individus, l'apprentissage et la diversité. Le cœur du message pourrait donc être des réseaux de création de valeur et d'apprentissage d'individus variés.

D'autres principes important viennent se greffer à ce message :
  • La confiance est nécessaire pour créer de la valeur dans un réseau de personnes
  • L'amélioration continue est directement attachée au réseau d'apprentissage
  • La durabilité signifie la création de valeur pour certaines intervenants
  • L'auto-organisation est évidemment la meilleure approche dans un réseau
  • Les boucles de rétroaction sont requises pour l'apprentissage

Nom et identité.
La question du rassemblement a aussi été de savoir comment la suite du mouvement et des rassemblements s'appelleraient et son identité. Il n'y a pas eu de noms qui sont ressortis et les parties de l'identité qui ont émergées ont été incorporées à au communiqué. Comme quoi la question reste complexe :)

Critique de l'événement.
Jurgen revient aussi sur les critiques autour de l'organisation de l'événement dans son article :
  • demander des données avant l'événement
  • n'avoir qu'une diversité de participants et peut être ne pas inviter assez de participants
  • ne pas avoir livré des résultats stupéfiants
Les retours négatifs sont, d'après lui, compréhensibles mais il faut comprendre que le problème est complexe et ce n'est qu'un premier pas.

But et résultats
Le but du rassemblement était d'atteindre une compréhension du problème, un accord sur le futur souhaité et au moins quelques suggestions pour atteindre ce résultat le plus rapidement.
L'étude du problème a abouti à la mind-map visible ici : http://www.stoosnetwork.org/what-is-the-problem/
Le futur désiré a été défini de cette façon : "Les organisations peuvent devenir des réseaux d'apprentissage d'individus créant de valeur, et le rôle des dirigeants devrait inclure la gérance de la vie plutôt que la gestion de la machine".
Cet objectif est difficilement mesurable mais le manifeste Agile ne l'est pas plus.

La vraie question est comment y arriver rapidement ? Beaucoup de discussions ne concernaient pas le problème ou le but mais comment accélérer le changement.
Voila quelques idées qui en sont ressorties :
  • aucun mouvement de changement ne pourra se faire sans la confiance entre ces membres.
  • il faut catalyser et connecter les initiatives d'autres groupes
  • il faut inclure le plus de personnes possibles (d'où la présence du groupe LinkedIn)
  • il faut créer une véritable identité et un nom

Quelle est la suite ?
jurgen propose les étapes suivantes :
  • mieux déterminer les persona représentant les différents intervenants
  • consolider l'influence des personnes qui essayent déjà de provoquer le changement
  • identifier les stratégies pour associer les agents du changement aux intervenants
  • se réunir régulièrement
  • écrire à propos de ce rassemblement (ce que je fais ainsi que Pablo Perno ;) )
  • nommer ce mouvement
Mon humble avis.
Je n'ai pu suivre réellement l'événement mais je suis extrèmement intéressé par ce qui va en ressortir.Je manque de l'expérience pour réellement participer au débat mais je suis content que les idées du Design Thinking, de l'expérience utilisateur ou encore du lean se retrouvent encore propulsée sur le devant de la scène et cela encore mon attrait et ma conviction que celles-ci représentent un réel axe de travail et de développement !

D'autres articles autour du Stoos network :

vendredi 16 décembre 2011

Quel est le rôle de l'architecte logiciel ?

Michael Stiefel donne dans sa présentation "Architects? We Don't Need No Stinkin’ Architects!"  une définition du rôle de l’architecte logiciel que je trouve très intéressante et pas uniquement parce qu'il l'associe à la prise en compte de l'expérience utilisateur ;)

La présentation est en elle-même excellente (la définition de l’abstraction en se basant sur la peinture moderne par exemple) mais je vais surtout revenir sur les points qui m’ont marqué :
  • L’architecte n’est pas obligatoirement le meilleur développeur car son rôle dans une équipe n’est pas le même.
  • Le rôle de l’architecte est de transformer la vision de l’expérience utilisateur en une abstraction correcte : l’architecture du logiciel. L’expérience utilisateur dépasse le domaine de l’UI et doit couvrir l’ensemble du logiciel.
  • Il insiste sur le fait que prendre en compte la facilité d’utilisation permet de pousser l’unité du design et son intégrité conceptuel ou, dans l’autre sens, une intégrité conceptuelle portée par l’architecte permet une unité du design et est vecteur de facilité d’utilisation. C'est d'ailleurs un des meilleurs points d'une vision UX dans le cadre du développement.
  • L’architecte doit avoir une vision holistique du projet et tenir compte de l’ensemble des besoins: performance, scalabilité, coût, sécurité, robustesse, facilité de déploiement, workflow...
  • L’architecte est l’intermédiaire entre les personnes du métier et les « technologistes ».
  • L’architecte doit aider le métier à comprendre les implications techniques d’une story et, pour cela, il doit s’aider du contexte. Le contexte permet de se trouver les bonnes réponses en fonction du projet et de l’organisation.
  • Il met en avant que le point fort de l’architecte est de poser les bonnes questions et non pas d’avoir les bonnes solutions ce qui est le point fort des meilleurs développeurs.
Que pensez vous de cette vision du rôle de l'architecte ?


dimanche 9 octobre 2011

Trouver ses points forts !

Comme je suis un éternel insatisfait de moi-même et de mon environnement, je me suis décidé d'aller faire des tests psychologiques (non pas ceux de la Scientologie bien que bizarrement j'en vois partout en ce moment). Suite à une discussion, on m'a conseillé de faire celui de Strengths Finder.

Donc c'est parti juste avant de partir du bureau, je me suis décidé à le faire. Bon j'aurais peut être du le faire chez moi... parce que, malgré qu'on est que 20 secondes pour répondre à chaque, il y en a quand même 177 et certaines nous poussent à des choix difficiles et surtout il n'y aucune possibilité de le refaire (à part réacheter le livre). A la fin de ce test, on nous présente 5 qualités qui représentent nos 5 points forts avant une explication assez détaillée et une liste de propositions pour améliorer et mettre en avant ces points forts. Si au début je n'étais pas convaincu, je me suis complètement retrouvé dans la description.

Voila le résultat complet avec la description de chacun de mes points forts et une proposition d'objectifs concrets pour les développer et les mettre en avant.

Pour résumer mes 5 points forts sont :
  • learner : J'aime apprendre et toujours m'améliorer. J'ai le désir acquérir de nouvelles connaissances et compétences. Ce besoin provoque une certaine impatience et je n'aime pas être en manque d'information. Je fais tout pour partir d'un job ou d'une tâche que je sens dans l'impasse. Je cherche les opportunités pour améliorer mes capacités pour réparer les erreurs ou surpasser mes faiblesses. Je cherche aussi à travailler avec des personnes dans le même état d'esprit.
  • Input : J'ai un désir profond d'en savoir plus, j'aime archiver les informations et j'aime me retrouver au milieu de conversation mentalement stimulante. J'aime recueillir de nouvelles idées, approches, concepts ou utiliser de nouvelles technologies. Je sais apprécier les différences et les qualités de chaque personne et les placer dans une équipe.
  • Ideation : Je suis fasciné par les idées et j'aime trouver des relations entre des phénomènes qui peuvent sembler disparate. On peut me voir comme distant et réservé mais c'est que j'ai du mal à discuter de banalités. J'aime assister les gens avec mon raisonnement solide et ma logique sur des opportunités particulières, des problèmes ou des solutions proposées. Je peux aussi assister les gens en créant des façons innovantes d'exécuter les tâches. J'ai une solide réputation pour évaluer et critiquer certains types d'idées.
  • Intellection : Je suis plutôt introspectif et j'apprécie beaucoup les discussions intellectuelles. J'aime lire et associer ces lectures à mon travail (ceci explique surement mon personal mba) mais aussi les conférences ou encore expérimenter afin de d'améliorer et d'élargir la compréhension de mon travail. J'adore partager et même instruire les autres. J'aime poser les questions auxquelles personnes ne pensent. Cette curiosité est difficilement satisfaite.
  • Individualization : J'aime assister les personnes et mettre en avant leurs qualités uniques. J'ai un don pour tenir compte de les différences de chaque personne pour les faire travailler de façon productive. J'ai la réputation de tenir mes promesses et j'accueille une large variété de personne dans ma vie. Je suis particulièrement prêt à assister les adultes et je les encourage à voir grand.
On voit que les lignes directrices sont ma grand curiosité, ma volonté d'apprendre et de m'améliorer, le fait d'aimer débattre et transmettre des idées, mon ouverture d'esprit et j'aime assister les personnes.
Il ne me reste plus qu'à trouver le travail qui me permette de mettre en avant ces atouts !
D'ailleurs, si je prend l'ensemble des conseils de métier adaptés à mes atouts, le design, le conseil, l'écriture d'article, l'enseignement et la psychologie ressortent ! Je comprends mieux mon attrait pour le Personal MBA et la création de mon blog sur l'expérience utilisateur.
J'ai ensuite complété par le test Primary Color qui m'a donné ce résultat :
Primary color : pink cadillac Management maven
Curiosité 86%, Exécution 20%, Leadership 87%
You prefer situations that provide for considerable leeway in how you get the job done. There will times when others will see you as the visionary. You may also be viewed as an agent for change and will fit well in situations that are in flux and only loosely defined. If you find yourself leaning toward the Red area of the spectrum then you may be somewhat more introverted, often preferring time alone to get things done. In any event you need to feel appreciated for your intellect and will always do best when working with others who are intellectually quick and logical.
It is not unusual for leaders in this color cluster to perform best when they have a bright team that includes strong executors and managers who can appreciate the vision and turn the conceptual into something real. Effective delegation can be an issue for leaders in this color family. General managers are often found in this color area.
On voit la encore cette tendance à l'introversion mais aussi le fait que j'aime avoir une vision, aider les gens à progresser voir changer, que je donne le meilleur de moi même quand je suis dans un environnement en changement et quand je suis avec des managers qui peuvent apprécier cette vision et la transformer en quelque chose de concret.

Le résultat suivant concerne mon métier actuel de développeur.
Jobs and careers that migrate towards the center of the color chart are more or less an even blend of the three major colors (competencies) of Leadership, Curiosity and Execution. Here is where you will find jobs that require a balancing act of politics, broad-based management skills and temperament of the self-confident CEO and many entrepreneurial qualities in its inhabitants (both organizational and human). To be successful in these jobs you must be able to consolidate and balance technical expertise with strong project management skills and possess the ability to put things into a global perspective.
Having a well balanced temperament and solid interpersonal skills which allow you to interact effectively with others while, communicating forcefully when needed or remaining in the background when appropriate is critical to success in these career/job opportunities. If you have the ability to see patterns in complex ill-defined situations where others do not and can see the whole picture even when there are significant pieces missing and you are drawn to this particular challenge then this may be the place for you. The eye of this storm is not quiet but if you possess the energy, enthusiasm and passion for taking on the whole enterprise then jump right in.

On découvre dans cette description une description très intéressante du développeur qui demande des compétences équilibrées de leader, de curiosité et d'exécution. C'est agréable de voir que d'après mes réponses mon métier de développeur est complet mais aussi complexe ! Par contre c'est la qu'on voit aussi que je pêche sur la partie exécution et je pense qu'être développeur dans un cadre typique est en majorité une simple exécution. Je comprend maintenant mieux mes difficultés sur certains projets :)

Suite à ces deux résultats voila la réflexion fournie par le site que je remet en brut :)
The Primary Color Assessment automatically generates two important sections of information unique for you. The first is a description of your Primary Color. This is not just interesting information – it is literally news you can use. Where your primary color falls on the spectrum (and how far your current job is from your that point) means quite a lot!
Where am I on the spectrum and what does it mean?
People who fall toward the right side of the spectrum favor execution of an existing plan, whereas those who fall toward the left favor creation of the new and innovative. Those on the bottom are strong individual contributors, while those toward the top prefer inspiring and getting things done through others. Typically, those toward the center are open to numerous approaches and solutions, while those toward the outer edge are more decisive and impatient. Similarly, different areas of the spectrum are consistent with different areas of aptitude (and with preferences to participate in these types of activities). The Career Alignment tab highlights summary information about the general area of the spectrum where your current job (as you have described it) is the closest fit. The Job Cluster that is highlighted is independent of your own Primary Color – it may or may not fall in the same area of the spectrum. Those whose primary color falls within or very close to their current Job Cluster are much more likely to be satisfied with their jobs and careers, and often develop professionally at an accelerated rate. Those whose current jobs are not aligned with their primary colors often become frustrated over time, being required to focus on activities that do not engage their strengths and passions. While a specific job may exist on a discrete area of the spectrum, a career within an organization, and even within a specific function (like finance or marketing), is likely to move dramatically across the spectrum over time.
Based on research, specific career paths can now be mapped over the length of a career. For example, below is the career path for an operations focused company, as well as one for business consulting. As you can see, the in the early stages of an operations focused career, consistent execution is highlighted, followed by path leading to strategic leadership over the span of a career. Business consulting typically begins with independent analytic work, and evolves toward high level executive selling over time. In the short term, the objective should be to find ways that your current role can more actively utilize your strengths and passions on a daily basis. With a longer term horizon, your Primary Color is your home base (and is unlikely to change over time), therefore managing a successful carreer requires projecting your role out two, or even three promotions ahead on your current path, and analyzing whether this path is likely to move you closer to, or farther away from your Primary Color. Does your Primary Color accurately describe you? Are there some things that surprised you? Is your current Job Cluster close to your Primary Color? If you are promoted (even twice), do you expect your job activities will move closer to your Primary Color, or farther away? How can you work with your colleagues to leverage more of your Primary Color in daily activities, and over time migrate toward a position that more fully leverages your strengths and passions?

Voila je m'arrête la ! Enfin ;)
Je referais surement ces tests un jour car c'est extrêmement intéressant de s'évaluer et voir où l'on en est dans sa carrière.

vendredi 7 octobre 2011

Gérer notre énergie, pas notre temps

En parlant de passion et de notre travail de développeur, je pense que cet excellent article "manage your energy, not your time" peut apporter des éléments à la question.

 J'aime aussi beaucoup à la fin de l'article ce passage :
The implicit contract between organizations and their employees today is that each will try to get as much from the other as they can, as quickly as possible, and then move on without looking back. We believe that is mutually self-defeating. Both individuals and the organizations they work for end up depleted rather than enriched. Employees feel increasingly beleaguered and burned out. Organizations are forced to settle for employees who are less than fully engaged and to constantly hire and train new people to replace those who choose to leave. We envision a new and explicit contract that benefits all parties: Organizations invest in their people across all dimensions of their lives to help them build and sustain their value. Individuals respond by bringing all their multidimensional energy wholeheartedly to work every day. Both grow in value as a result.
On est très loin du constat du développement en france : http://www.monde-diplomatique.fr/2011/05/SENE/20458

mercredi 5 octobre 2011

Le développeur incompétent est un mythe

Sous ce titre complètement arbitraire et très clairement provocateur, je vais passer un contre pied aux derniers articles que j'ai lus sur le métier de développeur.
Par exemple :
Ça tombe bien c'est juste avant la soirée du Paris JUG sur le métier de développeur ! Et comme on se plaint que les présentateurs ne sont pas de vrais (?) développeurs, je vais en profiter pour donner mon avis.

Alors voila, d'après ces articles, un bon développeur connait ses fondamentaux.
Ok soit mais quelle est cette liste de fondamentaux ? 
Chez certains, c'est les maths et l'algorithmie pure, d'autres c'est C++ par coeur et savoir retourner une chaine de caractère en moins de 3 instructions et une seule allocation mémoire, d'autres c'est Java JEE, ses 100 jsr et frameworks indispensables, d'autres cela va être le langage qui est vraiment bien plus efficace que java (python, ruby, scala...), d'autres te demanderont si tu connais les patterns d'entreprise et le DDD enfin d'autres encore te demanderont si tu connais l'ensemble des protocoles réseau, bash et la liste des messages http quand tu te connectes à Google.fr.

Pour d'autres encore c'est tout ça !
Sérieusement ?

Alors je comprends, difficile de juger la personne sur sa réelle motivation, ses réelles capacités d’apprentissage et encore plus difficile en France de lui laisser une chance voire de comprendre ses talents qui peut-être apporteront une touche différente et utile (communication, design, psychologie ...) à une équipe :)
Il faut mieux sortir sa liste d'exercices et de QCM casse gueule c'est plus simple.

 Donc la on sort le développeur BON et PASSIONNE : celui qui fait ses 40 heures de jsp/struts/jdbc/cvs et qui, le soir, parce que c'est un passionné, travaille sur son projet open source (non jamais commercial il risquerait de partir créer sa boite pour être libre et indépendant ;) ) et va à ces 10 User Group ou Dojos pour l'ensemble des technos auquel il doit s'auto-former.
J'ai une bonne et une mauvaise nouvelle pour nos recruteurs.
La bonne : il existe et il est réellement bon en développement (j'ai un gros respect pour ces personnes).
La mauvaise : il est rare.

Honnêtement j'adorerais en faire parti (d'ailleurs j'en fait presque parti) mais j'ai aussi le sport pour avoir une santé, des réunions sur le business pour étendre mes compétences, une copine qui me demande de passer du temps avec elle, des loisirs et des amis. Et j'assume le fait de dire que je n'ai pas le temps de me remettre à coder de façon sérieuse le soir ou le week-end.

Or entre le vrai bon développeur et le vrai développeur incompétent, il y a tout plein de développeurs qui aiment le développement, qui aiment construire des services, des écrans, des logiciels qui fonctionnent, qui sont testés, qui répondent aussi bien au besoin technique que celui de l'utilisateur. Ce sont des développeurs très souvent compétents. Mais ceux ci se retrouvent sur des projets où la qualité, la valeur et la technique n'arrivent qu'après les considérations politiques, stratégiques, de coût, de délai, de partenariat éditeurs, d'organisation de l'entreprise, etc ...
Ces développeurs en plus d'être souvent sous utilisés par rapport à leur motivation et leurs connaissances, n'ont bien sur aucun temps disponible pour se maintenir à niveau par rapport aux frais développeurs sortis de l'école ou encore à la main-d'oeuvre off-shore. 
Moralité, le type qui a envie de se construire une carrière va vite comprendre que le meilleur moyen de s'en sortir c'est de partir sur le fonctionnel ou sur le management ou aller chercher la plaquette commerciale qui lui vend le mieux une prise en compte de sa carrière et du développement des compétences ce qui entraîne en partie l'état du turn-over, des projets et du management.

 Alors avant de venir encore et toujours taper sur les développeurs, commençons par revoir comment nous considérons le logiciel, son développement, son management, son intégration dans la stratégie de l'entreprise ! 
Allez j'en profite pour donner une piste : Design de service
ou encore une autre : motivation
Edit : et encore une Change the environment, not the people