Software Craftsmanship, ou le marketing de l’échec

10 février 2011

Suite à un intéressant article de Nicolas Martignole, ça buzze beaucoup ces temps-ci autour du Software craftsmanship et ça me donne envie de réagir. En particulier quand je vois les tentatives de récupération (je n’ai pas mis de lien pour ne pas les encourager ;-).

Le mouvement du Software Craftsmanship constate que les bons logiciels sont faits par de bons programmeurs. Notre profession aura atteint la maturité lorsque les bons logiciels pourront être faits par de mauvais programmeurs ou même, sans programmeur du tout.

Le Software Craftsmanship : commercialement anxiogène

Comment terroriser nos clients : en leur expliquant que la seule manière de leur apporter de la valeur c’est de réunir des développeurs expérimentés, membres de la communauté des Software Craftsmen (sorte de compagnonnage). Pour que le projet fonctionne il leur faut l’élite : tous ont fait leur Tour de France et réalisé leur Chef d’Oeuvre. Sinon, c’est l’échec assuré.
En toute logique, le client part en courant acheter un ERP (au fait, qui met en place les ERP ? En tout état de cause pas des Software Craftsmen. Pourtant ça fonctionne plutôt pas mal, et ça crée de la valeur chez leurs utilisateurs).
Je pense qu’un client sera bien plus rassuré si on lui explique que le projet ne repose pas exclusivement sur des individualités, mais sur une entreprise qui, par les processus mis en place, par sa capacité à recruter, mais aussi, à former et à encadrer, par ses outils et ses infrastructures, lui garantit une qualité de service éprouvable et surtout, répétable.
C’est justement la différence entre une boîte qui « vend des CV » (donc des individus) même bons, et une boîte qui vend un savoir faire d’entreprise.
Si ma boîte n’apporte rien de plus à mon client que la somme des qualités individuelles de ses salariés, je passe freelance immédiatement.

Le Software craftsman et le Renard (Jean de la Fontaine)

L’idée d’une « Communauté de professionnels » est intéressante par son aspect « partage de bonnes pratiques » : c’est exactement ce que je recherche en participant à des conférences ou à des séminaires professionnels. Elle l’est beaucoup moins par son aspect ségrégationniste : il y aurait donc deux sortes de gens. Ceux qui en sont, et les autres.

Evidemment tout ce discours s’adresse aux premiers. Ceux qui adhèrent aux valeurs et qui ont signé le Manifeste. Ceux qui sont de « bons » artisans qui, jours après jour cisellent leur code pour en faire un chef d’oeuvre.
Les bons programmeurs seraient donc les gardiens des bonnes pratiques qui se transmettraient leur savoir faire « de bouche de druide à oreille de druide ».

Sauf qu’en fait, il n’y a pas de ségrégation : tout le monde se reconnait dans le manifeste. Tout le monde veut (ou croit) être un partenaire productif de son client, membre d’une communauté de professionnels qui apportent de la valeur en créant du bon logiciel (sic).

C’est en fait une grosse ficelle. Il s’agit simplement de développer l’esprit de corps.
Pour une SSII, faire l’apologie du Software Craftsmanship, c’est du clientélisme. C’est flatter la communauté dans le sens du poil en espérant ramasser des CV.
Et Uncle Bob, dans ses conférences comme dans ses posts est sur la même longueur d’onde. Il espère mettre dans sa poche son auditoire en lui jouant du violon : « comme vous ête forts, vous les programmeurs quand vous vous efforcez de faire de la belle oouvrage ».  Ca marche plutôt bien, il parait qu’il ya même des SSII qui l’écoutent… Cette leçon vaut bien un fromage sans doute.

Software Craftsmanship : un constat d’échec

Quelqu’un se souvient-il de ce que signifie le premier « I » de SSII ? « Ingénierie » ! Nous sommes censés être des ingénieurs. Pas des artisans.Et notre métier est considéré comme « industriel ».

Et bien en fait non. Nous sommes encore (malgré un demi siècle d’existence) un métier où le savoir faire individuel reste plus important que le processus et l’outillage.
L’existence même d’un mouvement comme le Software Craftsmanship est un aveu d’échec pour notre profession. Ca me désole mais, je dois bien l’admettre, on ne sait pas, aujourd’hui, fabriquer du logiciel comme on fabrique des voitures. D’ailleurs, si c’était le cas, il n’existerait pas de « petites SSII ». A-t-on déjà vu un « petit constructeur automobile » ? Oui, il y a un siècle, quand le métier balbutiait.

Le Software Craftsmanship est donc un pis aller pour pallier notre incapacité à industrialiser la production de logiciel. Et bien mon objectif personnel n’est pas de me complaire là dedans mais plutôt de tenter de faire changer les choses !

A contrario d’une réaction au post de Nicolas, j’ai l’impression que les initiatives de type Centres de Service vont plutôt dans le bon sens de ce point de vue. L’industrialisation d’un processus de production, la mutualisation des moyens ne sont pas antinomiques du développement du savoir faire individuel des programmeurs, au contraire. En créant un environnement communautaire et en lui donnant plus de confort, il favorise le partage des connaissances au quotidien, il permet la répétabilité et l’amélioration des processus, il autorise l’investissement dans l’outillage. Le seul inconvénient est le possible éloignement du client ou de l’utilisateur final qui peut être compensé par une organisation distribuée (par exemple des products owners délégués qui font la colle). Et évidemment, le MDA est un autre avatar de la même ambition industrielle.

Je voudrais tout de même terminer sur une note un peu plus positive par rapport au Software Craftsmanship. Ne vous méprenez pas, je reconnais bien volontiers (mieux, j’apprécie et surtout je revendique), le caractère créatif de notre métier. Je suis sensible à l’esthétique, voire à l’élégance d’un programme (ou à sa laideur). Et, pratiquant le coaching, je suis souvent amené à tenter de partager mon expérience avec de jeunes Padawan. Je suis juste un peu déçu, de voir que c’est ce genre de sujet plutôt passéiste, qui tient le haut du pavé dans notre profession. J’aimerais bien pouvoir m’enthousiasmer pour des idées vraiment nouvelles, des « changements de paradigmes » ou des « révolutions technologiques » plutôt que pour ce qui me semble fortement teinté d’un conservatisme confortable.

PS Les commentaires sont réactivés

11 Responses to “Software Craftsmanship, ou le marketing de l’échec”

  1. Les tweets qui mentionnent MD Blog » Blog Archive » Software Craftsmanship, ou le marketing de l’échec -- Topsy.com Says:

    [...] Ce billet était mentionné sur Twitter par Bonnel Yan et Nicolas Martignole, maximebonnet. maximebonnet a dit: Une autre vision du software #craftmanship : http://mdblog.fr/blog/2011/02/10/software-craftsmanship-ou-le-marketing-de-l-echec/ [...]

  2. Raphaël LemaireNo Gravatar Says:

    Bonjour,

    Je ne pense pas que le craftmanship soit utilisé comme argument commercial. En tout cas, il ne devrait effectivement pas l’être.

    La comparaison avec un artisan créatif me semble pertinente. Et la démarche de Fowler et consort a son intérêt : admettre que nous comme des artisans et en tirer les conséquences.

    Je ne pense pas qu’il s’agisse d’un constat d’échec.

    La vérité c’est que le métier de développeur est effectivement une profession unique, qui réclame des connaissances d’ingénieur, un esprit créatif et une démarche d’artisan.

    Contrairement aux voitures, chaque logiciel est unique, et doit être forgé par des artisans qualifiés. D’ailleurs le prototype d’une voiture est fabriqué d’une manière qu’on peut considérer comme artisanale, avant la production en série. Dans « l’industrie » du logiciel, il n’y a pas de production en série, que des prototypes, et donc pas d’industrie.

  3. Stéphane CALATAYUDNo Gravatar Says:

    Bonjour,

    tout d’abord merci pour cet article qui m’a fait découvrir le « mouvement » des « Software craftsman ».

    Je suis plutôt d’accord avec Raphael.
    Le débat qui est soulevé est, pour moi, celui du système et de l’humain.

    Si j’ai bien compris le propos, les craftsmen défendent les qualités individualistes en laissant croire à chacun des membres de la communauté qu’il est unique, qu’il est le meilleur, bref qu’il est indispensable.

    La démarche d’industrialisation consiste à créer une organisation et des processus banalisés où l’on va uniformiser la manière de travailler. On ne veut pas être dépendant de l’humain, on gomme les différences, on rationalise le travail ….
    L’exemple repris souvent est celui de l’industrie automobile vs l’industrie du logicielle :
    Une chaine de production chez Rena… ressemble à s’y méprendre à une chaine de production chez Peuge….. Où est la différence ?
    Les individus sont interchangeables et ils n’ont de spécialisés que le nom.

    Je ne suis pas certain que les ingénieurs en informatique souhaitent être assimilés à des O.S.. ;-).

    Au delà du partage communautaire et de flatter l’égo du « Geek » qui sommeille en nous, c’est peut-être parce qu’il se recentre sur l’individu que ce mouvement est apprécié de la communauté.

    Cdlt.

  4. MoutonNo Gravatar Says:

    Bonjour,

    Permettez moi de me présenter, je ne suis pas un Geek 2.0, ça fait dix ans que je suis dans la même boite. Je ne développe plus, pire je suis commercial depuis deux ans. Oh mon Dieu, Père Damien Karras Nicolas, Père Merrin Didier, vite aidez-moi, je suis possédé par le démon Mouton 2.0. Exemple, en 2009, je faisais partie des 2,52% de développeurs à utiliser encore la 3.1 d’Eclipse. Un retard de 4 générations, un vrai Mouton 2.0 !

    Mouton 2.0, mais je me soigne ! Ma thérapie :

    NS – Abonnements Twitter bien tunnés, sur mon PC le matin et le soir, et sur Blackberry plusieurs fois par jours – A renouveler.

    NR – Des heures et des heures sur des blogs sérieux : Standblog, L’informatique Conviviale, Le Touilleur Express, …

    NS : Non Substituable ; NR : Non Remboursable

    Et puis un jour, je suis tombé sur un article super intéressent Software Craftsmanship par Nicolas Martignole.
    Quelques jours après, en prenant mon médicament discrètement pendant une réunion Go/NoGo où certains parlent de choses qu’ils ne connaissent pas. Hé oui syndrome bien connu chez certains commerciaux : IABMC (Intelligence Artificielle à Base de Mots Clés). Je tombe sur le twitt de @nmartignole lien vers le billet de Grégory Weinbach ‘Software Craftsmanship, ou le marketing de l’échec’.

    Heuuuu, serait-on pas entrain de réveiller le vieux démon de l’éternel débat Standardisation vs Customisation ?

    Entre agilité, mouvement du Software Craftsmanship, Ingénierie, industrialisation. Je me dis que le point commun est peut être ‘comment mieux faire son métier ?’

    Je doute l’existence d’une réponse définitive à cette question structurante et le métier de l’informatique, c’est d’abord un métier intellectuel, alors comment nous motiver pour mieux le faire ?
    Daniel Pink nous propose 3 facteurs principaux de motivations pour mieux faire un métier intellectuel : Autonomie, Maitrise et Sens.

    Qu’en pensez-vous ?

    Un grand MERCI à Nicolas, Didier, Grégory, Guillaume, Pierre , Tug et tous ceux qui œuvrent à animer des blogs de qualité et à vous de m’avoir lu.

    Je retourne à ma cotation :-(

    Un Mouton 2.0 qui rêve de «Travailler en sifflant» ;-)

  5. OazNo Gravatar Says:

    Bonsoir,

    J’ai l’impression que ce billet passe un peu à côté de ce que signifie l’artisanat du logiciel (qui reste, à ma connaissance, la traduction la plus largement acceptée de « software craftsmanship »).

    L’analogie avec l’industrie automobile ne tient pas vraiment la route. En passant, précisons qu’il existe, encore aujourd’hui en 2011, des petits constructeurs automobiles : Venturi, Secma, Lumeneo pour ne citer que des français.
    Mais ce qui flingue l’analogie, c’est qu’un constructeur auto vend un *produit* et non pas du service. Dans le monde du logiciel, ça existe aussi. En général, on appelle ça des « éditeurs » et leurs méthodes de fabrication de produits logiciels n’ont pas grand chose à envier à celle du secteur automobile ou autre. D’ailleurs, si on veut une analogie plus parlante, on pourrait poser la question : existe-t-il aujourd’hui des « petits éditeurs de systèmes d’exploitation » ? Certainement, mais il y en avait beaucoup plus il y a 30 ans quand le métier balbutiait !

    L’erreur à ne pas commettre quand on veut parler des changements de paradigme dans la réalisation de logiciels, c’est de tout ramener à la notion de SSII comme si ce qu’est devenu aujourd’hui le concept de service dans la réalisation de logiciels était inéluctable.
    En tant que client potentiel, je mesure la qualité d’une SSII à la qualité des développeurs que celle-ci est capable de fournir. Et ça s’arrête là.
    Le reste, c’est la création d’un produit logiciel. Dans le processus de création, la définition du produit – ce que l’on pourrait appeler aujourd’hui le « product ownership » pour rester dans le vocabulaire Scrum qui tend à s’imposer – est indissociable des aspects techniques. C’est ce qui était déjà mis en avant dans le manifeste agile (customer collaboration over contract negotiation) et qui va encore plus loin dans le manifeste pour l’artisanat du logiciel (not only customer collaboration but also productive partnerships).
    La création d’un produit logiciel, c’est un partenariat entre plusieurs personnes. Idéalement, ces personnes font partie de la même société et, si ce n’est pas le cas car on ne peut pas toujours embaucher tous les talents dont on a besoin, elles font au moins partie de la même équipe.

    Dans une telle équipe, la notion d’artisan prend tout son sens : c’est quelqu’un qui apporte son savoir faire personnel pour le bénéfice de l’équipe et du produit. Cela ne veut pas dire qu’il ne met pas en oeuvre des méthodes industrielles quand celles-ci sont justifiées (qui ose se passer d’un compilateur de code source ou d’un gestionnaire de configuration ?) mais la touche humaine qui fait qu’une machine ne sait pas *créer* un produit logiciel est incontournable.
    De même qu’une machine ne sait pas créer une automobile : elle sait tout au plus l’assembler à partir de directives définies par des humains comme un système d’intégration continue sait générer un logiciel à partir de directives définies par d’autres humains.

    Quant au « client qui part en courant acheter un ERP », honnêtement, je ne sais pas ce qui est le mieux pour lui.
    Acheter un produit logiciel qui n’a pas été conçu en pensant spécifiquement à lui et essayer de le configurer aux forceps ?
    Ou faire confiance à une société qui lui promet de réaliser sur mesure le produit dont il a vraiment besoin et ne pas vraiment s’impliquer dans la définition de ce produit puisqu’il paie quelqu’un pour ça ?…
    En tant qu’artisan du logiciel, je lui conseillerais plutôt de faire le choix entre
    - acheter un produit conçu par quelqu’un d’autre et adapter sa façon de travailler selon les choix faits par ceux qui ont conçu le produit en question
    - se prendre en main pour définir soi-même le produit qui convient réellement et recruter, ne serait-ce que sur une durée déterminée, les personnes compétentes qui vont l’aider à concrétiser le projet.

  6. LoïcNo Gravatar Says:

    Je fais partie de la catégorie des « Padawans », de ceux qui n’ont pas atteint le quart de siècles et qui font tout pour qu’on leur enlève cette casquette de « Junior ». Et pourtant … cela fait bientôt 10 ans que je lis, et que j’écris du code…

    J’ai débarqué dans le monde de l’entreprise il y a 3 ans, et là j’ai découvert l’envers du décors. Pire aujourd’hui je suis choqué quand je lis cette phrase :

    « Le Software Craftsmanship est donc un pis aller pour pallier notre incapacité à industrialiser la production de logiciel. Et bien mon objectif personnel n’est pas de me complaire là dedans mais plutôt de tenter de faire changer les choses ! »

    C’est à cause de ce genre de pensées que j’ai arrêté de coder pour les entreprises. Parce que « bien coder » est synonyme de « perte de temps » et qu’être « artisan » ce n’est pas être intelligent … en voilà des manières ….

    Industrialiser c’est quoi ? Permettre de reproduire un quelque chose, à l’identique. Bon, reproduire un logiciel euh bah messieurs, le copier/coller existe déjà ! Allez y.

    Je reste persuadé qu’un codeur qui code bien, est une énorme plus value pour l’entreprise … pour plein de choses !!

    Pas seulement pour pisser du bon code, mais aussi et surtout parce qu’il va prendre du plaisir à faire ce travail, à le faire bien, et si des commerciaux veulent vendre leurs ingénieurs avec cette marque de fabrique et bien tant mieux !

    Arrêtez de vouloir faire de nous des machines, on aime coder, et oui, on aime faire du bon code, pour nous, pour vous, et heureusement pour vous ! on est capable de s’adapter à toutes les demandes les plus farfelues de vos clients, justement parce qu’avec nos mains d’artisans, et notre cerveau d »ingénieur, on fait fonctionner ces logiciels qui n’ont rien de quelque chose d’industriel, et encore moins  » d’industrialisable « .

  7. Greg BougeardNo Gravatar Says:

    Personnellement je préférerais comparer notre métier avec l’industrie du textile/vêtement plus qu’avec l’automobile.
    On pourrait comparer le prêt à porter avec les progiciels, le sur mesure et la haute couture avec les gros projets/grands comptes.
    L’analogie me semble plus naturelle

  8. Sebastien LorberNo Gravatar Says:

    hihi, et SAP c’est Zara, Websphere H&M…

    Moi je suis plus d’accord avec Oaz.
    Je vois pas trop en quoi la non industrialisation de l’informatique pose en problème…

    Pour moi, un métier tombe dans le domaine de l’artisanat dans la mesure ou pour obtenir un résultat voulu, il y a plusieurs moyens de faire, chacun ses méthodes et outils, et il n’est pas forcément évident de trouver le bon du premier coup.
    Alors au final, les mecs qui conçoivent les nouveaux avions, les nouvelles voitures et autre, sont bien des artisans.
    Ceux qui surveillent et contribuent à la production de masse, auditent, contrôlent les normes… ceux qui suivent à la lettre une méthodologie donnée sans la remettre en question et ni y apporter leur contribution cérébrale, ne sont surement pas des artisans.

    Personnellement je suis fier d’être un artisan, et je ne me vois pas faire autre chose. Après, suis-je un bon artisan? Il faudra que je demande a Uncle Bob.

  9. RemyNo Gravatar Says:

    Premier point, désolé mais le passage sur les ERP décridibilise vraiment l’article.
    Par ailleurs la posture qui consiste à opposer la software craftmanship à une démarche d’industrialisation de production logicielle est juste un non-sens.
    Les deux participent à la production d’un service de qualité, pour lequel le client peut au final être content de payer.
    L’erreur pour les SSII est de croire que sa seule la force est celle de ses processus ou égale à la somme des forces de ses developpeurs.
    Et puis il y a une dimension à prendre en compte c est celle de la pénétration des softs open source dans le processus de production ou d’exploitation.

  10. Laurent BossavitNo Gravatar Says:

    Salut Grégory, pourquoi penses-tu que « notre profession aura atteint la maturité lorsque les bons logiciels pourront être faits par de mauvais programmeurs ou même, sans programmeur du tout »?

    En quoi est-ce une définition raisonnable de la « maturité »? (A supposer d’ailleurs que la maturité soit un objectif en soi, par opposition à une tactique verbale selon laquelle évidemment personne ne pourrait déclarer vouloir appartenir à une profession « immature ». On nous a déjà fait le coup: Knuth avait choisi le nom « literate programming » parce que personne ne se serait déclaré en faveur d’une programmation illettrée.)

    Comparaison n’est pas raison, mais on ne vise pas dans l’immédiat une médecine qui se passerait de médecins, une éducation qui se passerait d’enseignants, une alimentation qui se passerait de cuisiniers…

    Cette vieille idée selon laquelle « le programmeur est l’ennemi », c’est précisément celle-là qui est un marketing de l’échec, mais dans le sens inverse: en direction des programmeurs. Nous n’avons jamais su manager des programmeurs, alors faisons ce qu’il faut pour essayer de s’en passer. Il ne faudra pas s’étonner que les idées qui combattront sous cette bannière soient rejetées par les programmeurs, et on s’étonnera ensuite de ne pas voir la profession progresser!

    Il faudra un jour que je te fasse mon topo sur l’historique tourmenté du Software Engineering (ma session s’intitule « Quarante ans de crise, dix ans d’agilité » et je suis assez rôdé là-dessus pour la faire chez OD quand ça vous branche).

    Nous ne sommes pas *nécessairement* des ingénieurs, cette idée du génie logiciel est une construction sociale, avec une origine historique bien précise. Et force est de constater que malgré des objectifs grandioses la vision des pères fondateurs du génie logiciel est loin d’avoir été réalisée; alors pourquoi refuser que d’autres modèles fassent à leur tour une proposition?

  11. Conscience SocialeNo Gravatar Says:

    Greg tu soulèves des points très pertinents. Je salue ton courage. Les commentaires sont plutôt décevants de naîveté. Mais tu aurais du continuer à argumenter.
    Seul un autre point est mis en évidence par Stéphane : « Au delà du partage communautaire et de flatter l’égo du « Geek » qui sommeille en nous, c’est peut-être parce qu’il se recentre sur l’individu que ce mouvement est apprécié de la communauté. »
    Et là il faudrait se demander pourquoi. Pourquoi le fait que ca se recentre sur l’individu est-il une bonne chose, pourquoi est-ce mieux au fond ? Est-ce que ce n’est pas plutot une dérive subie d’un modèle de société néolibéral ? Cette question est vraiment au centre, mais je pense que la communauté informatique, et en particulier celle des ‘Software Craftmanships’ (qui n’osent mm pas appeler cela en français, et c’est bien un signe), le plus souvent en statut d’indépendants, est bien loin de pouvoir entendre ce que cela recèle.
    Chacun ne voit que son nombril, à croire qu’on ne doive plus coder avec ses mains aujourd’hui.
    Mais j’ai trouvé une bonne faille dans ce système de pensée nécrosée, dont je me suis servi comme introduction de ma session « Démocratie Agile » à la dernière Scrum Night chez Google. Ca a tenu ses promesses. Je t’en parlerai à l’occasion. Ou peut etre que j’en ferai un billet.

Leave a Reply

Buy viagra Rome
buy buy online viagra viagra
cialis black reviews
cialis brands
Buy viagra Philadelphia
voagra online without prescription
cialis brand verses generic cialis
cialis blindness
viagra calias
cialis britain
discount viagra prescription drug
buy cheap generic viagra
viagra buy do nu
buy cheap deal viagra viagra viagra
cheapest regalis viagra
order cialis on-line
buy cheap deal online viagra viagra
buy cialis wighout prescription
redtube viagra
buy discount generic viagra
buy levitra no prescription
redtube viagra
order cheap cialis
cialis 20 mg
buy cheap cheap kamagra uk viagra
cialis cialis genuinerx net viagra
cheep viagra from indea
viagra without prescription
cheapest price for generic viagra
levitra 25 mg
cialis canadian geneic
cialis by phone
cheapest cheap viagra
viagra buy now pay later
cheap viagra without a pr
Buy viagra Milwaukee
buy cheapest online viagra
viagra buy generic
cialis canadian
cheapest line viagra
Buy viagra Albuquerque
buy buy cheap viagra
Buy viagra El Paso
viagra buy australia
viagra buy in uk online
cialis 800mg
cialis calis
Buy viagra Kansas City
Buy viagra Houston
order cialis on line
buy cheapest viagra online
viagra 100mg price
viagra canada price
cialis canada pharmacy
discount viagra canada
Buy viagra Tulsa
cialis buy cialis generic cialis
Buy viagra Fresno
rx levitra 100mg
cheap viagra canada
buy buy medved viagra viagra
viagra online prescription
discount viagra
cialis cheap visa
viagra express
100mg levitra
Buy viagra Mesa
overnight express delivery generic cialis
cheapest price viagra us licensed pharmacies
buy cheap viagra online u
buy viagra 50mg
order 50mg cialis
cheapest viagra prices us licensed pharmacies
cheapest price for viagra
discount viagra 10 pack generic
cialis 5mg
cheapest viagra in uk cheap
buy cheap viagra online now uk
cheapest brand viagra
cialis cheap cialis online
cheapest viagra tablets
cheapest generic silagra viagra
buy cheap uk viagra
cheapest price for viagra
buy cheap viagra in uk
discount viagra uk
cialis britan

viagra by the pill
buy discounted viagra
buy cheap deal pill viagra
order generic cialis softtabs
cheapest site viagra
10 generic cialis for 19.95
cialis canada
buy deal online sale viagra viagra
viagra buy ionline
cialis brand cialis 100mg
cialis cheapest
buy cheap viagra
discount viagra sales
viagra buy general
order cialis uk
Buy viagra Seattle
viagra by overnight delivery
buy cheap viagra prescription online
generic levitra wholesale 100mg
overnight shipping cialis
buy levitra wighout prescription
levitra no prescription
buy viagra by pill
generic levitra 20mg pills erections
viagra canada pharmacy
100 mg levitra us pharmacy
order 50mg viagra
buy australian viagra
discount drugs levitra 100mg
buy viagra caverta
buy buy discount viagra viagra viagra
buy cheap viagra cheap viagra online
viagra canada price
check generic order pay viagra
cheapest viagra generic substitute
viagra canadaian prices
buy cheap viagra uk
cheapest viagra
buy buying sale viagra
cialis bph
viagra canadian price shipped
buy cialis online 50mg
cheapest viagra online plus zenegra
over the counter viice for generic viagra
buy buy sale viagra viagra
cialis no prescription
discount viagra overseas
buy discount online viagra
discount viagra furthermore cheap adipex reviews
order cialis
order generic cialis c o d
buy buy cheap medved viagra
discount viagra pills
cheapest generic substitute viagra
levitra 100mg
rx cialis 100mg
cialis 800mg
10mg levitra
buy cheap viagra viagra
order cialis online from dreampharmaceuticals
buy cheap online prescription viagra
discount viagra order viagra discount viagra
20 mg cialis
cialis black 800mg
buy buy cheap medved viagra
36 hour levitra
discount viagra or xanax
cheapest generic viagra and xanax pills
overnight delivery cheap cialis
viagra canada
Buy viagra Memphis
buy cialis no prescription
levitra 125 mg
viagra buy viagra
cheapest prices on generic viagra
buy deal viagra
cialis without prescription
viagra by mail
10 generic viagra for 19.95
cialis br
cheapest prices for viagra online
viagra buying
cheapest viagra overnight
buy cheap viagra
buy viagra wighout prescription
cheep viagra from india
cialis buzzmachine by jeff jarvis
viagra buy
cialis canada prescription
Buy viagra Long Beach
Buy viagra New Orleans
buy deal deal price viagra
cialis best effect
cheap viagra without a prescription
buy viagra 100mg
order cialis online
cheapest price on viagra
buy viagra cialis levitra online prescription
Buy viagra Phoenix
cheapsest viagra online
viagra canadian
buy viagra cheap
buy discount viagra
cheapest generic viagra caverta veega
buy viagra cheap online
overnight delivery cialis
cialis best price
paypal cialis
cialis black
cheep viagra 600mg uk
discount viagra brand drug
buy viagra cheapest best prices online
buy cost low viagra
over the counter viagra substitute
cialis by fedex
cheapest generic viagra and canada
cialis canada rx
buy canada viagra
cialis dosage 20mg
cialis 20mg reviews
generic cialis wholesale 100mg
discount drugs cialis 100mg
cialis reviews
cialis cialis forum pharmacy
over the counter viagra london
Buy viagra Indianapolis
cialis black reviews
cheapest viagra anywhere
cheapest viagra uk
cialis 10 mg
cialis cheap online pharmacy
cialis cialis
cheapest viagra anywhere
buy discount viagra online
voagra online without prescription
cialis cialis genuinerx net
viagra canadian
buy viagra alternative
Buy viagra Charlotte
viagra canada prescription
cialis 50mg
100 mg cialis us pharmacy
voagra online without prescription
cheapest viagra prices uk
cialis cialis cialis genuinerx net viagra
buy viagra cheaply
buy cheap xanax generic flomax viagra
viagra cailis
cialis 50mg online
cheapest viagra price
cialis causes high blood pressure
cialis canadian epharmacy
cialis cialis generic viagra
Buy viagra Columbus
50 mg viagra
cialis certified online pharmacy
overnight generic cialis
100mg cialis
cialis 20mg
buy generic online viagra
peak level of cialis in blood
30mg cialis
Buy viagra Tucson
cheapest viagra on line
buy discount levitra
100mg viagra
buy cialis 50mg
viagra buy oonline
cheapest price on viagra
cialis cialis information
cialis best cialis price
Buy viagra Baltimore
viagra no prescription
viagra canada generic
Buy viagra Pittsburgh
cialis cialis tadalafil
buy cheap cialis
50 mg cialis
viagra buying online
buy buy medved viagra viagra
buy cheap viagra online uk
cialis buy cheap cialis online index
generic cialis 20mg pills erections
buy discount cialis
cialis canadian pharmacy
levitra brand levitra 100mg
cheapest place to buy viagra
discount viagra sale
buy viagra cheapest
viagra calgary
viagra canada
buy viagra cheap india pharmacy
cheapest uk viagra
cialis canada generic
viagra brand viagra 100mg
cialis buy generic
buy levitra 50mg
viagra and eye sight
discount viagra offers
cheapest viagra world
10mg cialis
viagra 100mg
viagra 50mg online
cheapest prescription viagra
cialis cheapest lowest price
cialis 36 hours
buy cheap deal viagra viagra viagra
buy cheap generic online viagra
buy cheap viagra on the net
viagra by mail canada
cialis cialis drug generic flomax
buy cheap deal online viagra viagra
cialis 2.5
Buy viagra Fort Worth
discount viagra viagra
levitra 50 mg
buy buy free viagra viagra viagra
buy buy free viagra viagra viagra
cialis cheapest online prices
40 grams of cialis
discount viagra drug
cialis brand name
buy discount viagra online a href
cialis cheap online direct
paypal cialis po box
buy viagra no prescription
buy cheao cgeap kamagra uk viagra
buy levitra online 50mg
cialis buy cialis online
buy female viagra
Buy viagra San Antonio
buy buying sale viagra
cheapest generic viagra 99 cents
levitra 50mg
Buy viagra Las Vegas
cialis buy generic ed
buy canada in viagra
cialis cardiac risks
buy 10 mg cialis
cialis bestellen
canada pharmacy discounted levitra 100
Buy viagra Omaha
viagra buy viagra online
buy viagra and cilas
50mg cialis
buy canada viagra
cheapest generic viagra
cialis online prescription
cheapest place buy viagra online
buy deal herbal viagra viagra
cheap cialis canada
order cialis and viagra
viagra canada online pharmacy
Buy viagra Oakland
order cialis 399
order cialis online dream pharmaceutical
Buy viagra Denver
cialis cheapest price
cheapest viagra in uk che
cialis best price buy online
overnight delivery of cialis
Buy viagra Washington
buy cheao cgeap kamagra uk viagra
viagra by phone
levitra 20 mg
50 mg viagra retail price
Buy viagra Modesto
Buy viagra San Francisco
cialis 125 mg
250 mg levitra
cheapest viagra on the net
10 generic levitra for 19.95
cheapest prices for viagra online
order 50mg levitra
cheapest uk supplier viagra
Buy viagra Newark
cheap 25mg viagra
discount viagra pharmacy online
viagra and eye damage
Buy viagra Nashville
cialis buy
cheep generic viagra
cialis buy cialis online order cialis
generic viagra 20mg pills erections
cheapest generic viagra 99 cents each
cialis buy online cheap tadalafil
viagra by mail order
cheapest price viagra
viagra canada pharmacy
buy cialis now
buy cheap site viagra
levitra 25 mg order
cheap cialis canada
viagra canada online
cialis 100mg
buy cheap viagra on
buy cheap viagra online
levitra without prescription
discount viagra perscription drug
cheapest viagra online pharmacy
cheap websites for viagra
cheapest in uk viagra
cialis cialis cialis viagra
levitra 10mg 20mg
Buy viagra Austin
cheap cialis canada
cialis cheap no prescription
50 mg cialis retail price
cheapest viagra in uk che
generic levitra 100mg
buy free viagra viagra
cialis cialis viagra viagra
Buy viagra Louisville
order generic cialis softtabs online
ordering generic cialis from india
cialis cialis online online
buy viagra
cialis black
viagra 50mg
perscription cialis
cialis buy generic flomax
Buy viagra Portland
viagra canadian price shipped
buy viagra ebay
cialis bestseller
buy cheap online viagra
5mg cialis generic
buy buy discount viagra viagra viagra
over the counter drug to viagra
buy viagra 1
viagra calias
Buy viagra Richmond
cialis cialis genuinerx net viagra viagra
buy cheap online viagra viagra
viagra by money order
viagra canadian prescriptions
discount viagra sale online
discount viagra wholesale stores discount pharmacy
cheapest online viagra
viagra buy it
cheapest regalis viagra
cheapest cialis
cheapest place to buy viagra online
buy buy online sale viagra viagra
cheapest generic viagra sent overnight
buy cheap generic viagra online
discount viagra canada
cheapest generic price viagra
cheapest uk supplier viagra
buy cheap purchase uk viagra