Archives pour février 2009

L’après Performance Point

23 février 2009

La rumeur a couvé dans les blogs dès le 23 janvier. Elle a vite été confirmée par un communiqué de Microsoft à ses partenaires et communautés le 26 janvier. 

« Microsoft arrête le développement du module planning de Performance Point. »

Mais comment comprendre cette décision ? Comment interpréter cette annonce ? Que faire quand on a un projet en cours, ou à venir, basé sur ce produit ? C’est ce dont nous allons discuter dans cet article en apportant un éclairage sur la roadmap de Microsoft.

 

Tout d’abord, faisons taire les rumeurs les plus folles, Microsoft n’arrête pas la Business Intelligence ! Il y a beaucoup d’autres usages que l’élaboration budgétaire dans la BI. Et bien au contraire, avec l’annonce faite sur Performance Point, Microsoft ne fait que recentrer sa stratégie. En effet, rappelons qu’au cœur de la stratégie Business Intelligence de Microsoft se trouve SQL Server (avec Analysis Services, Reporting Services, Integration Services, le Data Mining, etc.) pour la partie plate-forme décisionnelle et Microsoft Office (notamment Excel et Sharepoint) pour les interfaces utilisateurs.

Evidemment, un éditeur qui arrête un produit, c’est toujours dommageable. Mais quand cet éditeur est Microsoft, avec toute sa puissance, ses lignes de produits, il faut y voir un rééquilibrage. Comme je l’expliquais dans une précédente tribune (http://blog.djeepy1.net/post/2008/12/25/Microsoft-Connect), Microsoft est très à l’écoute de ses clients et des communautés ce qui, j’en suis persuadé, va l’obliger à communiquer plus clairement la nouvelle ligne.

Ca a commencé d’ailleurs aux TechDays, avec une session spéciale proposée par Lionel Billon (Product Manager SQL Server) pour répondre aux questions sur le sujet.

Donc que deviennent les modules de Performance Point ?

Tout d’abord, la partie M&A (Monitoring & Analytics), avec les tableaux de bord et les scorecards, passe dans le giron de Sharepoint (MOSS plus exactement) et ce module s’appellera à terme PerformancePoint Services. C’est-à-dire que si vous avez déjà un portail MOSS (en licence Enterprise CAL avec Software Assurance :-( ), vous n’aurez pas de coût supplémentaire pour mettre en place des tableaux de bord ou faire bénéficier à vos utilisateurs d’interfaces d’analyse sophistiquées. Sinon, c’est le moment d’en profiter et de creuser Excel Services, la GED, le travail collaboratif, etc. ;-).

Concernant la migration, le passage de relais et toutes les questions de mise en œuvre, vous pouvez partir sur le Dashboard Designer actuel qui permet de créer des tableaux de bord déjà sur Sharepoint. Microsoft gardera la compatibilité à terme (ou fournira un outil de migration).

Donc de ce côté, c’est plutôt une bonne nouvelle et je vous encourage à continuer dans vos projet de M&A.

Du côté de la planification et de l’élaboration budgétaire, Microsoft confirme l’arrêt du module tel qu’il est actuellement. Je reste convaincu qu’il ressortira à un moment ou à un autre dans un autre produit ou sous une autre forme mais rien n’a été confirmé. Les pistes sont un mode Open Source sur CodePlex, ou alors un module de Forecasting dans Dynamics. Moi, je parierai bien sur une intégration dans une future version d’Office car l’add-in de saisie et de spreading était pas mal.

Mais il faut se faire une raison, le produit tel qu’il est ne sera pas continué.

Mais rassurons les actuels clients : comme pour tous ses produits, Microsoft assurera un support sur Performance Point pendant 10 ans. Ce sont uniquement les nouveaux développements qui cesseront après la livraison du SP3.

 

Maintenant, une remarque plus personnelle sur ces annonces ; et cela n’engage que moi. Je suis complètement en phase avec ce recentrage. Mettre les tableaux de bord dans MOSS me semble un choix judicieux et cohérent avec le discours Sharepoint et BI global. En plus, cela va dans le sens des réductions de coûts pour le client, et c’est toujours bon à prendre.

Concernant Planning, je crois au bien fondé du produit. J’ai pu assister à une session de formation partenaires chez Microsoft et j’ai été très séduit. Cependant, un point a choqué mon esprit de technicien, c’est la facilité de créer des modèles (et donc des cubes) et la dangerosité engendrée, à savoir se retrouver avec pleins de cubes, qui n’auraient pas forcément les même données et qui pourraient entrainer une complexification de la gestion en terme de maintenance. Un des buts à la base était d’en finir avec le « Excel-Hell » mais si c’est pour se retrouver avec un « Model-Hell » (ou un Cube-Hell). Et puis Planning Server ne permet pas de résoudre la complexité d’intégration des données, à la charge de la DSI.

Donc  l’arrêt de Planning Server m’embête parce que les add-in de saisie Excel sont très bien (même s’il est déjà possible avec un peu de développement d’écrire dans un cube – fonctionnalité WriteBack – depuis 2000) et ce produit permet de vulgariser la modélisation de cube et de DataWarehouse pour un utilisateur métier. Et puis les routines de gestion des conversions de devises, de dé-doublonnage, de revenue sharing, etc. sont très intéressantes. Mais en même temps, si c’est pour mieux intégrer ces modules dans l’écosystème existant (Office, MOSS, SQL Server) moi je dis Banco.

 

J’espère avoir répondu aux questions sur l’avenir de Performance Point Server. S’il en restait, n’hésitez pas à me contacter. Je tâcherais d’y répondre ou de transmettre à qui de droit.

Microsoft TechDays – Présentation générale SQL Server 2008 – DAT113

12 février 2009

Aujourd’hui, j’étais au TechDays, l’événement majeur technique de Microsoft en France.

Comme l’année dernière, j’étais Speaker et cette fois sur la session de présentation générale SQL Server 2008. C’était du level 100, donc assez généraliste mais j’ai pu présenter les avantages de la version 2008 pour les entreprises, les administrateurs, les développeurs, les information workers, etc. sur les sujets que sont la fiabilité, la productivité et la (business) intelligence.

J’ai pu interviewer en direct mon ancien collègue et ami Christophe Laporte, DBA d’Index Multimedia, qui traite des Teraoctets de données en environnement haute-disponibilité, sur les apports qu’il a constaté avec SQL Server 2008 en production. Sa fonctionnalité préférée reste la compression (à tous les niveaux) qui lui fait gagner du temps, de la CPU, de l’espace disque (et du stress en moins).

Il y avait environ 200 personnes à cette session et de nombreuses questions. Merci à Lionel et Patrick de Microsoft pour leur assistance. 

Reporting Services – Obtenir le numéro de semaine

10 février 2009

Comme j’ai une mauvaise mémoire et que je cherche cette expression à chaque fois. Je profite de ma tribune publique pour l’écrire et la partager.

Le but est de récupérer le numéro de la semaine d’une date dans une expression Reporting Services. En fait, je connais bien la fonction à utiliser : DatePart(). Le problème c’est que DatePart prend comme premier paramètre un code identifiant l’élément de la date à récupérer. Et le souci c’est que ce code n’est pas tout à fait le même qu’en T-SQL (qui contient une fonction DatePart aussi) et que la documentation est spartiate à cet égard.

Donc la bonne syntaxe est :

=Datepart("ww", Today())

Pour identifier la semaine, il faut utiliser le code ww (et non wk, w, week, etc.)

Reporting Services – Instruction Switch du moteur d’expressions

5 février 2009

Un petit billet pour rappeler l’utilisation de l’instruction SWITCH du moteur d’expressions de Reporting Services (que l’on soit dans Visual Studio ou dans Report Builder 2.0).

Cette instruction correspond à une instruction CASE (C#, T-SQL) ou Select (VB.NET). Sauf que contrairement aux autres langages, il n’y a pas la gestion du cas par défaut. Je vais vous montrer comment le gérer.

La syntaxe est la suivante :

Switch (
<condition 1>, <valeur 1>,
<condition 2>, <valeur 2>,
<condition 3>, <valeur 3>
)

A chaque fois qu’une condition est satisfaite, la valeur correspondante est retournée, le code étant débranchant. Evidemment, il arrive souvent que vous ne puissiez écrire tous les cas possibles et imaginables. Dans ce cas, il faut écrire la condition par défaut et voici comment je fais personnellement :

Switch (
<condition 1>, <valeur 1>,
<condition 2>, <valeur 2>,
<condition 3>, <valeur 3>,
1=1, <valeur par défaut>
)

La dernière condition étant toujours vraie, elle simule une instruction ELSE (T-SQL) ou DEFAULT (C#, VB.NET).