22 décembre 2008 | Publié dans Développement informatique | Aucun commentaires
Je suis tombé sur cet article plutôt comique qui tente de faire des liens entre les religions et les languages de programmation. C’est fait dans un but humoristique. Toutefois, je dois vous avouer qu’avec le temps, j’ai bel et bien vu des gens qui prenait ça très sérieusement le choix des languages de programmation.
Ça m’amène à la réflexion que c’est un non-débat. C’est l’équivalent de s’obstiner si c’est mieux un moteur 6 cylindres en ligne ou en “V”. Ça passe mille pieds par dessus la tête des utilisateurs. L’important c’est de livrer la patente qui marche à ces derniers dans le meilleur délai et dans les coûts promis.
18 décembre 2008 | Publié dans Développement informatique, Qualité | 1 commentaire
J’utilise le logiciel Digsby comme je vous l’avais déjà mentionné. J’ai eu un pépin avec l’application lorsque je me suis mis à l’utiliser avec deux moniteurs sur mon ordinateur. J’ai soumis un bug directement dans l’application.
Croyez-le ou non, mais le développeur, Steve Shapiro, m’a répondu dans l’heure pour m’indiquer qu’il avait déployé la correction sur internet. Il m’a tout simplement demandé de redémarrer l’application pour qu’elle se télécharge et s’installe sur mon poste. Affaire classée.
Ceci m’amène à dire, lorsque vous êtes en phase d’essais ou de tests, déployez vos corrections rapidement. J’ai souvent vu des projets où les déploiements une fois par semaine ou même une fois par mois. Toutefois, la perception chez l’utilisateur peut s’avérer très négative puisque le bug va être dans leur face pendant toute l’attente. La confiance envers le système risque de perdre des plumes.
Ceci s’applique aussi aux systèmes en production. Les bugs irritent vos usagers et le plus longtemps qu’ils ne seront pas corrigés et déployés, les usagers vont devenir de plus en plus cyniques envers l’application.
J’entends les antagonistes! Vous vous dites que déployer fréquemment risquent de déstabiliser votre application? C’est possible, mais c’est peut-être de votre faute. Avez-vous réfléchit au mode de déploiement de votre application? On est à l’époque du web et de l’instantané. Si pour déployer on doit fermer la salle de serveur pendant 4 heures, vous êtes “out”. Les gens s’attentent que vos systèmes soient disponibles. Vous ragez lorsqu’il y a des travaux routiers? C’est la même chose.
16 décembre 2008 | Publié dans Développement informatique | Aucun commentaires
J’ignore si vous êtes familiés avec le terme “cloud computing” ou pour les amis à l’OLF l’informatique dans les nuages (c’est vraiment le terme, sans farces). Ceci consiste à impartir une portion de vos besoins en logiciels vers des compagnies qui offrent gratuitement or à faible coût l’utilisation de leurs applications (SaaS - Software as a service) ou leur plateforme d’hébergement d’applications sur mesure.
J’ai tombé sur cet article très simple qui explique les avantages pour une entreprise d’opter pour ce genre d’architecture de systèmes. Voici quelques points que j’ai cru bon reprendre:
Et voici quelques points que j’ajouterais:
3 décembre 2008 | Publié dans Développement informatique, Médias sociaux | 1 commentaire
Plusieurs organisations offrent des événements de réseautage et d’échange à leur communauté de membres. J’inclus ici les associations professionnelles, les chambres de commerce, les groupes d’intérêts, les syndicats et les club sociaux. Ces organisation pour la plupart n’ont toujours pas rejoint l’ère du Web 2.0. Pourtant leur raison d’être correspond exactement à la philosophie qui est derrière le renouveau du WWW.
Qu’est-ce que le Web 2.0 ? Il y a malheureusement autant de définitions que de spécialistes en la matière. Toutefois, la concept de partager facilement l’information du web fait consensus.
Les sites web qui diffusent de l’information et la seule rétroaction qui est permise aux internautes c’est d’écrire un courriel dans la page contactez-nous, sont certainement des sites du Web 1.0. Alors que dans le Web 2.0, le partage signifie que le contenu du site est prise en charge partiellement ou entièrement par les internautes et que le contenu peut être facilement envoyé à un tiers.
Est-ce que votre organisation partage ses événements? Est-il facile pour vos membres de découvrir et d’être renseigné sur événements à venir? Pourtant, il existe des technologies relativement anciennes qui se popularisent ces jours-ci pour permettre le partage de votre calendrier d’événements.
Le format iCalendar est un format très répandu qui permet l’échange de données d’un calendrier électronique vers un autre. C’est un fichier en format texte très facile à produire et à lire. Si vous offriez à vos membres un abonnement à un fils iCalendar par lien HTTP à jour de vos événements, ils pourront le visionner dans leur propre logiciel de Calendrier tel que Outlook ou Google Calendar. Au lieu que vos membres viennent vérifier sur votre site les nouveautés, vos nouveautés s’intégreront dans leurs outils quotidien.
lls pourraient alors voir la liste de vos activités à venir à jour. Si un événement est ajouté, il sera ajouté dans leur calendrier. Si un événement est déplacé ou supprimé, ils verront le changement aussi.
Si vous avez déjà un site web avec un calendrier des événements informatisé (géré par un CMS), vous n’avez qu’à créer un simple script dans un language supporté par votre serveur HTTP (.NET, PHP, ASP, etc.). Le script n’a qu’à produire un fichier texte ayant “Content-Type: text/calendar” dans l’entête et encodé en UTF-8. Chaque événement devra être écrit dans un bloc VEVENT avec les infos que vous avez à votre disposition dans votre système actuel. Si vous ne voulez pas le modifier votre CMS ou vous ne pouvez pas, vérifier si vous avez accès en lecture à sa base de données. Le script pourrait lire la base de données directement en outrepassant l’outil de publication que vous avez en place.
Dans le cas que vous n’offrez pas encore un calendrier informatisé, et les dates et description de vos activités sont simplement inscrites dans une page web en texte libre, je vous conseillerais alors de créer un agenda publique sur un site reconnu et gratuit.
Par exemple, vous pourriez créer et maintenir un agenda publique sur Google Agenda. Dans les propritétés du calendrier, vous pouvez le rendre publique et obtenir ainsi le lien URL vers son fils iCalendar. De plus, Google vous offre la possibilité de l’afficher et l’intégrer dans une page de votre site actuel sans avoir recours à la programmation.
Une autre option, c’est de créer chaque événement dans un site tel que Upcoming. Une fois que vos événements sont saisis, il est facile de généré un fils iCalendar basé sur des critères de recherche. Vous n’avez qu’à communiquer l’URL à vos membres (il est disponible sur la page My Events). Aussi, le site d’Upcoming vous offre des “badges” qui s’insère dans l’une de vos pages pour afficher les événements à venir.
En conclusion, les gains promotionnels de vos événements justifient clairement le support à ce format très répandu sur la toile. Il est faux de croire que vos membres visiteront régulièrement votre site pour s’informer. Il faut plutôt ajouter des facilités d’abonnement et de partage d’information sur votre site pour augmenter le rayonnement.
25 novembre 2008 | Publié dans .NET, Qualité | Aucun commentaires
Lorsqu’on travaille en mode waterfall et on est dans le siège du programmeur qui doit réaliser ce qui est rédigé dans le dossier fonctionnel, on fait de notre mieux de le lire et de le comprendre. Toutefois, la programmation objet étant ce qu’elle est, on finit par sauter d’une section à l’autre dans le dossier fonctionnel au risque d’omettre un détail ou une règle d’affaire.
Un truc que j’ai adopté au fils des ans c’est de coller du texte du dossier fonctionnel comme commentaire aux endroits prévus. Je m’explique, si le dossier fait référence à une dynamique lorsqu’on quitte un champ texte, ajoutez la description de la règle d’affaire du dossier comme commentaire dans l’événement LostFocus du champ avec une petite mention TODO (à faire plus tard). Ceci vous assure plusieurs choses:
Pour aider la tâche du programmeur, j’avais découvert un petit Add-In pour Visual Studio et que j’utilise depuis longtemps. Il s’agit de Smart Paster qui permet de coller une chaîne de caractère comme un commentaire, une String ou un StringBuilder.
Si le texte que vous tentez de coller est trop long, il va le couper à 100 caractères (valeur par défaut) et copier la suite sur autant de lignes que nécessaire. Fini les oublis!
1 novembre 2008 | Publié dans Développement informatique, Travailleur autonome, Économie | 2 commentaires
J’habite la région de Québec et la pénurie de main d’œuvre est omniprésente dans tous les secteurs de l’emploi. Le départ à la retraite des baby boomers a donné d’excellentes opportunités d’emploi pour les jeunes de 20 à 35 ans de se dénicher de bons emplois au gouvernement et dans les grandes entreprises de renom de la région. La situation en TI a toujours été difficile, mais la situation économie actuelle quant au marché de l’emploi en général a rendu les candidats en TI encore plus rares.
La pression subie par les PME dans la région de Québec est très forte pour contempler leurs employés actuels et surtout en attirer des nouveaux qui eux ont souvent l’embarras du choix. Ils font face à une féroce compétition qui offre des conditions d’emploi qui peuvent être rarement égalés chez les plus petits employeurs privés.
Plusieurs options s’offrent aux PME en TI pour faire faire à leurs obligations de livrer leurs projets à leurs clients. J’ai assisté à une soirée conférence récemment sur l’immigration de la main d’oeuvre comme solution à considérer. Une autre option est la sous-traitance.
Le marché de la consultation de Québec est traditionnellement orienté vers l’appareil gouvernemental ou les grandes compagnies d’assurances qui siègent à Québec. Leurs projets informatiques d’envergure accaparent la majorité de l’offre en ressources humaines des grandes et moyennes entreprises de consultation informatique.
Toutefois, les PME peuvent se virer vers l’offre en pigistes en informatique. Souvent, les projets variés et avant-gardistes de ces entreprises sont considérés très stimulants pour les consultants indépendants qui oeuvrent dans la région de Québec.
Les avantages de prendre un pigiste
Souvent, nos besoins en informatique sont ponctuels. Nous avons à livrer un projet pour un client et un aspect technique nécessicite un expert pour assurer un respect de l’échéancier. Embaucher un expert est une tâche souvent insurmontable dans l’économie actuelle. De plus, si le besoin est périodique et le projet se termine, l’employeur a à sa charge un employé spécialisé qui deviendra rapidement sous-utilisé et en conséquence surpayé pour l’employeur.
Dans le cas d’un travailleur régulier, la forte demande en main d’oeuvre cause un roulement de personnel chez plusieurs employeurs. Ceci augmente occasionne des coûts aux entreprises. Les coûts administratifs en affichage de poste, en temps de sélection de personnel, en gestion de programmes d’assurance, en achat et configuration d’équipement de travail (ordinateurs, bureau, chaise, licenses de logiciels, etc.), en temps d’apprentissage/formation et plus encore sont très importants. En ressources humaines ont laisse souvent entendre que le coût total d’un employé peut équivaloire jusqu’à 2,5 X le salaire brut. Par exemple, un employé ayant un salaire brut de 45 000$ aurait une charge directe et indirecte qui équivalerait à 112 500$. Ce chiffre correspond à un embauche qui aurait une durée d’un moins un an. Imaginez si cette personne quitte seulement après 3 mois. Les coûts initiaux de son embauche sont à redépenser pour une autre personne. Ouch!
Le pigiste a un seul coût, soit un coût direct qui est son taux horaire. Il n’y aura pas de frais initiaux à moins que vous exigez qu’il travaille dans vos locaux et que vous n’avez pas de bureau où l’asseoir. Il fournit son ordinateur avec ses propres licenses de logiciels. Il chargent que le temps travaillé sur ce que vous lui demandez. Pour un besoin de 3 à 6 mois, cette structure de coût risque de vous coûter moins cher que d’embaucher quelqu’un. Il est un expert et le temps de familiarisation est donc au minimum, il sera utile et très efficace rapidement. Les travailleurs indépendants la plupart du temps sont très expérimentés, ce qui vous assure d’une rapidité d’exécution et d’une qualité supérieure dans la réalisation de ses tâches. Le risque encouru alors réduit au minimum.
Comment fait-on pour trouver un bon pigiste en informatique?
La méthode de base pour trouver un travailleur est d’explorer votre réseau de contacts. Les pigistes ont souvent plusieurs années d’expérience et sont parfois des employés que vous avez déjà embauchés ou des collègues de travail que vous avez apprécié dans la passé. Sinon, parlez-en à vos contacts si ils connaissent des experts indépendants qui seraient familiers dans les technologies dans lesquelles vous oeuvrez. Vous pouvez aussi utiliser des outils comme LinkedIn qui permettent de rapidement chercher dans les profils des contacts de vos contacts. J’ai d’ailleurs écrit pour la JCCQ à ce sujet pour expliquer le fonctionnement de ce site.
Une autre façon efficace est de rechercher sur le web. Plusieurs pigistes ont leur propre site web et l’utilisation judicieuse de mot clés tels que “développeur .net québec” vous permettront de cibler les gens ayant le profil recherché.
La troisième façon est d’accéder aux regroupements de travailleurs autonomes. Il existe l’AQIII qui la plus grande association provinciale de pigistes en informatique qui compte près de 1000 membres. Elle offre un répertoire de membres qui permet de rechercher selon les technologies et méthodologies maîtrisées par ses membres. Elle offre aussi un service d’affichage gratuit d’offre de mandats.
Il existe aussi le site Reptaq qui répertorie des pigistes dans tous les domaines, un répertoire sur le site de la Toile du Québec et le site Pigistes Québec qui a une rubrique informatique.
En conclusion, la sous-traitance est une option parmi quelques autres pour répondre à la pénurie de main d’oeuvre. Il suffit au moins de s’y attarder et demander des soumissions pour être en mesure de juger si cette avenue vous conviendra dans le développement de vos affaires.
10 octobre 2008 | Publié dans Agile | Aucun commentaires
Je suis tombé sur un vidéo pris dans une classe à l’University of New South Wales à Syndey en Australie. Le professeur Richard Buckland a une excellente façon d’enseigner et il peut vous aider à mieux comprendre l’extreme programming de la méthodologie agile.
Le développement traditionnel de type waterfall comprend les étapes d’analyse de besoins, de conception de la solution, de programmation et de tests. On doit prévoir tout à l’avance. Toutefois, cette méthode s’avère très longue et amène parfois les informaticiens à surfaire ce qui était demandé au début.
L’extreme programming se veut une façon de développer rapidement de quoi de simple pour le besoin immédiat. Si le besoin vient à changer, on changera le programme. Si on doit le réécrire, on le fera.
Toutefois, pour assurer la qualité et la non-régression de la solution existante, on doit écrire des tests unitaires automatisés qu’on peut lancer aussitôt la modification est terminée.
Voici la vidéo:
8 octobre 2008 | Publié dans Développement informatique, Qualité | 2 commentaires
Aujourd’hui je suis tombé sur l’émission de François Paradis à TVA. Il avait comme invité un dénommé Joël Ifergan qui poursuit Loto-Québec pour lui avoir refusé le gros lot de 13,5 millions. Il avait la combinaison de 7 numéros de la Super 7, mais il avait la mauvaise date de tirage.
Le monsieur avait acheté son billet à la toute dernière minute avant l’heure de tombée de 21:00 les soirs de tirage. Il avait bel et bien débuté sa transaction avant 21:00 et ce fait a été confirmé par Loto-Québec. Toutefois, la société d’état se fie sur l’heure d’impression du billet et il fut imprimé 7 secondes après 21 heures. Ce délai technique est coutume aux anciens terminaux qui se font remplacés présentement par Loto-Québec.
Toutefois, dans un système informatique lorsqu’on impose des règles fonctionnelles tels qu’une heure limite à l’utilisateur, le délai de traitement de la machine à saucisse ne devrait pas être un paramètre pour ce dernier. Le seul contrôle que le client a c’est l’heure qu’il décide de faire l’achat. L’heure du billet aurait donc dû être l’heure de début de transaction.
Si la transaction est suspendue pour des raisons techniques (ligne occupée, manque de papier dans l’imprimante, lenteur réseau, etc.) ça ne devrait pas modifier la requête initiale du client qui est de participer à un tirage de loterie à une date donnée.
Ceci est la définition pure d’une bogue fonctionnel. Un bogue n’est pas toujours accompagné d’un message d’erreur horrible rouge et clignotant à l’écran ou de fumée qui sort de la machine. Il peut prendre la forme d’un comportement très peu logique, probablement pas documentée, encore moins connu par la société d’état et encore moins par ses commerçants.
J’ignore ce que le résultat sera pour ce procès, mais j’ose croire que si cette subtilité n’a jamais été communiqué à sa clientèle, le juge favorisera le client.
Pour en savoir plus, voici un article sur le site de Cyberpresse.
Copyright (c) 2008 Ovologic Inc.