[ALT.NET] Les Coding Breakfast 2015 ont commencé !

Ça y est, le premier Coding Breakfast Alt.Net a eu lieu hier dans nos locaux !

Malgré des soucis de transport, les pairs ont pu se former et travailler ensemble sur le sujet du jour : « Visualisation d’un Algorithme ».

 

Les solutions sont consultables sur GitHub.

Voir l’annonce : http://blog.goood.pro/2015/01/27/alt-net-la-reprise-des-coding-breakfast/

Voir les coding précédents : http://blog.softit.fr/?tag=/Alt.net

[ALT.NET] La reprise des Coding Breakfast !

Le petit-déjeuner le plus hype de la communauté .NET reprend du service !

Après une riche année 2014 qui a vu la multiplication des activités du groupe Alt.Net en soirée, Jeff et moi relançons la formule petit-déjeuner pour voir si ça intéresse toujours les braves, maintenant qu’il y a plein d’autres alternatives.

Comme le veut la tradition maintenant bien établie, je m’occupe du café, du sujet et des croissants et vous venez avez vos neurones et un PC (ou autre dispositif apte à la saisie de code) et son environnement de dev et tests.

A jeudi ?!

Damien et Jean-François 

— 

PS : pour ceux qui ignorent ce qu’est un Coding Breakfast, c’est une rencontre sympa en formule petit-déjeuner au cours duquel nous travaillons en paires sur un sujet de programmation court pendant 30 à 45 minutes avant de confronter nos solutions et de présenter nos idées en grand groupe.
On ouvre à 8h10 (café + causette) puis on démarre à 8h30 pile. Fin à 9h50 pour décollage et retour à votre boulot à partir de 10h.

Voir les coding précédents : http://blog.softit.fr/?tag=/Alt.net

[Formation] Comment passer du WebForms au MVC sans risque : ASP.NET MVC & Testing

L’ASP.NET MVC est la technologie web .NET depuis plusieurs années maintenant. Cette plateforme nous permet de mieux maîtriser le rendu HTML, le découplage métier/interface et surtout le testing.

Voici donc 2 sujets bien connus de l’équipe et qui tiennent à cœur à Soft’it : les applications web (ASP.NET MVC) et la qualité (testing).

Un de nos clients, Voluntis (éditeur de logiciels dans le domaine médical), a eu une problématique que grand nombre de sociétés rencontrent actuellement : comment passer de l’ASP.NET WebForms à l’ASP.NET MVC sans régression, et sans impacter les utilisateurs.

Même si une application WebForms fonctionne correctement depuis des années, il y a un moment où la dette technique devient un frein aux améliorations et vous coûte plus cher que les évolutions ne peuvent vous apporter.
Nous l’avons constaté avec tous nos clients, il est nécessaire de toujours prendre le temps de rester « aux goûts du jour » afin d’être en mesure de toujours proposer des nouveautés, et surtout de ne pas décourager vos développeurs en travaillant sur des technos « moins sexy ».

L’un des gros avantages du MVC est la facilité à appliquer du test sur la plupart des couches de votre application (Modèle, Contrôleur, voire Vue). Pourquoi ne pas utiliser cet avantage précis pour migrer sans risque ?!

formation-mvc-voluntisC’est sur cette base que nous avons construit une formation sur-mesure pour 10 développeurs/architectes de chez Voluntis :

  • jour 1 : introduction à l’ASP.NET MVC et aux bonnes pratiques, puis exemples de passage du WebForms au MVC
  • jour 2 : introduction à la notion de testing et comment tester une application MVC

La pratique étant le meilleur moyen d’apprendre, chaque jour fut composé en moyenne de 40% d’atelier !

Pour remplir cette mission, nous avons envoyé 2 membres de l’équipe Soft’it :

Marien Monnier
Rémi Lesieur-Bridel

Le résultat : une formation sur-mesure calée aux besoins de Voluntis, un travail exemplaire de Marien et Rémi, une équipe très satisfaite (4/4 au ROTI pour tout le monde) et un client ravi :

De plus, Erwan de Cadoudal (Team leader chez Voluntis, et demandeur de cette formation), nous a fait un témoignage très positif.

Si vous souhaitez faire une formation technique et/ou qualité sur-mesure, contactez-nous.

L’équipe vous souhaite d’excellentes fêtes !

Toute l’équipe vous souhaite à tous – clients, partenaires, fournisseurs, collègues, amis, famille… – ses meilleurs vœux pour cette fin d’année et l’année 2015 à venir.

Nous espérons pouvoir continuer à mettre nos différentes expertises [aussi bien Soft’it que CoActiv, et CLT d’une manière générale] au service de votre développement en étant toujours de vrais partenaires.

Plein de bonnes choses sont à venir pour cette nouvelle année. Toujours plus d’Agilité, de Software Craftmanship, DevOps, d’ALM, Applications/Sites sur-mesure, de Coaching et Formations…

Joyeux Noël, Joyeux Hanoucca et excellente année !

L’équipe Soft’it

DevOps, le monitoring des applications Web comme point d’entrée


De nos jours, les applications web connaissent un boom incroyable. Tout le monde a compris qu’internet est un outil business très efficace qui permet d’augmenter la visibilité de l’entreprise (Marketing), étendre ses marchés (boutique en ligne),…etc.

Voici quelques chiffres sur la situation du commerce en ligne en 2013 :

  • Le nombre des acheteurs en ligne a augmenté de 5% en 2013.
  • La fréquence des achats en ligne est en progression avec une moyenne de 18 transactions par an et par acheteur, contre 16 en 2012.
  • Le nombre de sites marchands actifs a dépassé les 138 000.

* Statistiques avancées par  Elioweb (http://www.elioweb.com/statistiques-e-commerce-france.html)

Donc, contrairement aux débuts d’internet qui étaient constitués de sites vitrines essentiellement. On se retrouve, aujourd’hui, avec des applications Web capables de récolter et de capter les actions des utilisateurs.

Cette révolution a considérablement complexifié les applications Web : logique métier complexe, sécurité, performances…etc.

En outre, de plus en plus d’entreprises abandonnent le développement d’applications lourdes et les remplacent par des applications Web. Cela permet de réduire, voir d’éliminer, les processus de déploiement des applications et des mises à jour sur les postes utilisateurs.
De ce fait, les applications Web apportent un gain de temps considérable et une réactivité presque immédiate quand il s’agit de résoudre des bugs ou de déployer de nouvelles versions.

Du point de vue des équipes informatiques, l’enjeu est énorme. Les applications sont plus complexes, plus sensibles et ont un réel impact financier. Il faut donc avoir un niveau de qualité très élevé en même temps qu’une productivité accrue.

En général, les équipes informatiques sont organisées en plusieurs sous-équipes : les développeurs d’un côté et les opérationnels (administrateurs système, réseau, base de données, messagerie, etc…) d’un autre côté.
Les développeurs ont pour rôle de créer l’application et de la faire évoluer au fil du temps. Ils sont aussi responsables de la correction des éventuels bugs détectés. Les opérationnels, quant à eux, sont responsables de la mise en place des environnements techniques, du déploiement de l’application et du monitoring de l’infrastructure.

Chaque équipe possède ses propres méthodes de travail, ses propres priorités et ses propres métriques.
Cette organisation pose un réel souci pour la collaboration des équipes. Il n’est pas rare de rencontrer l’analyse suivante suite à un problème de performance, par exemple :

  • Admin réseau : « Pas de congestion, tous les routeurs fonctionnent ».
  • Admin système : « Les serveurs ont suffisamment de CPU et de mémoire ».
  • Devs : « Le code de l’application est bon, le même code fonctionne correctement sur l’environnement de pré-production ».

Au lieu de travailler ensemble pour identifier le problème, chaque équipe va analyser le problème de son point de vue et tenter de démontrer que « ça ne vient pas de chez nous »; voire dans certaines cas, essayer de mettre en cause les autres équipes. Mais, malheureusement, il y a bien un problème du point de vue des utilisateurs.

Ce genre de situation peut coûter cher à l’entreprise : perte de clients pour un site e-commerce, planification de stock erronée pour une usine, etc….

Afin d’éviter de tomber dans ce type de situation, une entreprise doit faire évoluer sa culture pour se concentrer sur l’humain, l’organisation du travail et le bon choix des outils de gestion du cycle de vie des applications et des infrastructures.

Cette culture est le cœur même de la philosophie DevOps visant à rapprocher les équipes Dev et Ops. Ce rapprochement permettra aux équipes de communiquer plus efficacement, de partager les mêmes objectifs et de réfléchir continuellement aux différentes pistes d’améliorations de leur travail.

La Journée DevOps Day, qui a eu lieu le 25 novembre 2014 à Paris, s’est penchée sur la problématique de mise en place du processus DevOps dans les projets informatique (voir l’article Tour d’horizon du Microsoft DevOps Day – « Infrastructure as Code » pour avoir une idée sur le contenu de cette journée).

La mise en place d’une culture DevOps au sein d’une entreprise nécessite un travail de sensibilisation et de conviction des équipes. Il ne s’agit pas d’installer un outil, mais de changer complètement les mentalités, la façon de travailler des collaborateurs voire même l’organisation des équipes. Toute tentative de mise en place d’une culture DevOps par simple décision émanant de la direction subira inévitablement un échec et engendrera plus de méfaits que de bienfaits ; la conduite du changement a une place prépondérante ici.

La notion de DevOps est une notion vaste qui couvre tout le cycle de vie d’une application, de son développement à sa mise en production en passant par les différents environnements techniques. Il est vital de mettre en place le processus DevOps de façon graduelle. Vouloir adopter ce processus dans tous les aspects du cycle de vie applicatif en même temps peut s’avérer complexe, voire même périlleux.

Un point d’entrée intéressant pour la mise en place de DevOps est le monitoring des applications déjà en production. Les équipes Dev et Ops pourront coopérer pour mieux réagir aux problèmes rencontrés sur les applications en production.
Le monitoring est, en fait, un bon point de coopération pour les Dev et les Ops. Un mauvais comportement d’une application engagera la responsabilité des Dev et des Ops en même temps. Si les deux parties sont convaincues qu’ils forment la même équipe, ils mettront toutes leurs compétences et leur énergie pour améliorer le processus de monitoring :

  • Choix des bons outils qui reflètent le réel état des applications.
  • Mettre à disposition des Devs des rapports afin qu’ils puissent anticiper les éventuels problèmes lors des prochaines versions.
  • Collaborer en temps réel pour la résolution des problèmes urgents
  • …etc

Se baser sur le monitoring pour une première mise en place de DevOps a pour avantage de démontrer l’intérêt de cette approche (applications plus stable, réaction plus efficace aux problèmes de production…etc.) et, donc, de faciliter son adoption pour les autres étapes du cycle de vie applicatif.

Cela-dit, il faut garder à l’esprit que le DevOps n’est pas un objectif en soi, mais une quête vers une amélioration continue de la collaboration des équipes Devs et des Ops.
La façon de mettre en place DevOps varie inévitablement d’une entreprise à une autre, voire même, d’un service à un autre au sein d’une seule et même entreprise. C’est un processus lent qui nécessite beaucoup de patience et une implication sans failles des différents acteurs.

Cependant, une fois sur les rails, DevOps apportera énormément à l’entreprise: des équipes soudées, un environnement de travail sain et des livrables de meilleur qualité, donc, des utilisateurs satisfaits [et il faut malheureusement trop souvent rappeler que c’est ce pourquoi nous travaillons tous].  

[ALT.NET] Coding Chocolate, encore un succès


(Invité par Albert Enstein, la classe!)

Le dernier Coding Dojo 2014 organisé en partenariat avec ALT.NET s’est parfaitement bien déroulé, dans les locaux de CLT Services.

Au menu : des chocolats (beaucoup), du chocolat (chaud Robocup), un vrai sapin (dénommé Robert) et un ASCII sapin (avec des calculs)
 

 

Un excellent moyen de terminer l’année en réchauffant ses neurones.

Vous pouvez retrouver la solution aux katas sur le GitHub suivant : https://github.com/dthouvenin/alt-net-fr-katas/tree/master/2014-12-02%20Coding%20Chocolate
Nous invitons les participants à y joindre leur solution.

Toujours un plaisir de vous recevoir. See you next year !

Pour revoir les codings précédents : http://blog.softit.fr/?tag=/Altnet

Soft’it monte en compétence sur AngularJS !

Chez Soft’it, la connaissance est bien plus qu’un simple mot. En tenant compte aussi bien de notre Expertise .Net, Coaching qualité ou encore de nos formations, les collaborateurs de Soft’it se mettent régulièrement à jour en matière de nouvelles technologies.

Force est de constater que le nouveau framework JavaScript de Google (AngularJS) s’immisce dans tous les nouveaux projets Web actuels; l’équipe estime que cette technologie doit être impérativement maîtrisée par tous les membres pour garantir des applications Web de plus en plus robustes et puissantes.

Pour la toute première fois sur Paris, le site ng-workshop propose une formation AngularJS du 3 au 5 décembre incitant les développeurs à s’appliquer sur la qualité plus que sur la quantité dans leurs projets.
Pour vous donner un avant-goût des futurs articles que nous ferons autour d’AngularJS, nous aborderons durant la formation des sujets tels que  :

Construire et tester une
application
Communiquer avec un serveur backend
Sécuriser votre application
Internationaliser une application
AngularJS
Packager et déployer son application AngularJS

 Trois membres de l’équipe Soft’it vont participer à cette formation :

Bien évidemment, ces trois personnes se feront un plaisir de vous rédigez plusieurs articles sur cette formation pour vous donner l’envie de découvrir ce framework indispensable à l’avenir du développement Web 🙂

Mobile Dev Day 2014 : Soft’it en force !

.equipe main .detail div .profil {
width: 22%;
float: left;
margin-right: 2.6%;
margin-bottom: 2.6%;
border: 1px solid #ccc;
position: relative;
background: #ec6707;
font-weight: 400;
}

.equipe main .profil .photo {
width: 100%;
height: auto;
position: relative;
display: block;
z-index: 100;
border-bottom: 5px solid #ec6707;
}

.equipe main .profil .texte {
margin: 0 auto;
top: 0;
height: 100%;
width: 100%;
padding: 8%;
position: absolute;
z-index: 101;
color: #ec6707;
}

.equipe main .profil .texte h3 {
margin-bottom: 35px;
margin-top: 0;
font-family: « Georgia »,arial;
font-weight: normal;
font-size: 1.375em;
cursor: default;
}
.equipe main .profil .texte span {
text-transform: uppercase;
font-size: .75em;
font-weight: bold;
cursor: default;
}

@media screen and (max-width: 800px) {
.equipe main .detail div .profil {
width: 31.6%;
margin-right: 2.6%;
}
}

@media screen and (max-width: 600px) {
.equipe main .detail div .profil:nth-child(odd) {
margin-right: 2.6%;
}

.equipe main .detail div .profil {
width: 40%;
}
}

@media screen and (max-width: 400px) {
.equipe main .detail div .profil {
width: 100%;
margin-right: 2.6%;
}
}

« LA » conférence annuelle Microsoft dédiée au développement mobile se tiendra ce jeudi 27 novembre, à Mons en Belgique.

Une journée d’inspiration !

Le Mobile Dev Day est un événement annuel dédié au développement mobile sur plateforme Microsoft. Développement mobile au sens large du terme, de l’embedded jusqu’aux tablettes en passant par les Windows Phone. Créé à l’initiative de 4 passionnés, cet événement se veut convivial, avec des sessions atypiques

10 speakers, 11 sessions, 8 MVPs, et un top développeur de chez Microsoft Corp.

Les thèmes abordés seront les suivants : Mobile, UX Design (« User eXperience » design), Cloud Computing et Internet of Things (objets connectés).

La diversification des sujets, associée aux pointures du monde MS, permet d’amener des conférences originales et singulières :

  • « Le développement d’applications Google Glass en C# avec Xamarin » : plus besoin de développer en Java pour utiliser les Glass !
  • « IoT, toilet flushes and scalability » : comment connecter son Twitter à ses toilettes, et tweeter à chaque (grosse) commission ???!
  • « Mais c’est quoi le Random ? » : dompter l’aléatoire via du hacking
Des sessions plénières et 2 tracks : Français et Anglais. A noter que Scott Hanselman, Rudy Huyn et plusieurs autres MVP speakeront…ça promet !
Nous serons 4 membres de l’équipe Soft’it à faire le déplacement pour suivre la conférence :
Marien Monnier

Marien
Monnier

Aimerick Suzanon

Aimerick
Suzanon

Philippe Beroucry

Philippe
Beroucry

Pier-Lionel Sgard

Pier-Lionel
Sgard

Nous tenterons de vous faire partager cette journée autant que possible via Twitter ou Facebook de Soft’it. Puis des articles seront écrits par l’équipe après la conférence pour vous résumer tout ça.

Pour nous suivre : 

window.twttr = (function (d, s, id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src= « https://platform.twitter.com/widgets.js »;
fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
}(document, « script », « twitter-wjs »));

Pour plus d’infos sur l’événement :

Et un aperçu de la version 2013 :

Introduction à la gestion des cycles de vie des applications (ALM)

Introduction à la gestion des cycles de vie des applications

(Application Lifecycle Management – ALM)

       ….

Evidemment, dit comme cela, cela peut paraître un peu abrupte voire déconcertant … Cycles de vie des applications  – Application Lifecycle Management. Mais sous ce nom se cache en réalité l’une des meilleures pratiques logicielles dont l’objectif est de fournir un logiciel de haute valeur et de haute qualité, et ce d’une manière très efficace, rapide et fiable

Quelles sont les différentes étapes de l’ALM ? 

D’un point de vue du développeur, il est courant de penser que le cycle de vie d’un logiciel commence et s’arrête lors du checkout et du commit des modifications du code. 

La réalité est tout autre, comme nous le voyons tous les jours, et couvre beaucoup plus. 

Le cycle de vie des applications commence à partir de la création du projet jusqu’à la livraison en production, comprenant plusieurs étapes dont le développement n’est qu’une petite partie parmi, entre autres, les tests, les documentations et la génération d’installateurs. 

L’ensemble de ces opérations permet de livrer un logiciel de haute valeur et de haute qualité pour le client.

Ce schéma montre le pipeline de déploiement idéal. On y retrouve l’ensemble des opérations automatisées à mettre en place lorsqu’on parle d’ALM.
Le processus est entièrement automatisé, capable de fournir un feedback détaillé de son statut et de celui de ses opérations, et de s’interrompre à chaque étape en cas de détection d’anomalies.
Bien loin de ce déroulement idéal, le plus souvent, il est fréquent que la plupart de ces opérations soient manuelles, partielles et sans fournir de réel feedback.
Même si maintenant il est largement admis que le code source doit être hébergé dans un outil de contrôle de version, et que chaque développeur doit faire des check-out et commit réguliers, il est encore très rare de trouver une plateforme d’intégration continue réelle automatisée, qui gère ne serait-ce que la compilation automatique et le déroulement des tests unitaires. 
A la place, il est fréquent qu’il y ait des flux allant dans toutes les directions, sources de risques et de problèmes à venir, comme le montre le schéma ci-dessous  : 

Quel est le problème avec la livraison de logiciels ? 


  1. Les opérations sont nombreuses, souvent manuelles et sur différents environnements techniques mal maitrisés,
    • Le corollaire est que ces opérations dépendent de quelqu’un (responsable déploiement, chef de projet, expert quelconque). La question est donc : que se passe t’il lorsque cette personne est absente
    • extrêmement répétitives, ces tâches sont une plaie sur le long terme,
    • la réalisation d’une documentation souvent lourde est nécessaire,
    • une courbe d’apprentissage lente pour l’ajout de nouveaux membres à l’équipe,
    • des besoins humains supplémentaires sont nécessaires à l’équipe

  2. Le code source et les paramétrages ne sont pas nécessairement stockés dans le même endroit, mais peuvent être générés à partir de partout et par n’importe qui, n’importe quand : qui contrôle quoi ?
  3. Aucune vraie traçabilité,
  4. Des délais de livraison très long : il peut se passer des jours entre la validation et le déploiement,
  5. Des erreurs sont plus enclines à apparaître. 
En bref : lorsqu’il y a des opérations manuelles, il devient vraiment difficile de répéter, de cadencer et de mesurer la livraison. 

Quels sont les objectifs de l’ALM ? 

Comme vous l’aurez compris maintenant : implémenter l’ALM c’est principalement se concentrer sur l’automatisation de la grande majorité (sinon la totalité) des opérations ; afin d’assurer la création de valeur et des livraisons fiables, rapides et cadencées.
L’idée maîtresse est de réduire les temps de cycle.
Plus le temps de cycle est court, plus le client pourra être satisfait (par plus de fonctionnalités ou même par des corrections de bugs). L’objectif est de favoriser les feedbacks rapides.

Comment? 

Etant donné que cet article est seulement une (très) courte introduction, nous ne plongerons pas plus à fond dans les détails ici. 
Nous énumérerons simplement les différents sujets à couvrir. Ceux-ci seront expliqués plus en détails dans de prochains articles :
  1. Configuration et installation d’un outil d’intégration continue (TFS, Hudson, CruiseControl), 
  2. Mettre au cœur de l’outil l’analyse de qualité (règles de gestion, Sonar, FxCop) ainsi que les tests, le tout avec de l’automatisation, 
  3. Mettre sous contrôle de source tous les paramètres ou fichiers de configuration pour tous les hôtes cibles, 
  4. Lister toutes les autres opérations manuelles, les automatiser et les chaîner entre elles,
  5. Modifier le processus de développement pour s’appuyer davantage sur les tests d’acceptation,
  6. Réduire les délais de feedback (testeurs, clients ….). 

Conclusion 

Cet article n’est que le premier d’une série d’articles introduisant les principes de ALM (intégration continue, déploiement continu…etc). Il vise à présenter simplement ce qui est en jeu tout en abordant les grands principes du cycle de vie des applications.
Dans les prochains articles, nous expliquerons plus en détail avec de cas concrets d’utilisation et d’implémentation, les scénarios de mise en place de l’ALM.

Liens utiles

ALM (sur wikipedia) : pour une explication simplifiée.
Intégration Continuela définition par M. Martin Fowler
Déploiement Continu : la définition par M. Martin Fowler