<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Michel Baladi on software : ISV</title><link>http://blogs.msdn.com/baladi/archive/tags/ISV/default.aspx</link><description>Tags: ISV</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>I'm moving on...</title><link>http://blogs.msdn.com/baladi/archive/2007/03/30/i-m-moving-on.aspx</link><pubDate>Fri, 30 Mar 2007 12:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1993284</guid><dc:creator>mbaladi.net</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/baladi/comments/1993284.aspx</comments><wfw:commentRss>http://blogs.msdn.com/baladi/commentrss.aspx?PostID=1993284</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;After a&amp;nbsp;six and a half year career at Microsoft, first as a principal consultant in Microsoft Consulting Services and later as Architect and Technical Lead in the EMEA Microsoft Innovation Centre (MIC) in Denmark, it is time fo me to move on.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Lately I have been working almost exclusively with innovation and software as a service (SaaS, and now it's time for me to stand on my own legs and practice what I hav been preaching. As of April 1st I will be doing free-lance consulting (mainly SaaS related)&amp;nbsp;and also go back to my roots by starting a SaaS ISV with a couple of friends.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;From April 1st, my blog will live at &lt;A href="http://blog.baladisoftware.net/"&gt;http://blog.baladisoftware.net&lt;/A&gt;&amp;nbsp;and my web site will be living at &lt;A href="http://www.baladisoftware.net/"&gt;http://www.baladisoftware.net&lt;/A&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;I'll talk about the remaining two sceanrios in the SHP from there...&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri size=3&gt;m_&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1993284" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/baladi/archive/tags/Innovation/default.aspx">Innovation</category><category domain="http://blogs.msdn.com/baladi/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/baladi/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/baladi/archive/tags/ISV/default.aspx">ISV</category><category domain="http://blogs.msdn.com/baladi/archive/tags/Identity/default.aspx">Identity</category></item><item><title>Independent. Sure, but at any price?</title><link>http://blogs.msdn.com/baladi/archive/2006/02/14/independent-sure-but-at-any-price.aspx</link><pubDate>Tue, 14 Feb 2006 18:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:531828</guid><dc:creator>mbaladi.net</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/baladi/comments/531828.aspx</comments><wfw:commentRss>http://blogs.msdn.com/baladi/commentrss.aspx?PostID=531828</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;When we talk architecture we talk in abstractions. We say we need capabilities such a persistent storage, document editing or a portal. We may say that the characteristics of the persistent store should be relational, but we don’t say SQL Server. For portals we may say we have capabilities such as collaboration, workflow, subscription and audience targeting, but we never say SharePoint.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;The most common example where ISVs do technology abstraction is in the data and data access layers. Most of the ISVs I meet have implemented some kind of database abstraction layer 10+ years ago that talks with any database in a generic fashion such as through ODBC. Today ISVs build similar layers with .NET using its specialized providers that talk natively with most commercially available databases. Since the providers all implement the same interfaces and .NET now includes the &lt;SPAN style="mso-bidi-font-weight: bold"&gt;DbProviderFactory&lt;/SPAN&gt; class, it’s easy to abstract the database away using a &lt;A href="http://en.wikipedia.org/wiki/Factory_method_pattern"&gt;factory pattern&lt;/A&gt;. With the Data Access Block in &lt;A href="http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;Enterprise Library&lt;/A&gt; we even provide a sample implementation such data access layer using factories. The question is if you &lt;I style="mso-bidi-font-style: normal"&gt;really&lt;/I&gt; want to do this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;From an architectural perspective it looks great at first sight. The ISV builds their applications and let the customers choose any database vendor. The ISVs application will run on top of whatever the customer decides to buy. Customer gets a choice and the ISV broadens its potential market. What’s wrong with that?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;The problem as I see it is that we restrict ourselves to the least common denominator across the vendors when we do these abstractions. If we only treat the database as a place to persist an object oriented domain model, we discard millions of R&amp;amp;D dollars that the vendors have put into new features and abstract them away in order to be independent. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;If the data store was the only parameter, it may have been ok but if we restrict ourselves for the relational data store, for the document editing/viewing tool, for the portal system, for the forms editing system, for the handheld device and so on we end up with a solution that is too generic and too loosely coupled to win the hearts of the users. I would argue that the user could get a better experience if certain ISV products where tightly coupled a specific platform or a particular vendors products.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;Looking at the numbers (lines of code, time to market etc) that I hear from the ISVs that have visited me in the development centre the past 18 months, the level of integration and functionality isn’t the only thing that is suffering. The ISVs also spend an awful amount of time and money building generic wrappers and abstraction layers to build something that comes in the box in a specific Microsoft implementation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;For a conceptual architecture, I think it’s great to talk in abstractions and capabilities. However, when the architecture evolves from conceptual to logical and physical, we need to make a platform decision.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;I would claim that for many applications, both the ISV and the users would be better of with a platform &lt;B style="mso-bidi-font-weight: normal"&gt;dependent&lt;/B&gt; version. To offer customers a platform choice and to broaden the potential market, the ISV would benefit from implementing multiple platform specific applications. The typical objection is that it will be too expensive to develop and maintain, but looking at the numbers that I have heard past 18 month, I really doubt it. Developing two solutions sounds worse than developing one. But what if you can only use what is common between platforms and on top of that need to write and maintain many thousands of lines of code to build generic wrappers and abstractions to iron out the differences instead of just using what came free in the box.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: DA; mso-bidi-language: AR-SA"&gt;I would argue that, in many cases, developing and maintaining two solutions is both faster and cheaper than developing one and, as a bonus, it would provide a better experience for the user.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=531828" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/baladi/archive/tags/ISV/default.aspx">ISV</category></item><item><title>New architecture community on MSDN for ISVs</title><link>http://blogs.msdn.com/baladi/archive/2006/01/08/new-architecture-community-on-msdn-for-isvs.aspx</link><pubDate>Sun, 08 Jan 2006 19:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:510571</guid><dc:creator>mbaladi.net</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/baladi/comments/510571.aspx</comments><wfw:commentRss>http://blogs.msdn.com/baladi/commentrss.aspx?PostID=510571</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;Today we have launched a new architecture community primarily for solution architects working for Independent Solution Vendors (ISVs). &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;The goal of this community is to create a forum where architects from Independent Solution Vendors (ISV’s) can discuss solutions architecture and how to implement these using the Microsoft platform. Since no application is an island, topics can also include Identity and Access management, how to integrate and interoperate with other platforms and systems as well as other topics architects care about such as security, related tools and processes.&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;I’ll be monitoring and facilitating discussions in that forum together with subject matter experts from the MTC team. You can find the new forum at &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;&lt;A title=http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=231&amp;amp;SiteID=1 href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=231&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=231&amp;amp;SiteID=1&lt;/A&gt;.&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-GB"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=510571" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/baladi/archive/tags/ISV/default.aspx">ISV</category></item></channel></rss>