<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-330508899710115471</atom:id><lastBuildDate>Sun, 13 Dec 2009 23:41:06 +0000</lastBuildDate><title>From fragile to agile....</title><description>Talk about software architecture, patterns and development methodologies and the challenges being faced in their adoption.</description><link>http://hassansyed.blogspot.com/</link><managingEditor>noreply@blogger.com (Hassan)</managingEditor><generator>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/blogspot/fmQD" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-2878346492035188813</guid><pubDate>Thu, 18 Jun 2009 05:35:00 +0000</pubDate><atom:updated>2009-06-18T15:36:15.181+10:00</atom:updated><title>Bing it or Bung it? Google it.</title><description>&lt;p&gt;&lt;strong&gt;Yes it is beta but…..&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is in continuation of &lt;a href="http://hassansyed.blogspot.com/2009/05/kumo-bing-can-it-take-on-google.html"&gt;my previous post&lt;/a&gt;. Although Bing it is still in Beta but it really surprises me how could Microsoft release such a half cooked product. As I understand beta version means a software that has been tested internally, found stable,&amp;#160; worked as required and released as beta so that if some something missed from the testing team could be captured by early users. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;the test,&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Search mvc.net 1.0 in Bing and Google, search results look ok (better than Live Search), &lt;a href="http://hassansyed.blogspot.com/2009/05/kumo-bing-can-it-take-on-google.html"&gt;see my previous post&lt;/a&gt; on Google and live search comparison&lt;/p&gt;  &lt;p&gt;2. Frequently when I search technical stuff I go straight to images to find an architectural document as ‘ a picture is worth thousand words’. So I did the same in Bing and Google and my jaw dropped – () .&lt;/p&gt;  &lt;p&gt;3. I searched for ‘Mvc.net 1.0’. Bing came with only three images, not relevant to search, while Google came with 1470 very relevant images. Clicked on Video &amp;amp; news, not result found in Bing, Google came with loads of videos as well as relevant news items. &lt;/p&gt;  &lt;p&gt;4. To make it easy , modified the search to just ‘mvc.net’ , images came in greater number but more than 90% irrelevant while Google came with about 90% relevant!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sorry Bing,&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For search engine war, Microsoft can’t win with their old strategy of ‘Early to market &lt;em&gt;&lt;u&gt;with bugs’&lt;/u&gt; . &lt;/em&gt;They could win with products like Office, windows and SharePoint etc where there is not that stiff competition but taking on Google Search is something different. So I still go for ‘Google it’&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-2878346492035188813?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2009/06/bing-it-or-bung-it-google-it.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-5764139472036833967</guid><pubDate>Wed, 20 May 2009 23:48:00 +0000</pubDate><atom:updated>2009-05-21T17:29:16.359+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">News</category><title>KUMO (BING), Can it take on Google?</title><description>&lt;strong&gt;the latest,&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Microsoft is expected to show the first preview of its new search engine BING code named &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Kumo&lt;/span&gt; next week.&lt;br /&gt;&lt;br /&gt;From very brief details available online it looks that it is going to fix a basic shortcoming (when compared with google) i.e. search results categorization. Also at the moment google shows up the results with images and videos for your search while Live Search doesn't .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Following is a brief summary from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;eweek&lt;/span&gt;.com &lt;a href="http://www.eweek.com/c/a/Search-Engines/Microsoft-to-Unveil-Kumo-a-New-Search-Engine-432673/"&gt;Microsoft to Unveil &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Kumo&lt;/span&gt;, a New Search Engine&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;"&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Kumo&lt;/span&gt; will organize search results in an efficient way, grouping them into sub-categories, and represents an upgrade from Microsoft’s Live Search. For example, if you do a search of "Audi S8," it will feed back results categorized under "Audi S8 Parts," "Used Audi S8," "Top images for Audi S8," and "Top video for Audi S8." In theory, this will result in faster searches, sparing the community from having to sort on their own through pages of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ungrouped&lt;/span&gt; hyperlinks. Microsoft has been testing the search engine internally for months, according to several different published reports. &lt;/span&gt;"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After reading the news I asked myself 'Why do I like Google?' The first immediate answer was its interface was so simple and came out with that simplicity when the other search engines home pages were loaded with tons of crap (news, weather, sports, entertainment etc).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;how google search differs from live search?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;I spotted few differences when I ran a search for 'asp.net &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;mvc&lt;/span&gt;'. There is one &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;serious&lt;/span&gt; issue with live search that could be spotted very quickly. Both Google and Live search came with similar results but the description of the search results were totally different. Where google was showing the text that was related to the search context, Live search was showing the site description instead. Of course I do not need to see the description of the site as whole, I am more interested to see if there is something promising enough for me in the site making me click and open the web page. This alone is enough for me in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;preferring&lt;/span&gt; google over Microsoft Live search, lets wait and see if they have fixed this in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;KUMO or not&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;see yourself,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5338063620863645330" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 315px; CURSOR: hand; HEIGHT: 266px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_RrIGgmCdaSo/ShSclLYDVpI/AAAAAAAAAfg/3kbXmy7y7CM/s320/asp+net+mvc+google.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5338063076324895698" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 352px; CURSOR: hand; HEIGHT: 278px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_RrIGgmCdaSo/ShScFez5a9I/AAAAAAAAAfY/aqM5ejuwRyY/s320/asp+net+mvc+live.jpg" border="0" /&gt;&lt;br /&gt;Further more, from &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;aesthetic&lt;/span&gt; point of view, leaving space on left side as blank in Live search results page doesn't look good to eyes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-5764139472036833967?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2009/05/kumo-bing-can-it-take-on-google.html</link><author>noreply@blogger.com (Hassan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_RrIGgmCdaSo/ShSclLYDVpI/AAAAAAAAAfg/3kbXmy7y7CM/s72-c/asp+net+mvc+google.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-7667602692585755245</guid><pubDate>Mon, 18 May 2009 02:14:00 +0000</pubDate><atom:updated>2009-05-18T12:20:51.047+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><title>Software development - A to Z</title><description>&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;A picture is worth a thousand words&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OfgfnZZdMlI&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OfgfnZZdMlI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-7667602692585755245?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2009/05/software-development-to-z.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-1842666960549318782</guid><pubDate>Tue, 05 May 2009 05:40:00 +0000</pubDate><atom:updated>2009-05-07T13:59:25.810+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>MIX09 - Its all about Silverlight</title><description>&lt;div&gt; &lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;MIX09 - Keynote&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I recently watched Scott Gu's keynote speach at MIX09 conference (called MIX because its audience are a mix of designers and developers). I found it informative and interesting. Here you can watch it &lt;a href="http://videos.visitmix.com/MIX09/KEY01"&gt;MIX09 Keynote&lt;/a&gt;, or &lt;a href="http://arstechnica.com/microsoft/news/2009/03/mix09-roundup-of-first-keynote-announcements.ars"&gt;click here &lt;/a&gt;for a quick roundup&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;what is all about?&lt;/span&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Intros and demos, mostly around Silverlight and related technologies&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;brief list of topcs:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Advancing User Experiences ASP.Net MVC 1.0&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ASP.Net 2.0 &amp;amp; VS 2010&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Expression Web 3 (with &lt;a href="http://blogs.msdn.com/xweb/archive/2009/03/18/Microsoft-Expression-Web-SuperPreview-for-Windows-Internet-Explorer.aspx"&gt;Superpreview &lt;/a&gt;demo and it was really superb)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/616/introducing-the-microsoft-web-platform-installer/"&gt;Microsoft Web Platform Installer&lt;/a&gt; (nice handy tool to get downloads from &lt;a href="http://www.microsoft.com/web/gallery/"&gt;Web application gallery&lt;/a&gt; from a single window)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://silverlight.net/getstarted/silverlight3/default.aspx"&gt;Silverlight 3&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt; &lt;span style="font-style: italic;"&gt;Netflix demo&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;   Smooth video streaming, bitrate throttling&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;   Beijing 2008 Olympics and Silverlight&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;   WorldWide telescope (just got mentioned but I love it &lt;a href="http://www.worldwidetelescope.org/"&gt;ttp://www.worldwidetelescope.org&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;    40k smaller than silverlight 2&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;StackOverflow website (not that impressed though)&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;&lt;a href="http://electricbeach.org/?p=145"&gt;Sketchflow&lt;/a&gt; :&lt;a href="http://www.microsoft.com/expression/try-it/blendpreview.aspx"&gt; Expression Blend 3&lt;/a&gt; (Impressive for creating quick demo for analysis and design purposes, love it), export sketches to word document !!, integration with Adobe tools, Advanced graphics and lot more&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;MIX09 Videos&lt;/span&gt;,&lt;br /&gt;&lt;a href="http://videos.visitmix.com/MIX09/All"&gt;Complete list of MIX09 sessions and videos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;a tip,&lt;/span&gt;&lt;br /&gt;If you are installing Silverlight 3 then better removew all previous versions of Silverlight and first install VS2008 SP1 otherwise you may have a lot of trouble in installing Silverlight 3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-1842666960549318782?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2009/05/mix09-its-all-about-silverlight.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-4804204187226936562</guid><pubDate>Mon, 03 Nov 2008 01:49:00 +0000</pubDate><atom:updated>2008-11-03T12:51:58.477+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>WCF Performance: Don't take it for granted</title><description>&lt;p&gt;&lt;strong&gt;Conclusion first,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Our Challenge:  300 user base, when users execute complex search queries that will go through wcf services and for that our db would take more time than usual in executing the searches then other users will experience significant delays while interacting with the system. They will get web service calls timing out but you find CPU, RAM and other hardware resources were underutilized on IIS and DB box.&lt;/p&gt;&lt;p&gt;Solution: &lt;/p&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;By default WCF can't serve more than a limited number of concurrent users or requests. OUT of box WCF comes with conservative performance settings and in most of the cases you will have to tune WCF services yourself. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;the key parameters that are to be set in services config file&lt;/p&gt;&lt;pre&gt;&amp;lt;serviceThrottling maxConcurrentCalls="Integer"&lt;br /&gt;    maxConcurrentInstances="Integer"&lt;br /&gt;    maxConcurrentSessions="Integer" /&amp;gt;&lt;/pre&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;basic http bindings for WCF web services provide almost double the performance as compared to secure http bindings &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;MS products, ready to use:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We developed the application based on WCF web services but didn't realize that we should be thinking of tuning WCF before going into production, we took it for granted that things would go normal as they used to do with other ms products (like .net runtimes, IIS etc) simply because we did not have a very large user base but what we did not know was that WCF came out of box tuned for a very limited set of users.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;the key config parameters ,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;if your application is running in an environment where WCF services perform some blocking operation (because of some dependency on external processes like db or file read/write operations ) then you should consider setting the following parameters appropriately in the services config file.&lt;/p&gt;&lt;h6&gt;&amp;lt;serviceThrottling maxConcurrentCalls="Integer"     maxConcurrentInstances="Integer"    maxConcurrentSessions="Integer" /&amp;gt;&lt;/h6&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Me and my mate Merill worked together on this task and he was the first who detailed what we did in his blog, so instead of duplicating I refer to his post,  check this nice article &lt;a title="http://merill.net/post/2008/10/WCF-Performance-Optimization-Tips.aspx" href="http://merill.net/post/2008/10/WCF-Performance-Optimization-Tips.aspx"&gt;http://merill.net/post/2008/10/WCF-Performance-Optimization-Tips.aspx&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Stay tuned,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;However beside tuning WCF, I have learned another lesson. The degrade in performance might not due to a single factor but may be a combination of factors when combined give rise to the problem. Trying fixes one by one might not give you a success, leaving you scratching your head. My next blog will on how to attack a slow performing application and what to look for &amp;amp; where, so stay tuned.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-4804204187226936562?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/11/wcf-performance-don-take-it-for-granted.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-3224204032004600906</guid><pubDate>Mon, 30 Jun 2008 05:47:00 +0000</pubDate><atom:updated>2008-07-01T10:21:08.790+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>Bridging the gap: Business and IT</title><description>We know the people who give requirements called 'Business' and the people who develop the requirements the 'Developers'. Also we &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;know&lt;/span&gt; that there is another group of people who work as coordinators among these two groups and called 'Analysts'.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The challenge,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;analysts&lt;/span&gt; the major challenge is to make both 'business' and 'developers' happy. They deal with the people who want to stick with their guns and hard to change their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;opinions&lt;/span&gt;. Business just believe in getting whatever they want 'somehow' and Developer whatever they 'understand' to deliver is to deliver with the technology they know the best. The analysts have to master the art of communicating to both the groups in their own language.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;What happens in the real world,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Analysts might come from one of two backgrounds; IT developers with strong communication and problem solving skills or Business people with strong management and understanding skills.&lt;br /&gt;&lt;br /&gt;A successful analyst would be the person who attempts to see the picture from the other side.&lt;br /&gt;Limiting the focus to the areas they know best do not deliver the results.&lt;br /&gt;&lt;br /&gt;For instance, an analyst with background in business may attempt to force the development team to cut the crap ("methodology and processes") and deliver fast. On the other hand an analyst with expertise in IT may try to focus more on technical solution (tools and technology and methodology) than functional solution (the process and achieving the value), stressing the quality of the software.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;recipe&lt;/span&gt; for success,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;DOs&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Realistic&lt;/li&gt;&lt;li&gt;Quality of software and processes does matter&lt;/li&gt;&lt;li&gt;Business people needs solution to their business problems&lt;/li&gt;&lt;li&gt;Developers want clarity so remove ambiguity from requirements as much as possible&lt;/li&gt;&lt;li&gt;Business is more interested in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;functional&lt;/span&gt; solution then technical design so give them the only part they are interested in. &lt;/li&gt;&lt;li&gt;Speedy communication is the key to success&lt;/li&gt;&lt;li&gt;For everything, coming from developer or business, ask again and again 'Does it make sense?'&lt;/li&gt;&lt;li&gt;Be flexible but Quality Does Matter!&lt;/li&gt;&lt;li&gt;Learn how to understand people, deal with each person (technical or business) with the way they should be&lt;/li&gt;&lt;li&gt;Understand the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;environment&lt;/span&gt;, the people, the context and the people. Every place is different so modify your approach but always make it goal driven.&lt;/li&gt;&lt;li&gt;Be agile, embrace changes and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;updates&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;DON'Ts&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Avoid attempting to be 100% clear on requirements , business will never (and they can't) give you. Make assumptions, take decisions and move forward with an acceptable margin of error&lt;/li&gt;&lt;li&gt;- Avoid stressing too much on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;technical&lt;/span&gt; quality when it will deliver no value, making process too difficult to follow and creating a pile of documentation which no one would be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;interested&lt;/span&gt; in reading.&lt;/li&gt;&lt;li&gt;Don't rush to get something done with half cooked requirement. you might have to scrap the whole work and do it again. In IT delivering a software with 95% functionality working means having bugs around 5% mark, too high!.&lt;/li&gt;&lt;li&gt;Get out of your shell, your background (IT or business) is your strength, don't make it a constraint&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Just a link,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;http://www.requirementssolutions.com/Business_Analysis_Skills_Test.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-3224204032004600906?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/06/bridging-gap-business-and-it.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-5761705763037524261</guid><pubDate>Fri, 06 Jun 2008 04:05:00 +0000</pubDate><atom:updated>2008-06-06T14:40:56.444+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><title>Back to life</title><description>Back to business after almost two months, at work life goes as usual, another project after another,but personal life has been changed completely, got married to a beautiful girl, came with her to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Aus&lt;/span&gt;(yes we made it together!), just got the keys of our new home (moving very soon!) and last (but not the least!) will going to have someone soon who will call me Daddy! (what a feeling!)&lt;br /&gt;&lt;br /&gt;So what should I write now? still IT thoughts are trying to make their way into my mind but with not much success&lt;br /&gt;&lt;br /&gt;What if we map our lives to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Software&lt;/span&gt; life cycle? how it would look like? I always love such analogies, they give some interesting knowledge bits, let you look at life from a different angle&lt;br /&gt;&lt;br /&gt;We born to our parents,&lt;br /&gt;*    software born to business users and development team,&lt;br /&gt;&lt;br /&gt;We grow, learn, improve,  medical problems, see doctor, cry, laugh,parents feel &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;proud&lt;/span&gt;&lt;br /&gt;*    software gets rich in feature, get defects (but they don't cry!), eases the pain of the users (but         they don't laugh!), see technical support guys, get more stable and stable, business user             and developers feel proud(not always though :D )&lt;br /&gt;&lt;br /&gt;We socialise, make friends, help others, get benefited from others, create problems for others,&lt;br /&gt;*    software starts interacting with other software (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ok&lt;/span&gt; I mean web services in today's term),             relationships established, provide information to other systems, share data, share knowledge,     sometimes crash the other systems too, but they don't feel!&lt;br /&gt;&lt;br /&gt;&lt;span class="transl_class" title="Click to correct" id="5"&gt;We get threats, concerned for our security, financial struggle, move to other places, buy new homes, change lifestyles&lt;br /&gt;*    software attacked by viruses, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;spyware&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;malware&lt;/span&gt; ..., move from one server to another, behind another firewall, get new operating system, new features, work more efficiently (but they never pay themselves, their parents (business or consultants) always pay for them )&lt;br /&gt;&lt;br /&gt;We plan our life, start family, Kids, travel and tours, family holidays,&lt;br /&gt;*    software , &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;hmmm&lt;/span&gt;, sorry they always work, no such luxury , poor dumb systems, they need         some AI to think, how crap their lives are!&lt;br /&gt;&lt;br /&gt;well, ultimately we die, remembered or forgotten&lt;br /&gt;*    software, they die too, replaced by new systems and forgotten,&lt;br /&gt;&lt;br /&gt;Conclusion:&lt;br /&gt;I don't want to be a software, I want to be remain human, establish my life but want to work only part of a day not 24x7, enjoy my life, laugh and yes wanna cry too, I want to be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;remembered, I don't want to be a software&lt;br /&gt;&lt;br /&gt;see u soon with some real IT stuff!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-5761705763037524261?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/06/back-to-life.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-9056892356976928051</guid><pubDate>Fri, 28 Mar 2008 01:53:00 +0000</pubDate><atom:updated>2008-03-28T12:54:08.217+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>Architecture Journal Reader</title><description>&lt;p&gt;Check this out, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dd466bbb-1b7d-438e-9f9a-954ce2058f15&amp;amp;displaylang=en" target="_blank"&gt;"The Architecture Journal Reader"&lt;/a&gt; a cool reader for viewing magazine articles. &lt;/p&gt;&lt;p&gt;Recently I have stopped receiving architecture journal issues at home and was desperate to restore the supply-line and then found this reader as a pleasant surprise. Personally I don't like reading stuff online, particularly when you have to read an article as tall as Eiffel tower but this reader eases the pain. Page scrolling is great and you can take notes too. &lt;/p&gt;&lt;p&gt;I wish Microsoft would publish it as a tool that could load contents from different sources. Thinking wildly, it could have some functionality that make a web article/URL appear in paper magazine article format.&lt;/p&gt;&lt;p&gt;though I will still miss my hard copy ( can't read them on train!, can't spill my coffee on ) :(&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.google.com/hassan.ST/R-xPfvBC_1I/AAAAAAAAAWI/rZlRu7IoB_4/image[2].png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="194" alt="image" src="http://lh4.google.com/hassan.ST/R-xPhfBC_2I/AAAAAAAAAWQ/nh-WrwPVqG8/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-9056892356976928051?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/03/architecture-journal-reader.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-7409560842440912303</guid><pubDate>Thu, 13 Mar 2008 01:20:00 +0000</pubDate><atom:updated>2008-03-28T10:21:34.963+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><title>Blogging Tips - Get the most out of your blog</title><description>&lt;p&gt;There is a cool blog post by Dave "&lt;a href="http://davesquared.blogspot.com/2008/03/tweaking-your-blogger-blog.html"&gt;Tweaking your Blogger blog&lt;/a&gt;" that motivated me to share my own thoughts on blogging. &lt;/p&gt;&lt;p&gt;I will add some of my own tips, that I have learned over the past one year or so since I started blogging.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1.Think who will be reading your blog.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;For me, I see my blog readers falling in one of two groups. The first group is of the people I know and they get my blog feeds and the other group of the people finds my blog while searching Google (&lt;em&gt;oh yeah I mean Internet, Google is now a synonym to Internet search, something that I do not like, self-prophecy effect, more on this sometime later&lt;/em&gt;). So for the second group of people (net searchers) see if you can provide some background information and summary/conclusions. Such additional information might be obvious for first group but it will certainly help others in getting the message right.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2.Write in small paragraphs,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Personally I would close the window if I visit a blog/article with the page long paragraphs. With very less time available to us, it is really hard to read each and every line on such pages. Most of the times we will already have some partial information on the topic and will only be interested in picking up the right pieces from the blog. Breaking down your blog in small para and putting meaning full para headings will make your blog readers quickly pick the relevant information.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.Write on latest technologies/trends&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Attempt to stay ahead of the curve and while browsing net in your free time look what's new and related to your blog. Learn yourself and then share it with others. It is a great way of learning, by writing it down what you have learned. You will also get more hits on such posts. Also if you have some hard found solution for one of the problems you recently faced then that makes it a strong candidate for a blog.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. Avoid posting your personal activities (for professionals)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Unless the topic of your blog your own/family life avoid posting posts like ' I went to the dinner", "I had great holidays"... and then describing your experience in lengths. Keep your blog focused. It is hard to get someone read your blog so don't bore them with something they are not interested. I mean who cares what I did on the weekend? Few sentences for fun are fine but If you need to put the details then better setup a separate blog for such posts. Don't make your blog a junkyard, full of stuff that is hardly useful for someone.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. See if you can break lengthy articles into parts&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;That will help in two ways. First when you plan to write on something in details, you plan , plan and plan and wait for enough time to write it and then you never get chance. Second it will also help the readers in consuming it and they will come back for the next parts if they find it interesting. Another way of writing such lengthy articles is to use a blog writer, I prefer &lt;a href="http://get.live.com/" target="_blank"&gt;'Windows Live Writer'&lt;/a&gt;, it allows me to write long articles in parts, whenever I find sometime I will open up my draft post and add more.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. Socialising on net, read other people's blog and develop your circle&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Almost everyone is aware of the new ways socialising on net. So read the other people's blogs, leave comments, discuss with them topics of interest and increase your network. I love my personalised page &lt;a href="http://www.google.com/ig"&gt;http://www.google.com/ig&lt;/a&gt; , it allows me to have feeds from a number of blog posts on my home page and also is full of goodies (like feeds from CNET, technology news and funny Reuters:Oddly Enough) that will keep you update on latest trend and technologies.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;7. Do some pre-reading&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;To make sure whatever you are writing is authentic and makes sense, don't write on simply hearing some rumours. Verify the information you are putting on your blog is correct and will provide value to the reader. I prefer to Google and verify the contents of my blog before posting it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;8. Be informal&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You are not writing a report for your client, so relax and have a friendly tone in your blogs. Attempt to simulate as if you were talking to your close friend. It really makes blog interesting and fun reading.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;9. Use your spare time to think about blog &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Do you drive too far to reach work? do you take long train/bus rides? If you spend your time in looking outside window or taking a nap then see if you can think of something interesting for your blog. If you carry laptop/pda then you can blog then and there.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;10. Blog regularly&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Avoid disappearing from your blog for long periods, blog regularly, even one para each week/fortnightly would make you appear a serious a blogger (and you want to be a serious blogger!) . &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-7409560842440912303?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/03/blogging-tips-get-most-out-of-your-blog.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-6722909670424177064</guid><pubDate>Tue, 04 Mar 2008 02:07:00 +0000</pubDate><atom:updated>2008-03-28T10:24:57.837+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>SOA Maturity Model: Deep inside SOA</title><description>&lt;p&gt;Again I have a book to recommend for reading if you need to understand/revise the philosophy of SOA and get some practical guidelines on implementing Service Oriented Architecture in your organisation.&lt;/p&gt;&lt;p&gt;SOA concept is quite old now but mostly we face challenges in implementing it successfully.&lt;/p&gt;&lt;p&gt;The basic issue that we face is when to start and where to stop or where to start and when to stop. &lt;/p&gt;&lt;p&gt;Some people get it confused with web services and they will build a whole stack of web services, every function within an application will be exposed as a web service, some will redesign the applications from scratch using some SOA framework and some will buy expensive tools to expose business functions within some legacy existing applications . &lt;/p&gt;&lt;p&gt;No doubt there is a lot of confusion out there. Even some people who have a good understanding of SOA find it really difficult to map it to a real business problem/environment because every place is different and SOA initiative required to be largely context driven.&lt;/p&gt;&lt;p&gt;For me, the major challenge is to decide if some project qualifies for SOA or not. The major issue is the time that we invest in developing SOA ready applications. I have seen the places where development teams follow strict standards, processes and develop highly reusable applications (or components) at the cost of slow response time to new business requests and changes. Sometimes the management gets so frustrated (as I witness a number of times) they themselves ask to compromise the quality and just deliver the solution because that's what the business demands. Sometimes it works (where we really need a throw away application) but many times it backfires (where we need a stable system, an LOB application).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;So how can we achieve success with SOA? &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The first basic thing is that the developers alone can not bring SOA revolution in an organisation. The SOA implementation must occur both in functional areas (business units/departments) as well as in technical areas. Business processes indicates what "functional services" can become the candidates of reusability and then IT attempts to model and deliver the systems that would map the interactions in real business world. Also studying business models will help understanding what services we might need and what not.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;the book,&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;It is difficult to explain all here, therefore, I recommend reading this book &lt;a title="SOA in the Real World" href="http://www.microsoft.com/downloads/details.aspx?familyid=cb2a8e49-bb3b-49b6-b296-a2dfbbe042d8&amp;amp;displaylang=en"&gt;SOA in the Real World&lt;/a&gt; which is a nice book and starts from the basics, takes you through the practical steps for a successful SOA implementation and talks about Enterprise Service Oriented Maturity Model (ESOMM) in good details. This book is free to download from Microsoft.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Happy Reading.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;A Cool Utility:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.download.com/UltraExplorer/3000-2248_4-10702384.html?tag=dl-blog" target="_blank"&gt;UltraExplorer&lt;/a&gt; is designed to be the ultimate File Manager for Microsoft Windows.&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.download.com/UltraExplorer/3000-2248_4-10702384.html?tag=" href="http://www.download.com/UltraExplorer/3000-2248_4-10702384.html?tag=dl-blog"&gt;http://www.download.com/UltraExplorer/3000-2248_4-10702384.html?tag=dl-blog&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-6722909670424177064?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/03/soa-maturity-model-deep-inside-soa.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-8552260831596087646</guid><pubDate>Fri, 22 Feb 2008 03:58:00 +0000</pubDate><atom:updated>2008-03-28T10:22:09.563+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><title>MS Performance Point connection issue</title><description>I recently encountered a problem that was resolved after some hit and trial efforts. Since I couldn't find the solution on google so I thought putting up it here would help some one using Performance Point and .Net 3.5&lt;br /&gt;&lt;br /&gt;1. Installed and configured Performance Point server, no issues&lt;br /&gt;&lt;br /&gt;2. Setup and published dashbaords&lt;br /&gt;&lt;br /&gt;3. Didn't use for some time and in the meantime Installed Visual Studio 2008 and .Net 3.5&lt;br /&gt;&lt;br /&gt;4. Recently tried to run the performance point, it failed to conenct to the database server, gave following error message&lt;br /&gt;&lt;br /&gt;" unable to connect to the specified server"&lt;br /&gt;&lt;br /&gt;5. Tested SQL db isntances and connectivity but everything was perfect and fully accessible from elsewhere&lt;br /&gt;&lt;br /&gt;6. Tried connecting to to Performance Point Montioring Server (File-&gt;Options-&gt;Server-&gt;Connect), didn't' work either, same error message&lt;br /&gt;&lt;br /&gt;7. Through IIS, brought up the web services page (&lt;a href="http://localhost/WebService/PmService.asmx"&gt;http://localhost/WebService/PmService.asmx&lt;/a&gt;). There was the error message I was looking for, the web service could not run as it failed to load system.web.extension. The config file had version=1.0.61025.0 and although I had ver 1.1, 2, 3 and 3.5 of .net framework installed still it could not load the right dll.&lt;br /&gt;&lt;br /&gt;8. I manually edited the web config and replaced all instances of version=1.0.61025.0 with Version=3.5.0.0. That's it, it started working again.&lt;br /&gt;&lt;br /&gt;9. I had to do the same for &lt;a href="http://localhost/Preview/web.config"&gt;http://localhost/Preview/web.config&lt;/a&gt; to bring up the preview site.&lt;br /&gt;&lt;br /&gt;Thanks for your help &lt;a href="http://nickbarclay.blogspot.com/"&gt;Nick&lt;/a&gt;, the performance point guru.&lt;br /&gt;&lt;br /&gt;Check Nick's post on similar database connectivity issue, if this is not the issue you are facing&lt;br /&gt;&lt;a href="http://nickbarclay.blogspot.com/2007/11/pps-data-source-connection-problems.html"&gt;http://nickbarclay.blogspot.com/2007/11/pps-data-source-connection-problems.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-8552260831596087646?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/02/ms-performance-point-connection-issue.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-6670636832055689681</guid><pubDate>Sun, 17 Feb 2008 22:16:00 +0000</pubDate><atom:updated>2008-03-28T10:16:26.121+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>Deep inside Agile Development</title><description>&lt;strong&gt;A nice article,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I have just read a fantastic &lt;a href="http://msdn2.microsoft.com/en-au/architecture/bb892770.aspx"&gt;article &lt;/a&gt;written by Ted Neward on pragmatic agile development, from an architectural prespective. I must say he beautifully put together the philosphy of agile development, core issues that we face and what exactly it means by agile development when it comes to delivery of the solution. read it here&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-au/architecture/bb892770.aspx"&gt;http://msdn2.microsoft.com/en-au/architecture/bb892770.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;and I love his conclusion,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:verdana;font-size:85%;color:#000099;"&gt;"Call it what you will, the basic keys to successful software remain the same: good people, whether they’re developers or managers; good process, whether it’s lightweight or rigorous; a good product, whether it’s detailed in a document or sketched on 3x5 cards; and good technology, whether it’s COBOL or something a bit more modern. Many shops do one thing right, some do two or three, but the truly spectacular successes get all four right, and the results…well, they speak for themselves, and need no buzzword to define them."&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;and the book,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;the article reminded me of the book, &lt;a href="http://www.amazon.com/Rapid-Development-Steve-McConnell/dp/1556159005"&gt;Rapid Development &lt;/a&gt;(well how could I forget that book!) that laid the fondation stone of my software engineering concepts when I studied it at Uni in 1997. Its third chapter "&lt;a href="http://stevemcconnell.com/rdenum.htm"&gt;Classical Mistakes&lt;/a&gt;" is fantastic and the list should be put on the walls of a software house as we tend to forget and commit such classical mistakes again and again. &lt;a href="http://stevemcconnell.com/rdenum.htm"&gt;http://stevemcconnell.com/rdenum.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;happy reading&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-6670636832055689681?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/02/deep-inside-agile-development.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-2032161525699199527</guid><pubDate>Tue, 12 Feb 2008 22:59:00 +0000</pubDate><atom:updated>2008-03-28T10:15:18.805+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><title>Something for fun -</title><description>Instead of writing another 'dry' technical/philosphical blog I have got some cool stuff today, quite interesting and fun tools to use as a pc user. Having all those dual, quad... cores&lt;em&gt; (and God knows how many in future)&lt;/em&gt; lets give your pc some more work to do beside sitting idle.&lt;br /&gt;&lt;br /&gt;1. Launchy: &lt;a href="http://www.launchy.net/"&gt;http://www.launchy.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It enables to luanch your programs very fast plus it senses what would you like to launch. just press alt+space and see the magic&lt;br /&gt;&lt;br /&gt;2. Make3d: &lt;a href="http://make3d.stanford.edu/"&gt;http://make3d.stanford.edu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lets you convert your images into 3d model and then you can explore them like going inside a 3d game. you can crerate you account and upload your photos and the site will convert them in 3d but normally it takes 2 days to get it done. Alternatively they have got their source code up there in c++ and if you are c++ geek then you can download and compile on your machine.&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;And here comes the king&lt;/strong&gt;! PicLens &lt;a href="http://www.piclens.com/"&gt;http://www.piclens.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A plugin to your browser that makes the experience of searching/viewing the images online stunning!&lt;br /&gt;&lt;br /&gt;Download -&gt; install -&gt; restart browser -&gt; visit images.google.com -&gt; search any images -&gt; and click "Play" icon at left bottom of any image and here you go! seeing is believing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-2032161525699199527?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/02/something-for-fun.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-1871029899212271340</guid><pubDate>Mon, 21 Jan 2008 04:29:00 +0000</pubDate><atom:updated>2008-03-28T10:17:10.821+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><title>How long Vista's defence could last? - 5 min</title><description>Yes, If you need to break into Windows Vista, all you need are 5 minutes. That's how long it took me to manipulate vista user accounts and set their passwords to blank, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;from outside&lt;/span&gt; windows vista. No, I am not a hacker, neither do I have an IQ level equal to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Einstein&lt;/span&gt; and indeed that's a most surprising part, a kid with some expertise on searching &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Google&lt;/span&gt; can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;easily&lt;/span&gt; do this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;what if you forget your vista password?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Last weekend my friend contacted me for some help. His son changed his windows vista password and forgot that. He asked me if there is some way to restore that. My flat answer was 'No' and that if there were really some way to hack then it was going to be a climbing mount &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;everest&lt;/span&gt; for a non-hacker.&lt;br /&gt;I was confident that 'there must be no &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;easy&lt;/span&gt; way' &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;because&lt;/span&gt; I know how much noise now Microsoft makes when it comes to security. I told him now Microsoft is real serious about security and they must have implemented some rock solid security (at lease for some to-be-hacker). But my friend insisted if I could try something and I agreed and took his laptop for some weekend exploration (something that I had &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;abandoned&lt;/span&gt; for some time, fixing friends/relatives machines).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Microsoft is Serious about security,&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;hmmm&lt;/span&gt;, really?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To be honest whatever &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;happened&lt;/span&gt; on the weekend left me scratching my head ' Is Microsoft really serious about security?'. I am not going to explain what exactly I did to break into vista (so that this blog should not be a first step guide for to-be-hackers) but will describe briefly.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;so what did I do exactly ?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In order to break into vista, an external program (found from google with step by step guide and not at some hackers heaven) that knows how to access &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;NTFS&lt;/span&gt; system can easily give you access to all windows accounts and let you set all the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;properties&lt;/span&gt; that you could set through windows GUI. So not only I managed to reset the user accounts' passwords but also I enabled the Administrator account with blank password (which is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;by default&lt;/span&gt; disabled in windows). The whole process completed within 5 minutes and then when I restarted the laptop I had access to all windows accounts, right in front of me with blank passwords.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;implications,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Without going into debate of how it was possible, I am more interested in thinking what could that mean. I am really concerned about the security of personal data in PCs, particularly laptops. As others do, my own laptop is full of personal data, from credit card details to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;ebay&lt;/span&gt; accounts.&lt;br /&gt;Now I can't rely on windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;userid&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;pwd security&lt;/span&gt; anymore. A hacker with such a program on a disk, that I used, can easily break any windows security (even windows 2003) within minutes. Now either I use some specialised &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;software&lt;/span&gt; to protect my data or explore what other advanced options are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;available&lt;/span&gt; with in windows (hard to trust now).&lt;br /&gt;&lt;br /&gt;So if I am right in my conclusions, you better watch your back when it comes to PC security.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-1871029899212271340?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2008/01/how-long-vistas-defence-could-last-5.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-4923092895357677769</guid><pubDate>Tue, 11 Dec 2007 00:41:00 +0000</pubDate><atom:updated>2008-03-28T10:18:54.054+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>SOA everywhere - Delivery nowhere</title><description>Well, the title of this post is bit &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;exaggerated&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SOA&lt;/span&gt;&lt;/span&gt; is definitely good but implementation is hard and a number of times we end up in creating a mess, took ages to develop but failed to deliver success.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is good about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SOA&lt;/span&gt;&lt;/span&gt;?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As we know when we say &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SOA&lt;/span&gt;&lt;/span&gt; we mean that we need &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;something&lt;/span&gt; that would be driven from business model and functions, would reuse existing functionalities with minimal impact on existing applications and making them interoperable with other systems so that we could save time in redevelopment in future.&lt;br /&gt;&lt;br /&gt;Also when we develop new systems for future we attempt to make them '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SOA&lt;/span&gt;&lt;/span&gt; Ready' i.e. designed in a way that any business function can be made available to other systems/consumers without or minimal coding. Of course the idea is fascinating and it does work.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;so what doesn't work?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Here the problem I want to address is that having a vision of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SOA&lt;/span&gt;&lt;/span&gt; when technical people sit together and design a framework + &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;lifecycle&lt;/span&gt;&lt;/span&gt; for the entire business apps and then if they force all development work to follow the same framework for all new developments in order to have consistent development practices, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SOA&lt;/span&gt;&lt;/span&gt; ready applications, potential long term time saving in new developments, etc, there are some serious issues arise from application delivery perspective, particularly slow delivery of solution due to huge investment of efforts upfront for making applications '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SOA&lt;/span&gt; Ready'.&lt;br /&gt;&lt;br /&gt;But do we really get all those benefits in future? The answer is context driven i.e. it may be or not depending upon the nature of business and development projects. But what I have seen a number of times you can not apply one solution to all your problems.&lt;br /&gt;&lt;br /&gt;Take this example, you have got a very nice framework, a framework labelled as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SOA&lt;/span&gt; based framework, with all nice components, this block, that service, this interface, that data contract and this and that etc. Now you have got a small application to develop for a small group of users in your environment. Would you go for an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;SOA&lt;/span&gt;&lt;/span&gt; ready application?&lt;br /&gt;&lt;br /&gt;The mistake, in my opinion, people make is that they will go straight after a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SOA&lt;/span&gt;&lt;/span&gt; based architecture while in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;principle&lt;/span&gt; the application is not a right fit for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SOA&lt;/span&gt;&lt;/span&gt;. They do it &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;becuase&lt;/span&gt; it is the standard architecture and practice of the organisation now. As a result, developers spend a lot of time in fulfilling framework requirements by developing interfaces, layers, services etc with very less probability of any &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;reusability&lt;/span&gt;&lt;/span&gt; in future.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;so what to do?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In my opinion whenever we design a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SOA&lt;/span&gt;&lt;/span&gt; ready framework we have to consider following points&lt;br /&gt;&lt;br /&gt;1. First &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SOA&lt;/span&gt;&lt;/span&gt; based architecture should not be a mandatory for all new applications to follow&lt;br /&gt;&lt;br /&gt;2. Every application will have to be evaluated to see if there is any real benefit in developing it as an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;SOA&lt;/span&gt;&lt;/span&gt; ready application. This depends a lot on how business processes work and not the technology. If the new application is for a small group of users, who are working in isolation with less probability of exposing their functions as services, then we can use very simple architecture and forget complex &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;SOA&lt;/span&gt;&lt;/span&gt; based architecture.&lt;br /&gt;&lt;br /&gt;3. Also, the framework should have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;pre&lt;/span&gt;&lt;/span&gt;-defined cut down versions for medium and small applications with lesser number of layers/services/interfaces in order to reduce development overheads. The application will be judged and right model should be picked and applied&lt;br /&gt;&lt;br /&gt;4. If using agile methodology, then future &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;reusability&lt;/span&gt;&lt;/span&gt; can be left over to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;refactoring&lt;/span&gt;&lt;/span&gt;. What I mean is that instead of investing time today, leave it to the time when it is required to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;expose&lt;/span&gt; its services and at that time &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;refactor&lt;/span&gt;&lt;/span&gt; the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;application&lt;/span&gt; and deploy it as an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;SOA&lt;/span&gt;&lt;/span&gt; service.&lt;br /&gt;&lt;br /&gt;5. As a general rule core systems should be strong candidates of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;SOA&lt;/span&gt;&lt;/span&gt; style development. For example, customers database, core sales operations, main financial systems etc. While the systems like some feedback capturing application, some monthly computing application with short expected life span (2-4 years) etc are bad candidates and should be developed in a quick and easy way.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;in summary,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We should focus more on delivery without investing too much time in provisions for 'future &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;reusability&lt;/span&gt;&lt;/span&gt; scenarios'. For instance, once it happened to me that my team put a lot of effort in developing an application with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;SOA&lt;/span&gt;&lt;/span&gt; based architecture and ending up with the situation where business users discarded the application, never went live as the business owner of the application had left the organisation and the new owner did not see any real benefit in the application. All our efforts for a 'highly flexible and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;reusable&lt;/span&gt; service based &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;SOA&lt;/span&gt;&lt;/span&gt; style' application go in vein.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;question to ask yourself,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So next time you get an application to develop, ask yourself, does it really need to be developed as an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;SOA&lt;/span&gt;&lt;/span&gt; application?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-4923092895357677769?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/12/soa-everywhere-delivery-nowhere.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-1089489009328869200</guid><pubDate>Tue, 06 Nov 2007 06:26:00 +0000</pubDate><atom:updated>2008-03-28T10:18:54.056+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>The fear factor</title><description>Just a couple of quotes to start with&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;em&gt;&lt;u&gt;"Fear makes the wolf bigger than he is."---- German Proverb "&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;u&gt;“Each time we face our fear, we gain strength, courage, and confidence in the doing.”&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The above quotes just talk about fear factor in general, but I will go and talk about fear factor in software development.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;You fear =&gt; You Fail,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is an observation that I have made consistently in my career, if you fear then you will fail, and recently I have observed the same again, making me write this blog. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Doesn&lt;/span&gt;' t matter whatever technical skills we have got but too much fear of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;uncertainty&lt;/span&gt; can spoil our hard work and progress.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By nature we tend to avoid taking risks, we attempt to follow a path with higher level of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;certainty&lt;/span&gt; and when it comes to software development then we &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;translate&lt;/span&gt; this in having well defined requirements, using tested and proven technology, following well &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;practised&lt;/span&gt; and adopted development life cycles etc. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Particularly&lt;/span&gt; if we have spent working years and years in an environment following typical water fall life cycle models. So when we move from such an environment to a dynamic environment where all variables 'requirements', 'technology', '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;timelines&lt;/span&gt;' and 'resources' &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;continuously&lt;/span&gt; changing, we start fearing&lt;br /&gt;&lt;br /&gt;- I can't suggest this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;technology&lt;/span&gt;, what if we fail?&lt;br /&gt;- I can't develop this feature, what if doesn't provide value to business&lt;br /&gt;- I have to commit to the deadline provided by my manager, otherwise....&lt;br /&gt;- I have to provide all what my users/business ask, otherwise....&lt;br /&gt;- I have to follow the current practices and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;procedures&lt;/span&gt; religiously and rigorously, otherwise...&lt;br /&gt;- I have to do all documentation&lt;br /&gt;- I am uncertain about requirements, I have to wait and get all clarifications&lt;br /&gt;- I have to save my back&lt;br /&gt;- I could be kicked out if I fail&lt;br /&gt;&lt;br /&gt;the list goes on&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Agilists&lt;/span&gt; don't fear,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One of the core &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;characteristic&lt;/span&gt; of some agile development life cycle is that we try to get rid of the fear factor i.e. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Agilisits&lt;/span&gt; don't fear (but they are not stupid too!). They take the decision early on, they believe that the total cost of pending your decisions too long will be higher than making a wrong decision (among other correct decisions) and rectifying it later. To illustrate this just read this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;fictitious&lt;/span&gt; challenge&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;fictitious &lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;challenge&lt;/span&gt;,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Task: You have to reach your destination 'City A' as soon as possible. You have got two options.&lt;br /&gt;&lt;br /&gt;1. Take the safe road that will take 24 hours to get you there.&lt;br /&gt;2. Take a short off road trip, that will take you there in 4 hours.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What would you do?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A risk avoiding person will take the first option. Spending more time and money in reaching the destination, fearing the second option will have &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;unforeseen&lt;/span&gt; risks and he will face a lot of trouble&lt;br /&gt;&lt;br /&gt;An &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;agilist&lt;/span&gt; will take the option 2. BUT as I said &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Agilists&lt;/span&gt; (&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;supposedly&lt;/span&gt; and should be) not stupid. He will get a 4&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;WD&lt;/span&gt;, with spare tyres, GPS device and a satellite phone, other tools and equipment necessary to rescue himself if something goes wrong and then begin the journey.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;well, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;hmmm&lt;/span&gt;...,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You don't agree?? What if this and what if that...? Well it just a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;fictitious&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;scenario&lt;/span&gt; and yes if reaching the destination is a 'do or die' sort of thing I myself will take option 1. But in general I should go for option 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;agilist&lt;/span&gt; might fail reaching the destination but if he takes such decision 10 times (and are used to taking such challenges and well trained on using his tools) he will probably reach the destination 8-9 times and when he fails to reach the destination he might have to come back and take the safe route, 1-2 times. The point is that the overall cost of failures would be less than the cost of late decisions and lengthy processing times.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;So how we map it to software development?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In typical agile development we train ourselves&lt;br /&gt;&lt;br /&gt;on techniques like&lt;br /&gt;&lt;br /&gt;- User stories&lt;br /&gt;- Automated unit testing&lt;br /&gt;- &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_25"&gt;Continuous&lt;/span&gt; integration&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Refactoring&lt;/span&gt;&lt;br /&gt;- Iterative development&lt;br /&gt;- Just enough documentation&lt;br /&gt;- Strong communication&lt;br /&gt;-etc etc&lt;br /&gt;&lt;br /&gt;using tools&lt;br /&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Nunit&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Junit&lt;/span&gt;&lt;br /&gt;- Cruise control&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;Codegenerators&lt;/span&gt; like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;Codesmith&lt;/span&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Resharper&lt;/span&gt;&lt;br /&gt;- Task &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;management&lt;/span&gt; tools that support iterative development (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;JIRA&lt;/span&gt;, Gemini, MS &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;TFS&lt;/span&gt;)&lt;br /&gt;- communication tools&lt;br /&gt;- etc etc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The message,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The message I want to convey is that when you develop software in today's world, accept challenges and prepare yourself, take &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_35"&gt;initiatives&lt;/span&gt; and get ready to mitigate the risks. Take stand on technical and quality grounds. Ask why this way and not that way. don't accept something in the environment just &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_36"&gt;because&lt;/span&gt; it was defined in the past.&lt;br /&gt;&lt;br /&gt;Challenge yours and others decisions. If you BELIEVE in something then stick to it and make other people change their course of action.&lt;br /&gt;&lt;br /&gt;It is better to be kicked out of you organisation on taking stand on quality rather than being kicked out &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_37"&gt;because&lt;/span&gt; of not taking initiative and appearing as a dumb person.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_RrIGgmCdaSo/RzBZ8WTRmfI/AAAAAAAAAUM/pcXd_EmXyj0/s1600-h/Agilist+taking+path+with+his+tools+and+backups.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5129698868888443378" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://bp0.blogger.com/_RrIGgmCdaSo/RzBZ8WTRmfI/AAAAAAAAAUM/pcXd_EmXyj0/s320/Agilist+taking+path+with+his+tools+and+backups.JPG" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-1089489009328869200?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/11/fear-factor.html</link><author>noreply@blogger.com (Hassan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_RrIGgmCdaSo/RzBZ8WTRmfI/AAAAAAAAAUM/pcXd_EmXyj0/s72-c/Agilist+taking+path+with+his+tools+and+backups.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-3590240568382846025</guid><pubDate>Fri, 19 Oct 2007 01:27:00 +0000</pubDate><atom:updated>2008-03-28T10:17:31.312+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Common Sense</category><title>It is patent nonsense</title><description>I like to patent&lt;br /&gt;&lt;br /&gt;- the way I walk, smile, eat and talk&lt;br /&gt;&lt;br /&gt;- the way I carry my bag, mow my lawn, arrange my house, clean my house,&lt;br /&gt;&lt;br /&gt;- the way I arrange my work desk, run my meetings, conduct interviews,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;strange? keep reading&lt;br /&gt;&lt;br /&gt;- the way I create a web page, name it, upload it,&lt;br /&gt;&lt;br /&gt;- the way I sell products on my web page&lt;br /&gt;&lt;br /&gt;- the way I wrap up gifts, Sorry &lt;a href="http://www.news.com/Amazon-patent-thinks-pink/2100-1038_3-5606053.html"&gt;already patented&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- the way my customers Click and Buy, Sorry you can't do this too, it has been &lt;a href="http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/amazon.html"&gt;patented by Amazon&lt;/a&gt;&lt;br /&gt;but thanks to a kiwi, &lt;a href="http://seattlepi.nwsource.com/business/335845_amazon18.html"&gt;not any more&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am writing all this to vent my frustration over these &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;ridiculous&lt;/span&gt; patent laws. Probably you might have heard about the recent news story when &lt;a href="http://seattlepi.nwsource.com/business/335845_amazon18.html"&gt;Amazon has been &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;successfully&lt;/span&gt; challenged&lt;/a&gt; for its 1-Click patent by a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;NewZealender&lt;/span&gt;. It is some &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;great&lt;/span&gt; news. I read about this some time ago and couldn't believe how clicking buttons in some sequence on a web page could be patented? but that was done for Amazon. Not only that, Amazon was also making money from the web sites who were using the similar process, well it is law, they are the patent holders.&lt;br /&gt;&lt;br /&gt;Another ridiculous example is 'Buy it now' button on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;eBay&lt;/span&gt;, &lt;a href="http://arstechnica.com/news.ars/post/20060312-6364.html"&gt;yes it is patent&lt;/a&gt; by someone and that means on my own web site I can't name a button/functionality similar to "Buy it Now". How silly, then what should we do for 'Submit it Now', Check-out it Now', 'Close it Now', 'Cancel it Now', 'Sing-up now' ?? Can I get them patented for me, if some one hasn't already got them?&lt;br /&gt;&lt;br /&gt;I am not an expert on laws, but I have done some research on net to understand this drama.&lt;br /&gt;Patent laws &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;originated&lt;/span&gt; to protect inventions so that someone investing money in some new technology should be able to get return on his investment/achievement before others start copying the technology, fair enough, no issues. The core problem is that these laws were primarily designed for &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;mechanical&lt;/span&gt; (and later electrical/electronics) inventions. With the advent of software the same laws were used to protect software process and methods and here we ran into trouble. The software world is whole different world and patent laws have been misused by those were the first in getting the patent for some simple things/processes (which a layman can think of when faces the similar problem)&lt;br /&gt;&lt;br /&gt;If you search net , you will find that there is a &lt;a href="http://en.wikipedia.org/wiki/Software_patent_debate"&gt;lot of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;noice&lt;/span&gt; from people protesting such misuse &lt;/a&gt;but what is not good is I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;couldn't&lt;/span&gt; find if there were some serious steps taken by Governments (well basically US Govt, &lt;a href="http://www.news.com/Patent-law-overhaul-Bad-for-start-ups/2100-1028_3-6209223.html?tag=st.ref.goo"&gt;there is one hope&lt;/a&gt;) to alter the laws. (In EU first it was recommended and then &lt;a href="http://www.zdnet.co.uk/talkback/0,1000001161,39257685-39001089c-20058660o,00.htm"&gt;blocked by &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Parliament&lt;/span&gt; &lt;/a&gt;). Also the bad thing about Amazon case is that the lawsuit against Amazon was won not on logical basis but on the fact that similar process exist before Amazon got it patented. What it means is that if someone could prove that I was the one who first used some process similar to 1-Click then he/she will have the patent, which I object. This is some common sense, the 1-Click sort of thing is not an invention , it shouldn't be get patented.&lt;br /&gt;&lt;br /&gt;Few interesting comments against patent laws for software, from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;wikipedia&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3&gt;&lt;span class="editsection"&gt;&lt;/span&gt;&lt;span class="mw-headline"&gt;Bill Gates (Microsoft) 1991&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;i&gt;Internal memo&lt;/i&gt;&lt;/p&gt;&lt;p&gt;"If people had understood how patents would be granted when most of today's ideas were invented and had taken out patents, the industry would be at a complete standstill today...The solution is patenting as much as we can. A future &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;startup&lt;/span&gt; with no patents of its own will be forced to pay whatever price the giants choose to impose. That price might be high. Established companies have an interest in excluding future competitors."&lt;/p&gt;&lt;p&gt;(though Gates had slightly different view in &lt;a href="http://en.wikipedia.org/wiki/Software_patent_debate#Bill_Gates_.28Microsoft.29_2005"&gt;2005&lt;/a&gt;, when Microsoft needed patent laws)&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;&lt;span class="editsection"&gt;&lt;/span&gt;&lt;span class="mw-headline"&gt;Oracle Corporation 1994&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;i&gt;Submission to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;USPTO&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;"Oracle Corporation opposes the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;patentability&lt;/span&gt; of software. The Company believes that existing copyright law and available trade secret protections, as opposed to patent law, are better suited to protecting computer software developments..."&lt;/p&gt;&lt;p&gt;Few more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;ridiculous&lt;/span&gt; patents&lt;/p&gt;Someone claiming '&lt;a href="http://discuss.fogcreek.com/joelonsoftware3/default.asp?cmd=show&amp;amp;ixPost=105622"&gt;Most ridiculous patent application ever&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.techliberation.com/archives/039401.php"&gt;Net2Phone &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;Suing&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Skype&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://www.bbspot.com/News/2004/07/microsoft_patent.html"&gt;Microsoft Granted Patent for Creating Insecure Software&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope when I do some web development as my hobby I won't be getting some legal notice from someone sitting in another corner of the world 'hey you have just violated my patent', fingers crossed,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-3590240568382846025?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/10/it-is-patent-nonsense.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-6339027811480260687</guid><pubDate>Wed, 17 Oct 2007 00:10:00 +0000</pubDate><atom:updated>2008-03-28T10:12:11.880+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>Ruby on Rails VS ASP.Net MVC</title><description>Ruby on rails is on track for getting more popularity among casual as well as professional developers when they need to develop and release a small- medium size application rapidly. I myself find it very interesting and have the opinion that it is a good innovation, helping the developers avoiding the complexities of ASP.Net or Java based &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;structures&lt;/span&gt; where they mostly need to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;develop&lt;/span&gt; apps from scratch with lot of plugging.&lt;br /&gt;&lt;br /&gt;Now it is more interesting to read about the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;ASP.NET &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MVC&lt;/span&gt;&lt;/a&gt; framework, going to be released in the first half next year and also will be a part of .Net 3.5 SP1 . &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; favors convention over configuration (&lt;span style="font-size:100%;"&gt;&lt;span style="FONT-STYLE: italic"&gt;what does it mean? less crap more productivity). &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Now it seems &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Microsoft&lt;/span&gt; has realised this and they have come up with something that could counter people moving to ruby on rails by providing something that ruby on rails provide i.e. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MVC&lt;/span&gt; framework to develop the application. I would keep on watching this (some sort of ) contest now with interest. Frankly, I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;myself&lt;/span&gt; recently downloaded ruby on rails to develop an application over the weekend to quickly implement my idea rather than starting development from scratch in asp.net. Now with this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;MVC&lt;/span&gt; thing &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ASP.Net &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:100%;"&gt;is getting my attention again for RAD and I suspect there may be something more in pipeline from &lt;/span&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"  style="font-size:100%;"&gt;Microsoft&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Stay tuned!&lt;br /&gt;&lt;br /&gt;Resources:&lt;br /&gt;&lt;a href="http://blog.wekeroad.com/2007/08/14/more-rails-fun-beyond-the-silly-examples/"&gt;(3 nice videos on ruby on rails to give you a quick overview)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=Gzj723LkRJY"&gt;plus another video tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-6339027811480260687?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/10/ruby-on-rails-vs-aspnet-mvc.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-290710387363002104</guid><pubDate>Fri, 05 Oct 2007 01:03:00 +0000</pubDate><atom:updated>2008-03-28T10:11:27.239+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>Software + Services &lt;&gt; SaaS  &amp; =&gt; Confusion</title><description>I am just writing this blog to draw a line between two different terms and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;jargon&lt;/span&gt;. That is if Software + Services and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Saas&lt;/span&gt; (Software as a Service) mean the same thing?. I confess when I first heard this term Software + services I took it as a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;synonym&lt;/span&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SaaS&lt;/span&gt; but Software + Services is a bit different. The first obvious difference is that Microsoft is an advocate of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Software&lt;/span&gt; + Service :). (just like they did it with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;xml&lt;/span&gt;, web services &amp;amp; infamous passports).&lt;br /&gt;&lt;br /&gt;The picture became a bit clearer when I read a recent article &lt;a href="http://www.msarchitecturejournal.com/pdf/Journal13.pdf"&gt;Profile: Ray Ozzie&lt;/a&gt; (chief software architect Microsoft) in architecture journal. &lt;em&gt;(a good &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;magazine&lt;/span&gt; to subscribe for free with no advertisement crap)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In my understanding &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SaaS&lt;/span&gt; represents selling the software as a web based service (or application) and thus the customers don't need to buy the full licenses of products and they pay only for what they use. Also it allows cutting cost in application maintenance as &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;enterprises&lt;/span&gt; does not require to install and host the applications themselves, plus this benefit and that benefit. We have some successful stories on that like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;salesforce&lt;/span&gt;.com.&lt;br /&gt;&lt;br /&gt;Microsoft thinks a bit differently, arguing there may be some scenarios when it is not entirely possible to market a software totally as a service. It questions the assumptions like having a high &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;bandwidth&lt;/span&gt; connection would always be available to the users. It comes with another term Software + Services. In nutshell, you have your data stored in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;Internet&lt;/span&gt; cloud,may be exposed through web pages but &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;also&lt;/span&gt; accessible to client applications running on PCs, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;PDAs&lt;/span&gt;/Smart phones with local data caching capabilities utilizing the device capabilities to process and present the information. So in way it is an extension of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SaaS&lt;/span&gt;. Examples are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Xboxlive&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;itunes&lt;/span&gt; etc.&lt;br /&gt;&lt;br /&gt;I could save my time in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;elaborating&lt;/span&gt; it more in details as I found a very nice blog entry, almost talking the same that I had to write. Check this out. &lt;a href="http://www.proudlyserving.com/archives/2007/09/software_servic.html"&gt;Software + Services = ?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See you next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-290710387363002104?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/10/software-services-confusion.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-4787311271709206253</guid><pubDate>Mon, 17 Sep 2007 00:47:00 +0000</pubDate><atom:updated>2008-03-28T10:10:54.644+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><title>C# - open source</title><description>A useful link for C# developers, looking for some open source solution in C#&lt;br /&gt;&lt;a href="http://csharp-source.net/"&gt;http://csharp-source.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://davesquared.blogspot.com/"&gt;Dave&lt;/a&gt;, he pointed me there when I was looking for some open source charting soluition for .net&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-4787311271709206253?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/09/c-open-source.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-7477850731473785561</guid><pubDate>Fri, 31 Aug 2007 01:37:00 +0000</pubDate><atom:updated>2008-03-28T10:10:31.567+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Events/Conferences</category><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>OBA - Architecture or another Marketecture?</title><description>&lt;strong&gt;OBA: the concept is not new,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;At the recent Tech-ed 07 in Gold Coast, there were quite few sessions on Office business applications. Microsoft's idea of Office Business Applications (OBAs) is not that new. It is new from Microsoft but it exists before in some shape from some other vendors like IBM's lotus notes that allows embedding application interfaces in email clients and integrating them with the database.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;[Side note: Though I personally believe a number of times Microsoft copied a technology/trend but they master it with such perfection that original inventor got left behind (like Netscape), probably because they can afford huge investments in technology. Check this interesting news item where Sony is complaining about this tactic though what we see in a tight competitive market such copying is being done by almost all top vendors &lt;/span&gt;&lt;/em&gt;&lt;a href="http://arstechnica.com/news.ars/post/20060628-7154.html" goog_ds_charindex="720"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;http://arstechnica.com/news.ars/post/20060628-7154.html&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt; ]&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Feedback on OBA,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Coming back to OBA, I have received a mixed feedback from the developers community. Critics believe that it is more about marketing Microsoft Office Suite when today they are facing real threats from open source and free applications providers, like Google docs, &lt;a href="http://www.zoho.com/"&gt;&lt;span style="font-size:85%;"&gt;Zoho Officiall Suite&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;a href="http://www.openoffice.org/"&gt;&lt;span style="font-size:85%;"&gt;Open Office&lt;/span&gt; &lt;/a&gt;etc. Once you develop OBAs, you are actually locking your users with Microsoft Office, guaranteeing continue revenue streams for Microsoft. Also some people who tried developing OBAs found a lot of difficulties in implementing real world scenarios and they say OBAs look good in a Microsoft presentation but not in a real world.&lt;br /&gt;&lt;br /&gt;I will come back to these issues later but first I will talk about what OBAs are and what they can do for us.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What OBAs can do for us?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OBAs are built around the idea that why do we need a user to get out of their daily-use work tools (like email app, word processor, spreadsheet etc where user spends most of their time) and then log in to another LOB (line of Business) application, perform some business operation and then go back to their work tools to communicate/share the results to some other worker for further processing. OBAs are to be built inside these work tools and integrated with business logic and back-end databases. Web services + Sharepoint provide an ideal mechanism for integration. With office 2007, a developer can modify the user interface of office applications (outlook, excel etc), develop application interface and integrate it in office tools allowing users to enter and share the data then and there.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Few imaginary scenarios where OBA might help us,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. A sales person gets an email from a customer asking about some new product and sales person wonders how much business do we do with customer?&lt;br /&gt;2. A business analyst doing market analysis in Excel, needs more business data from an existing system&lt;br /&gt;3. A sales person preparing a quote for a customer, to be sent through email, needs customer and product information, from two different systems, to fit in the email template and then needs to save the quote information to a database for future follow-up&lt;br /&gt;&lt;br /&gt;These scenarios are commonly seen at work place.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;So how can OBAs help? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Modifying user's outlook interface, enabling him to fetch the customer profile on a single click&lt;br /&gt;2. Using excel services,business analyst can fetch data directly into his spreadsheet and perform further analysis&lt;br /&gt;3. A user can fetch the product information in predefined format and upon sending quote to customer, outlook automatically parse the email and stores the quote data inside a sales application database for future reference&lt;br /&gt;&lt;br /&gt;Check this case study &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201115" goog_ds_charindex="3336"&gt;http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201115&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OBA Tools,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft VSTO (Visual Studio Tools for MS Office System), Sharepoint portal server 2007 enables the developer to develop OBAs and though office 2003 provides some functionality to host OBA interfaces, office 2007 is the right tool to be used to fully utilise OBAs powers, through its new set of features like custom task panes, ribbon extensibility, the Business Data Catalog, Open XML file formats, and many others..&lt;br /&gt;&lt;img src="http://msdn2.microsoft.com/en-us/library/aa479072.bldoba03l(en-us,msdn.10).gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OBA Marketecture?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now coming back to the discussion that is OBA another Marketecture? I personally believe that OBAs will provide some real business value for the users and it will cut their time they spend in operating numerous business applications. From development point of view, if your applications expose business logic through web services then the good thing is that you will be able to reuse existing services and cut new development times. With a lot lesser time you can integrate your existing LOBs with Office 2007. Such interfaces will decrease the user dependencies over system generated reports where they can them self pull the required data and prepare the reports in the way they like, using word,excel or outlook.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Issues with OBA,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;One of the main issue I see is the maintenance of the OBAs. I fear a mushroom growth of OBAs in an enterprise if OBA initiative is not planned well. Development teams should be cautious in jumping to the OBA development. In an enterprise, this should be done as part of some development framework so that the application interfaces developed should not duplicate the functionalities, developed following some discipline and will be easy to be maintained and replaceable in future.&lt;br /&gt;&lt;br /&gt;Thinking about locking up the user with MS Office issue, I personally feel, as a fan of open source development, this won't be good for overall IT industry. I know today how difficult it is for IBM Lotus notes users to migrate to MS Exchange, simply because over the times they would have got a whole range of applications built using Lotus notes. I won't like to see similar thing happening with Office in future. Having said that, I don't see Microsoft is wrong on this strategy as, for the time being, I see it is a win-win model where both Microsoft and user will get benefited. We will have to wait for an year or so to see what other competitors bring to the market.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;OBA Resources,&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are few good Internet resources to find more information&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lewis Levin on Office Business Applications : &lt;a href="http://channel9.msdn.com/showpost.aspx?postid=203534"&gt;http://channel9.msdn.com/showpost.aspx?postid=203534&lt;/a&gt;&lt;br /&gt;Building better OBAs &lt;a href="http://msdn2.microsoft.com/en-us/library/Aa905315.aspx" goog_ds_charindex="5749"&gt;http://msdn2.microsoft.com/en-us/library/Aa905315.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Case study &lt;a href="http://msdn2.microsoft.com/en-us/library/Bb245765.aspx"&gt;http://msdn2.microsoft.com/en-us/library/Bb245765.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Architectural talk &lt;a href="http://drowningintechnicaldebt.com/blogs/dennisbottjer/archive/2007/05/24/Office-Business-Applications-Architecture-Talk-with-Colin-Cole.aspx"&gt;http://drowningintechnicaldebt.com/blogs/dennisbottjer/archive/2007/05/24/Office-Business-Applications-Architecture-Talk-with-Colin-Cole.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;VSTO Tools blog &lt;a href="http://blogs.msdn.com/vsto2/"&gt;http://blogs.msdn.com/vsto2/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-7477850731473785561?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/08/oba-architecture-or-another.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-4750618120523194259</guid><pubDate>Wed, 29 Aug 2007 22:57:00 +0000</pubDate><atom:updated>2008-03-28T10:27:54.058+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Events/Conferences</category><category domain="http://www.blogger.com/atom/ns#">Architecture</category><title>bits and pieces - from Tech.Ed 07</title><description>&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;It's been quite a while since I attended recent teched 07 in Gold Coast and I thought to put some memories of the conference here before I forget them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Overall impression,&lt;/strong&gt;&lt;br /&gt;A nice experience, very well organised with a balance of knowledge + fun, good speakers and plenty to learn at one's own pace through sessions or hands-on labs, provided opportunity for networking and catching up with some old fellows + finding what others are doing/thinking in the industry ........&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;New things coming,&lt;/strong&gt;&lt;br /&gt;Well not exactly new as most of the things presented there were already out there in the market or at lteast known. The things I pick were &lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Office Business Applications (OBA) Wave, Microsoft looks real serious about that&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;further growth of SaaS trend (Software As a Service),&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Architectures moving furhter away from dedicated synchronous calls to asynchronous messages, like system A sends a message to B, B to C and C to D and then D replies to B and A, invloving C whenver required =&gt; Mesh of messages (thinking of WCF, WWF ?)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;.Net 3.5 and C# 3.0 with loads of features &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Establishment of SDC (Solution Development Centre) at Microsoft in Sydney where Microsoft will develop the solutions with its partners, with the support of an ideal environment equipped with right machines, software and Microsoft Technical expertise to speed up the development and bring the innovative solutions. &lt;a href="http://www.microsoft.com/australia/services/consulting/sdc.mspx"&gt;http://www.microsoft.com/australia/services/consulting/sdc.mspx&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;strong&gt;An interesting debate,&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;After attending a session on "using the web to develop connected systems" which talked about an idea of using http infrastructure and messages (like 404 etc) to run communication between layers (UI, Middle tier etc) of an enterprise application, I really did not like that session and then had an interesting &amp;amp; hot debate with my collegue Fernando with Mundeep as a mediator :D, Fernando's argument was (if my memory is working)&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;This was some new idea and really simple and workable, a unqiue and different session at tech-ed where all other things were routine but this one was innovative thing&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;my argument was&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;It could be a nice idea for a lab or close group discussion not for tech-ed which is not a research conference and we have very limited sessions to attend&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Personally, We have already got enough crap on internet, we have hardly managed to come to some standards like Web servies and WS-* and please no more crap on a crappy infrastructure&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;and then my last argument gave rise to another inconclusive debate between us on scrapping of the internet as it was not designed for the entire global family or should we wait and it is bascially evolving? { &lt;/span&gt;&lt;a href="http://www.livescience.com/technology/070413_ap_new_internet.html"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;http://www.livescience.com/technology/070413_ap_new_internet.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; } I took the stand I would love to scrap it because we are basically doing workarounds to overcome the limitations but I know practically it is not possible so we have to live with it, Fernando's opinion was nothing can be built in one day and it is basically going through evolution and no need to scrap it. At the end it was good mental exercise :)&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;strong&gt;Some interesting junk info: where will our data live?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Here =&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5104270737916078818" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_RrIGgmCdaSo/RtYDMUroquI/AAAAAAAAAUE/YPBAXQEXlVg/s320/datacenters.JPG" border="0" /&gt;&lt;br /&gt;This football stadium size structure has 9 floors, 6 with storage disks &amp;amp; disks &amp;amp; disks and 3 floors with cooling fans, it belongs to Microsoft where our data (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;hotmail&lt;/span&gt; etc) will be stored.&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;The interesting part is its location, it is in middle of no-where, it is located in west Washington, near-by a Dam, ? Why? Because this is the place where electricity is cheapest in USA, the big players (Microsoft, yahoo, Google) believe that whoever provides the cheapest data storage would win the war of free &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;internet&lt;/span&gt; spaces, &lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;But the most interesting part is the right top corner of the bigger picture and right bottom (not visible). The top corner building belongs to Yahoo and towards right Google is constructing its own building :) They are keeping an eye on each other, &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;strong&gt;More Junk,&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;br /&gt;How does Microsoft come with its codenames? For Visual studio they looked for areas near Seattle and chosen the names like Everett, Whidbey, Orcas island and now Rosario. check this interesting blog for more detail &lt;a href="http://blogs.msdn.com/bharry/archive/2006/12/20/what-s-in-a-code-name.aspx"&gt;http://blogs.msdn.com/bharry/archive/2006/12/20/what-s-in-a-code-name.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-4750618120523194259?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/08/bits-and-pieces-from-tech-ed-07.html</link><author>noreply@blogger.com (Hassan)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp1.blogger.com/_RrIGgmCdaSo/RtYDMUroquI/AAAAAAAAAUE/YPBAXQEXlVg/s72-c/datacenters.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-5883498242496209140</guid><pubDate>Fri, 13 Jul 2007 00:38:00 +0000</pubDate><atom:updated>2008-03-28T10:23:54.642+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Tips/Tools</category><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>Agile Toolbox</title><description>How many times in our environment do we find the developers not following the right processes? Sometimes it creates serious issues, affects the software quality, adds to team frustration etc.&lt;br /&gt;&lt;br /&gt;So beside designing and developing development processes it is equally important to ensure they processes have been adopted and practised regularly. There are few tools available that let you enforce the processes in your environment. The objective of these tools is too provide one window solution where team members can collaborate and follow the (customisable ) life cycle model, project managers can manage, developer and tester can work &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;together&lt;/span&gt;, and that can be used as a central repository of the documents etc.&lt;br /&gt;&lt;br /&gt;1. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;RallyDev&lt;/span&gt; &lt;a href="http://www.rallydev.com/"&gt;http://www.rallydev.com/&lt;/a&gt;&lt;br /&gt;A very nice tool, offers &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ajax&lt;/span&gt; enabled dashboard/interface to plan and monitor releases and iteration, allows you to follow either some Agile or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;RUP&lt;/span&gt; development methodology and automatically fetches the unit test results (coming from some automated unit testing tool). a demo can be viewed on &lt;a href="http://www.rallydev.com/Rally_14_logofix.html"&gt;http://www.rallydev.com/Rally_14_logofix.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Collabnet&lt;/span&gt; : &lt;a href="http://www.collab.net/products/enterprise_edition/" target="_BLANK"&gt;http://www.collab.net/products/enterprise_edition/&lt;/a&gt;.&lt;br /&gt;Free for 15 users, claims to have more than 1 million users and they have recently acquired &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;sourceforge&lt;/span&gt;. It primarily targets the companies with team members located at different geographical locations but of course it can be used for a consulting or internal IT environment where multiple projects run in parallel. You can check their live demos on their web site&lt;br /&gt;&lt;br /&gt;3. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VisionOne&lt;/span&gt;: &lt;a href="http://www.versionone.com/"&gt;http://www.versionone.com/&lt;/a&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Another&lt;/span&gt; product similar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;RallyDev&lt;/span&gt; but interface is not that impressive. check the demo here&lt;br /&gt;&lt;a href="http://www.versionone.com/flashtour/VersionOne_Product_Tour.htm"&gt;http://www.versionone.com/flashtour/VersionOne_Product_Tour.htm&lt;/a&gt;. Also they offer a tool they call '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;AgileToolEvaluator&lt;/span&gt;' which basically is a checklist of the items you should be looking for in an Agile tool. though it is good but again it is from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;versionone&lt;/span&gt; so the checklist lists the items that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;versionone&lt;/span&gt; tool supports. So you can use it but also consider your environment specific requirements.&lt;br /&gt;&lt;br /&gt;There is another buyer's guide from 'Forrester' which costs US$279 and help you in identifying your requirements and what you can find out of the tools available. find it there &lt;a href="http://www.forrester.com/Research/Document/Excerpt/0,7211,34977,00.html"&gt;http://www.forrester.com/Research/Document/Excerpt/0,7211,34977,00.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is another good article &lt;a href="http://alistair.cockburn.us/index.php/What_the_agile_toolbox_contains"&gt;http://alistair.cockburn.us/index.php/What_the_agile_toolbox_contains&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One more tool, available for free, but for those who are following &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;XP&lt;/span&gt;. &lt;a href="http://xplanner.org/"&gt;http://xplanner.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next time (or sometime in future) I will talk about independent tools and utilities and how those could be used in a combination to follow some agile process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-5883498242496209140?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/07/agile-toolbox.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-2467066302260823287</guid><pubDate>Fri, 22 Jun 2007 05:07:00 +0000</pubDate><atom:updated>2008-03-28T10:08:58.683+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>Step by step</title><description>Last time I discussed the key characteristics of software process improvement exercise. This time I will be focusing on what steps we can take to develop or refine our methodology.&lt;br /&gt;&lt;br /&gt;Again you are working as a consultant, assigned to refine or develop the development methodology for your client.&lt;br /&gt;&lt;br /&gt;1. Understand the environment: Identify typical projects, team structure, existing skills, past history of project delivery, nature of business/clients, create a picture of existing environment.&lt;br /&gt;&lt;br /&gt;2. Identify the needs and objectives: Find what your client expects from you to deliver but be careful it is quite possible they themselves do not exactly know what the need and may ask you to deliver something irrelevant. At higher level, with the help of your understanding of their existing environment and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;prcoesses&lt;/span&gt;, identify their main pain points and areas where improvement can be achieved.&lt;br /&gt;&lt;br /&gt;3. Build a Team: You may be required to work alone and on your own but always try to have some team on board for software process improvement exercise. Though you might be working on the assignment primarily but a team should be there to review and verify your work on regular basis, say weekly or fortnightly. Such a team should include people from Technical Management, Project Management, Development and Support. If you can't build such a team then you would have to do your assignment in multiple iterations i.e. developing the process, putting it in front of development team &amp;amp; management for review, getting feedback, making changes, feedback, changes, feedback........ though this may result in lot of rework and deadline slips.&lt;br /&gt;&lt;br /&gt;4. Develop a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;roadmap&lt;/span&gt;: Develop a plan, identify major &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;deliverables&lt;/span&gt; and milestones. Do not attempt to come up with a schedule with fixed dates, talk in terms of weeks or month. Keep enough room in the schedule to accommodate any additional work.&lt;br /&gt;&lt;br /&gt;5. Explore the existing practices: Start going into details of the existing process, find why do they fail, attempt to identify repetitive problems and their causes, find how the processes were developed, how religiously existing processes are followed, if not followed then why not, what developers like and hate most, where are the conflicts of interest among different Teams. Draw detailed process flows.&lt;br /&gt;&lt;br /&gt;6. Research Agile Methodologies: Having problems, challenges and needs known, attempt to find where agile techniques could help you. Do not attempt to adopt some agile methodology completely, only look for the solutions that would be able to help you. You may get benefits from techniques like capturing requirements through user stories, iterative development, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;continuous&lt;/span&gt; integration and automated deployment, automated unit testing, unit test first, pair programming, stand-up meetings each day, having client representative on board to assist development team during development etc. Be mindful that some techniques may be dependent on other techniques to be adopted as well.&lt;br /&gt;&lt;br /&gt;7. Apply the techniques and refine the process: Attempt to see (in real world) how the new techniques, activities or &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;artifacts&lt;/span&gt; would help you in overcoming the existing problems. Dry run the process, think about all possible scenarios (small/big projects/team etc), refine the process flow, add/delete activates, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;artifacts&lt;/span&gt;, again &amp;amp; again challenge yourself by asking why (&amp;amp; why &amp;amp; why). Be mindful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;jargon&lt;/span&gt; and terminologies, do not unnecessarily attempt to replace the existing ones with some new ones when there would be no clear benefit.&lt;br /&gt;&lt;br /&gt;8. Documenting: Once your newly defined processes look stabilising (after reviews and reviews), start documenting it. Document the entire process, phases and activities. You target audience will be a new person/developer joining the team without any prior experience in processes based development. For each activity, describe the objective, input/output, guidelines to perform that activity, success criteria and any support documents to be used to perform that activity. Create the templates and more importantly samples of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;artefacts&lt;/span&gt;. Samples are the quicker way of communicating a process or standard and provide some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;reusability&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;9. Present it to the entire development team and review with them. Don't be afraid of making it flexible and giving some room to the developer to manoeuvre, but of course not at the cost of quality and violating the process. For example, you can let them choose use cases over user stories for some time, or allowing developing unit test cases after coding (but before checking in the code).&lt;br /&gt;&lt;br /&gt;10. Quick reference docs: Develop quick reference or activity specific documents, ideally one page only for each doc so that developer could stick them on their desks. It may include development principles (security, performance etc), Unit Testing Guide, Source control guide, coding standards, company specific application frameworks and architectures.&lt;br /&gt;&lt;br /&gt;11. Publish it: Publish it and make it accessible to the entire development and technical teams. Here one tip, try 'Save as html' feature of Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Visio&lt;/span&gt;. You can very quickly convert your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Visio&lt;/span&gt; diagrams into web pages and link up all process documents to the html pages, making it a single point of entry for the developers.&lt;br /&gt;&lt;br /&gt;12. Run a Pilot: Job is not finished yet. Before asking the teams and developers to start following the new process, identify some less risky pilot project and use the new methodology. Keep on tuning the documented process with any improvements identified. Share the results with the developers.&lt;br /&gt;&lt;br /&gt;13. Hand-it-over to development team: Perform training sessions; while planning the project work consider any extra overheads due to new process., have someone takes the ownership of the process and monitoring closely in the initial months to identify any issues and help the development teams.&lt;br /&gt;&lt;br /&gt;See you next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-2467066302260823287?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/06/step-by-step.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-330508899710115471.post-4113535056954231035</guid><pubDate>Fri, 25 May 2007 01:03:00 +0000</pubDate><atom:updated>2008-03-28T10:08:37.815+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile/Methodology</category><title>Software Process Improvement - Critical Chracterstics</title><description>When you start work on improving your software development methodology, you feel that you need some framework or process to carry that task. Here I will try to put some guidelines about getting that exercise done.&lt;br /&gt;&lt;br /&gt;Let's take a scenario; your assignment is to develop and deliver a development methodology framework for your client (or your team).&lt;br /&gt;&lt;br /&gt;Your assignment should be,&lt;br /&gt;&lt;br /&gt;1. Focused and Result oriented i.e. You want to see the results and are not trying to fill the file folders with heaps of good looking documents and diagrams. You know your objectives well.&lt;br /&gt;&lt;br /&gt;2. Iterative process with milestones: You have a plan in place. You understand that you can not achieve all in one go and you have to make the improvements in multiple iterations.&lt;br /&gt;&lt;br /&gt;3. High level of development team participation: You are not working alone in isolation. You are expected to incorporate the development team's feedback into your work as they are the real people who feel the pain.&lt;br /&gt;&lt;br /&gt;4. Only necessary process documents and less garbage: Again, you have to be very critical of the documents that you suggest to be developed as part of the development process. First, only necessary documents, second, the documents should be precise and to the point. Prefer tables, charts over lengthy paragraphs to communicate the information.&lt;br /&gt;&lt;br /&gt;5. Adopting best practices, only if applicable: No silver bullet syndrome. Best practices might not be appropriate for your environment no matter how 'hot' they are in technology world. Adopt them if you see that they will deliver the results, otherwise don't waste time.&lt;br /&gt;&lt;br /&gt;6. Living documents: This is very important. Your process and practices will not always remain the same so should be the process documents. The process documents should reflect the current picture of the development environment. Ideally (yes ideally!), whatever written in the docs is what we practice.&lt;br /&gt;&lt;br /&gt;7. Pilot implementation of newly developed methodology: Pilot implementation should be the part of the methodology development process. A pilot implementation would offer you a chance to test your recommended processes and practices. It will verify how practical those recommendations are in real world. Also it would help the developers in adopting the processes as they will have an end to end process sample to follow.&lt;br /&gt;&lt;br /&gt;9. Communication Plan: Communicating the newly developed processes should be the part of the process improvement exercise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next time I will discuss specific steps that you can take to come up with some practical development methodology and framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/330508899710115471-4113535056954231035?l=hassansyed.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://hassansyed.blogspot.com/2007/05/software-process-improvement-critical.html</link><author>noreply@blogger.com (Hassan)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>
