3/22/2008

Qui est Lawrence Lessig?

Qui est Lawrence Lessig? Depuis quelques jours, quoi que je lise, je retombe sur lui.

Vous vous souvenez de mon post de jeudi dernier sur le copyfight et Creative Commons (CC)? Hé bien en regardant la liste des Commoners, je suis tombé sur Hugh McGuire et son projet Librivox. Je reconnaissais Hugh, parce qu'il fut le premier présentateur au dernier BarCampMontreal. J'avais bien aimé sa présentation qui avait un style assez particulier.

Samedi soir, je divaguais sur internet. Suite aux recommendations de Seth Godin et de Bert Decker (via le blog de Guy Kawasaki) je me suis rendu sur le site de Garr Reynolds qui vient de terminer son livre sur l'art de la présentation: Presentation Zen. En lisant son blog, je trouve ce post sur la 'méthode Lessig'. C'est une façon de présenter avec des 'slides' qui ne contiennent que quelques mots et qui se succèdent très rapidement. Je connaissais ce style de présentation! C'est le même que celui utilisé par Hugh McGuire au BarCamp. Mais qui est donc ce Lawrence Lessig? Hé bien Lawrence Lessig en est le fondateur et CEO de Creative Commons...évidemment! Tout s'explique!

Ce n'est pas tout! Dimanche soir, je lisais Wikinomics et voilà que je retrouve ce cher Lessig à la page 53: "Our colleague and Standford professor Lawrence Lessig..."

En quatre jours et de trois façons différentes, je retrouve Creative Commons et/ou Lawrence Lessig. Je commence à penser que c'est un message.

Copyfight!

Je lisais aléatoirement Changer le monde: Un guide pour le citoyen du XXIe siècle et je suis tombé sur la section qui parle du copyfight. Suite à cette lecture, je me suis rendu sur le site de Creative Commons et j'ai trouvé le vidéo ci-dessous. Inutile de dire que je supporte totalement cette initiative. Comme dit un autre petit vidéo: 'Creativity always builds on the past.' Le web est une plateforme de collaboration incroyable. Wanna work together?

The Next Social Web

The web has now evolved into an organic platform that grows with the content created by the millions of netizens. They use the net to communicate, to network and to share. People have finally conquered the web. Nowadays, when we want to buy a book or find a great restaurant we go on the web and read reviews by people for people. Only a few years ago, product information was pushed to us by ads. Now, we pull it from the web. We used to get information from only a few sources. Now, we read blogs and reviews written by tons of random people that we, somehow, thrust. In this version 2.0 of the web, values like openness, collaboration, community and authenticity rule.

These values are now getting traction outside the cyberspace. Small, cafe like, offices that favor coworking, sharing and collaboration are now spreading around the world. Free unconferences where everyone is a participant, called BarCamps, are being organized for exchanging ideas and sharing knowledge.

The web culture is close to mainstream, and so are its core values. It is about time.

What about the future of the social web? I see the word social in social web evolving to rhyme with social change. I see the networked, open and collaborative communities focusing on tackling global social problems.

BarCampMontreal3

Hier, c'était le BarCampMontréal3. Il devait y avoir plus d'une centaine de personnes rassemblées à la SAT sur St-Laurent. Comme la règle de base d'un BarCamp est que tous les spectateurs sont aussi des participants et organisateurs, donc responsables de l'organisation de l'événement, je me suis rendu à la SAT vers 8h30 pour donner un coup de main. Les premières présentations commençaient à 10h. Pour consulter l'horaire, il suffisait de jeter un coup d'oeil sur le mur où était disposées une centaine de feuilles (une feuille représentant un présentation de 1, 5 ou 15 minutes). L'horaire d'un BarCamp est dynamique et s'ajuste pour permettre à un maximum de gens de présenter. Un espèce de wiki low-tech!

Le local de la SAT était divisé en deux sections: une pour les présentations avec projecteur et son; une autre, qui ressemblait plus à un café, avec tables et bar pour discuter et échanger sur différents sujets. Évidemment, l'accès internet sans fils était disponible partout.

Le contenu des présentations variaient. Plusieurs personnes montraient les résultats d'un projet. D'autres étaient plus business (start-up life, financement) ou plus philosophiques (accès à l'information, les nouveaux média). De mon côté, je présentais un résumé de la conférence Business of Software. Je crois que je m'en suis bien sorti, malgré le fait que j'ai dû expédier la fin puisque je dépassais légèrement le temps alloué. J'avoue avoir un peu paniqué à la vue de signal de 2 minutes!

Évidemment, j'ai échangé avec plusieurs personnes intéressantes, mais sans trop me mêler à la foule, étant un peu loner. J'ai découvert une techno-communauté très ouverte et très active. J'ai adoré l'expérience et je serai évidemment du prochain BarCamp à Montréal.

Business of Software - Jour 2

Je ne savais pas trop à quoi m'attendre pour cette deuxième journée de conférences. Tous les présentateurs vedettes étaient déjà passés et les sujets proposés semblaient s'éloigner du logiciel.

La journée a encore commencé par un double déjeuner (6h et 8h). Il faut bien que je remplisse le t-shirt médium non? Le premier présentateur fut Dan Nunan sur la simplicité et le marketing. L'idée: avoir un produit simple pour éviter des maux de tête aux consommateurs. Ce fut une bonne présentation, mais sans plus. Ensuite, Matt Mason, un ancien DJ de radio pirate de Londres, est venu proposer que le piratage à des effets bénéfiques, dont l'accélération de l'innovation. Contrairement aux entrepreneurs, les pirates cherchent des opportunités en dehors des marchés connues, là où les règles sont floues. Ils sont, en quelque sorte, un signal du marché qui indique une faille du système actuel. Il croit aussi que de permettre de copier et de modifier un produit stimulent le progrès et l'innovation. Son conseil: compétitionner avec les pirates sur leur terrain au lieu de les combattre (Radiohead!).

Après une brève pause, Rick Chapman est venu parler de SaaS (Software as a Service). Selon lui, c'est le futur du logiciel. J'étais déjà convaincu, je le suis encore plus! Après le lunch, Jennifer Aaker, a présenté sa vision du 'branding'. J'étais un peu septique au départ, mais elle m'a vite fait réaliser l'importance que le 'branding' a sur la relation entre le client et la compagnie. Par exemple, chaque compagnie est vu différemment par les consommateurs. Elles ont des personalités et selon sa personnalité, les attentes des clients seront différentes. Par exemple, une compagnie sérieuse ne peut pas envoyer un email drôle à ses clients sans en froisser quelques-uns. Par contre, une compagnie plus jeune peut le faire sans craintes. La personnalité (le branding) de la compagnie joue donc un rôle critique dans ses relations avec ses clients. Et moi qui pensait qu'il ne fallait qu'un excellent produit...fascinant!

J'étais encore sous le choc quand Hugh MacLeod est entré en scène. Il nous a raconté, à travers plusieurs histoires, cartoons et anecdotes technologiques, les histoires d'un tailleur anglais et d'un vignoble sud africain avec lesquels il a travaillé. Dans les deux cas, avec un aucun investissement en marketing, il a réussi à accroître leurs ventes d'une manière incroyable. Comment? L'audience attend. Il raconte, divague, digresse...on a peine à le suivre...mais il converge...la clé? Kula, l'objet social. Il faut donner à son produit un aspect social pour qu'il alimente des discussions et engendre des relations. Le reste...c'est de l'anthropologie. Est-ce qu'il est fou? ou est-ce un génie? L'audience est ambivalente...je suis ébahis.

Enfin, Jeff Pfeffer, un professeur de Standford, nous a expliqué pourquoi on ne fait pas toujours ce qu'on sait être la meilleure chose à faire. Le manque de courage, la peur et la pression sont quelques-unes des raisons. Après nous avoir expliqué comment concilier nos actions avec nos connaissances, il nous a demandé: "Now that you have heard all those speakers and learned a lot, what will you do different? If you do nothing different, you have wasted your time!"

Fair enough...

Business of Software - Jour 1

Arrivé au Marriott à 8h, je me mets en ligne pour m'enregistrer. On me demande alors ma taille pour le t-shirt. Quoi, pas de small?? Est-ce que c'est un préjugé envers les informaticiens? Est-ce que c'est parce que le marché pour les 'small' est trop réduit aux États-Unis? Tant pis, un médium...et je me mets en ligne pour mon 2e déjeuner ;-)

La première présentation, celle de Guy Kawasaki sur l'innovation, a donné le ton à l'événement. Une présentation drôle mais très concrète et efficace avec un soupçon d'humilité. Fort! très fort!

La présentation de Tim Lister sur les patterns dans les projets informatiques était rafraîchissante et pleine de nouveautés. Celle de Bill Buxton sur le design était radicale et engagée. "When designing, sketch...do not code." "We always have budget for being 3 weeks late, but never to design upfront for 3 weeks."

Puis, Eric Sink nous apprend le "marketing for geeks" et pourquoi les programmeurs "suck" en marketing: "There is no boolean question in marketing." Puis, Alberto Savoia nous apprend que 90% du code existant "is crap". Il nous présente alors une mesure de crappyness et comment réduire le crap load. Finalement, le très populaire Joel Spolsky, nous explique sa stratégie pour engager les meilleurs programmeurs. Je dois avouer que je fus un peu déçu par cette dernière présentation; tout le contenu étant déjà sur son blog...disons que j'avais aussi de hautes attentes.

Bref, une première journée très intéressante et stimulante.

En attendant le début de la conférence...


Hier soir, je suis allé faire un tour au San Jose Marriott pour voir à quoi ressemble le site de la conférence.

Ce matin, je me suis levé à 5h. Vive le décalage horaire! Comme la conférence ne commence qu'à 8h, j'ai profité de la connexion internet pour passer le temps...

Le barcamping


La saison de camping s'achève, mais le barcamping débute à Montréal samedi prochain. Qu'est-ce que qu'un Bar Camp? C'est un regroupement de gens passionnés de technologies qui se rencontrent et qui organisent une conférence informelle. L'objectif principale est d'échanger de l'information. Le mot d'ordre est: "Il n'y a pas de spectateurs, seulement des participants". Le troisième Bar Camp Montréalais (barcampmontreal3) aura lieu au SAT (Society for Arts and Technology, sur St-Laurent) ce samedi 3 novembre...et c'est gratuit. Pour s'inscrire, il suffit de mettre son nom sur le wiki. J'y présenterai un court résumé de la conférence Business of Software qui commence demain.

Hé oui! je suis à San José!

The Human Voice of the Internet

I'm reading the Cluetrain Manifesto. It is an interesting and rather provocative book that forecasts the end of the current business paradigms. The authors argue that this radical change is caused by the internet, which is bringing back something we have lost a long time ago, authentic human conversations. I haven't finished the book yet, but I want to share a part of the thinking I have had on the subject so far.

The internet is helping us having true human conversations they say. After thinking about it, it actually makes a lot of sense.

Neutral Context Conversation

When we are having a conversation on the net (via IM, chat, blogs), it is taking place in a neutral environment. It is easier for all participants to feel at ease. More important, when we speak on the internet we know who can listen. When chatting with someone on MSN Messenger, there are only two participants. No one can overhear anything. This enables us to say what we have and want to say without restrictions. When blogging, the posts can be read by many people and the blogger speaks accordingly. The neutral context is also created because the computer acts as an impersonal intermediate between the participants. This often eliminates a little bit of shyness and allows for more emotional discussions.

Democratic Platform

No one owns the internet. There is no org chart, no hierarchy. If you can access it, then you have the same rights as everyone else. This allows people to broadcast their ideas and opinions freely. The user's anonymousness causes a small detachment between the speaker and its ideas and the fear of critics is somehow reduced. Since this is often what prevents people from expressing new ideas, the internet is a great place for innovation.

Less Cultural Constraints

Everyone knows how to and how not to behave in different situations. For example, when at the office, people should be professional. This defines, amongst other, how to dress and interact with colleagues and clients. It also restricts what you can and can't say. Similarly, in any culture, some subjects are taboo. Not on the net. You can say whatever you think no matter how shocking and provocative it is (what defines shocking or provocative is relative to each culture, it is not universal).

Interest Based Friendships

On the internet, friendships are created when people's interests match, not when they happen to be at the same place at the same time. From interests based friendships emerge passionate conversations. Furthermore, since time and location are not an issue, individuals can now have a vast and very complex social network.

The Option to Ignore

You don't like a web page; don't read it. You don't want to chat with that guy you meet in high school; block him from your contact list. No more boring conversations. People can now choose to ignore...and stay polite.

The internet is a scary place. It is scary because, as the manifesto says, it is a very powerful platform for expressing our own human voice.

En partant de Zero Knowledge

Tout a commencé en buvant un thé wulong et en lisant Billions With Zero Knowledge, le blog de Austin Hill (entrepreneur Montréalais fondateur de Zero-Knowledge).

Comment je me suis rendu là? C'est une longue histoire et c'est sans importance. Sa nouvelle start-up, akoha, est un projet de communauté web basée sur la Gift Ecomony. Je n'ai aucune idée de ce qu'est la Gift Economy. Un scan rapide de son blog m'amène sur un post sur le sujet. Je le lis attentivement. J'apprends que c'est un système économique où les cadeaux engendrent des liens économiques et sociaux entre les individus. Intéressant.

Vers la fin de son texte, un lien mène vers un autre post sur le sujet sur le blog de Tara Hunt. Je ne connais pas Tara, mais le fait que le lien soit qualifié de great actionne mon index et me voila en train de la lire. Elle explique qu'une partie du succès de sa compagnie de consultation, Citizen Agency, vient du fait que ses deux fondateurs donnent beaucoup à la communauté via plusieurs projets. De ces dons, ils reçoivent en retour souvent plus qu'ils ont donnés. Je n'ai pas le temps de lire sur Citizen Agency, mais je marque le site sur del.icio.us avec le tag 'toread' et j'ajoute le blog sur mon Google homepage.

Je suis intrigué. Qui est cette Tara? Je regarde donc sa bio. Born in Saskatoon...live in San Francisco...formed Citizen Agency...ah tiens...une liste de livres favoris. Je prends des notes et je reviens sur son blog. Je tombe sur un post à propos d'un certain coworking logo in progress. Le logo est une étoile de mer et ça dit 'coworking - working along sucks'. Il y a une petite explication sous l'image qui me mène sur Coworking Community Blog. Naïvement, je clique. Un encadré m'explique le coworking: Coworking is a movement to create a community of cafe-like collaboration spaces for developers, writers and independents. Un peu plus bas il y a un petit vidéo sur un nouvel espace de coworking qui vient d'ouvrir à Philadelphie. Je visite donc le bureau en suivant un certain Alex Hillman. 7 minutes et 1 seconde plus tard, je suis fasciné par le concept.

Je veux en savoir plus. Je reviens chez Tara et découvre que l'étoile de mer est une référence au livre The Starfish and the Spider, un livre sur les organisations décentralisées. Je l'ajoute sur mon wish list Amazon et je clique sur la catégorie coworking. Je regarde un autre vidéo très intéressant de 8 minutes sur le coworking.

Je vous épargne la suite. Mais quelques liens plus tard j'apprenais que BarCamp est une 'unconference' où l'horaire des présentations est créé et changé sur place et qu'il y a un BarCamp à Montréal cet automne. Je vis aussi que l'organisateur de BarCampMontreal est le fondateur d'une compagnie (StandOut Jobs) dans laquelle Austin Hill (hé oui!) est un investisseur! Mais ce n'est pas tout. Je me suis finalement rendu à la Grande Bibliothèque pour emprunter le livre à l'étoile de mer. Et vous savez quoi? En le feuilletant le livre, j'ai remarqué que l'index contenait Gift Economy.

C'est fascinant comment les intérêts/passions des gens sont liés et entrelacés. Le web est possiblement la seule technologie qui peut représenter tant de complexité. Et s'il y avait une économie des intérêts...

Ouf!

Tout a fini avec un succulent thé pu-ehr, chez Camellia.

Programmer Manifesto

Software is changing the way we do business. It is time for business to change the way it does software.

Current methods for managing software development are wrong in most organisations. They prize long hours and tight deadlines in order to speed up organisational growth and profit.

I believe people should come first. I believe in open communications and global collaboration. I believe in hard work and quality software. Because quality software brings wealth, not only profit.

How does it scale?

As a programmer, whenever we add new pieces of code in a software, we should ask ourselves “How does it scale?” What if it gets executed many times a second. What if it is executed on all nodes in the cluster simultaneously? Will it waste CPU cycles? Will it fill the memory or the log files with garbage? Could it crash the whole cluster?

As a human, whenever we buy something, we should ask ourselves “How does it scale?”. What if I buy the same thing every day? What if everyone buys it? Will it waste resources? Will it fill the dump with garbage? Could it crash the planet?

The goal is to prevent unrecoverable effects before it is to late. Answering this simple question forces us to design better and more sustainable options thus preventing down time.

Iteration and Feedback

We often think of iterative processes as successive refinements. But the key to the success of any iterative process is the feedback received between iterations. The quality of that feedback will determine the quality of the output. But what kind of feedback do we need?

Suppose you are driving a car on a highway. You want to drive as fast as possible but you also want to avoid getting a speeding ticket. Every time you look at the speedometer, you get precise feedback. From that feedback, you can either choose to accelerate or decelerate depending on your current speed compared to the speed limit. The feedback allows you to take corrective actions.

I don't know if you have ever tried to drive a boat. I tried once. It is not easy. Because of the water viscosity, the boat does not change its course immediately when you change the direction. The delay makes it very difficult to quickly maneuver the boat because as long as you do not get the feedback you can not take the next corrective action.

Therefore, we need accurate and prompt feedback. The accuracy will determine how close to the objective we can be and the promptness, the speed at which we can it. I see three levels of feedback in an organization: individual, organizational and operational.

Individual feedback is targeted to a specific individual. An employee review is an example. Organizational feedback aims at the organization as a whole. Employee surveys are an example. Operational feedback concerns the way the organization works and ultimately the products/services it delivers. Software architecture reviews and testing are two forms of operational feedback in typical software companies.

My point is the following: To be efficient and deliver quality an organization needs to maximize accurate and prompt feedback on all three levels.

Conceptual Integrity

In my last post, I mentioned the agile manifesto. Agile software development methodologies are very fashionable these days...almost too fashionable. These methods for developing software are a response to the 'Big Design Upfront' methodologies where you design the software system first and then you start coding. The main problem with the BDU approach comes from the fact that the system requirements often change after the design is completed and/or while the coding is in progress. When that happens, the cost of re-design is high and some part of the design might even become obsolete. Furthermore, since you never know how your product will evolve, why design from the start? What the agile community is suggesting is to do minimal design first and then let the software design adapt with the new requirements and with the product natural evolution using refactoring (code level re-design) techniques and/or short design sessions. There is more to agile than that and most practices they suggest makes sense...I would not program without unit tests for example! But something is missing...something called conceptual integrity.

Conceptual integrity is considered, by Frederick Brooks (author of the must read book The Mythical Man Month), as the single most important characteristic for a software system. So what is it? He argues that when developing a software system, the system architecture should use a limited set of well defined concepts. It is like when painting an apartment, you choose a limited set of colors that go well together. He even suggests to reject features that would not fit the conceptual integrity of the system. Why is it so important? Because from the system architecture integrity emerges simplicity and straightforwardness and these brings ease of learning, ease of use and ease of maintenance. It's a bit like the manifesto thing...once the core concepts are defined, future design and implementation decisions are dictated by the design itself.

When evolving the software the agile way, the concept of the system as a whole is somewhat lost. Even though each piece of code is neat and well designed, the multiplication of concepts and the lack of system integrity brings complexity. Then, the learning curve gets steeper, new features require hours of discussion and even a simple change is utterly complex.

Side note: If you want to read an interesting criticism of agile software methodologies, read this entry from Steve Yegge blog.

On manifesto and vision

I woke up this morning wanting to read the hacker manifesto. This was written in 1986 by 'The mentor'. I was pretty young at that time and had no clue about computer or software. I discovered it many years later and it certainly played a role in bringing me to the software world. Not that I'm considering myself a hacker, but the criticism, cynicism of that text had always fascinated me. How can curiosity be seen as a crime? This clearly describes a vision where curiosity, knowledge and understanding are seen as values to live by. The agile manifesto is a more recent manifesto in the software field. Again, the vision is clear and the core values are defined. Reading a manifesto gives you a choice, either you adhere to the vision or not. If you choose to adhere, your values and therefore your actions and decision are now shaped by that vision. The vision brings focus and effectiveness.