<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Enterprise Architecture</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/ahsansblog/Atom.aspx" />
    <subtitle type="html">by Ahsan Alam</subtitle>
    <id>http://geekswithblogs.net/ahsansblog/Default.aspx</id>
    <author>
        <name>Ahsan Alam</name>
        <uri>http://geekswithblogs.net/ahsansblog/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2011-09-20T15:55:59Z</updated>
    <entry>
        <title>My New Blog Host</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/09/20/146966.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/09/20/146966.aspx</id>
        <published>2011-09-20T15:55:59-05:00:00</published>
        <updated>2011-09-20T15:55:59Z</updated>
        <content type="html">&lt;p&gt;I have decided to switch my blog host to blogger.com. Here's the direct link &lt;a href="http://ahsanalam.blogspot.com/"&gt;http://ahsanalam.blogspot.com/&lt;/a&gt;. Please visit my new place for newer blogs.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/146966.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/146966.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/146966.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/146966.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Mapped Drive in Windows 2008</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/07/07/146117.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/07/07/146117.aspx</id>
        <published>2011-07-07T06:26:44-05:00:00</published>
        <updated>2011-07-07T06:29:53Z</updated>
        <content type="html">&lt;p&gt;Microsoft has added new security features surrounding mapped drive usage in Windows 2008. Previously, with Windows 2003, we could utilize mapped drive not only from Windows explorer but also from the command line. Now, we can continue to map a network drive from Windows explorer; however, command line applications and batch scripts no longer have access to the mapped drive. No worries... there is a workaround. In order to utilize mapped drive from command line, we must take the following steps:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Map network drive &lt;b&gt;(net use b: &lt;a href="file://\\computername\drivename"&gt;\\computername\drivename&lt;/a&gt;)&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;Execute scripts or application&lt;/li&gt;
    &lt;li&gt;Disconnect mapped drive &lt;b&gt;(net use b: /delete)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="margin-bottom: 0in"&gt;It must be noted that the above mentioned steps may need to get split into individual files for the entire process to be successful.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/146117.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/146117.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/146117.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/146117.aspx</trackback:ping>
    </entry>
    <entry>
        <title>BizTalk 2010 upgrade - Sunset Development/Deployment Modes</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/06/21/145941.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/06/21/145941.aspx</id>
        <published>2011-06-21T15:03:24-05:00:00</published>
        <updated>2011-06-21T15:03:24Z</updated>
        <content type="html">&lt;p&gt;Those who are familiar with BizTalk 2006, should know about Development and Deployment modes in Visual Studio. Personally, I never questioned why it's not Debug and Release just like everything else in Visual Studio. Then everything changed in BizTalk 2010. BizTalk and Visual Studio 2010 now uses Debug and Release modes by default. When we upgraded BizTalk 2006 solution to 2010, Development and Deployment modes remained unchanged for all the projects, and code compiled without any issues. Soon, I realized that any new projects added to the converted solutions started using Debug and Release modes. This also didn't cause any problem compiling the solution from Visual Studio; however, it broke our custom build/deployment scripts since the scripts were trying to build in Deployment mode. So, I decided to change all projects from Development and Deployment modes to Debug and Release modes to keep them consistent. During this process I realized that Debug and Release modes are defaults; but it's completely customizable. During the BizTalk 2010 upgrade process, I figured that switching to default Debug and Release modes are the best options.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/145941.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/145941.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/145941.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/145941.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Moving on from Rising...</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/06/15/145869.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/06/15/145869.aspx</id>
        <published>2011-06-15T01:36:20-05:00:00</published>
        <updated>2011-06-15T01:36:20Z</updated>
        <content type="html">&lt;p&gt;My last day at Rising Medical Solutions was June 3rd. I have decided to move on after 4 years of employment with them. I need something different at this stage of my career. What's next??? Clear my head, and possibly explore something on my own. Now, I'm travelling abroad... will be in Europe and Asia for the next two months. I wanted to do it differently this time around. Yes, I've quit my job without finding my next source of income. Call me crazy or call me bold; but I felt I had to do this. While I sort things out the next couple of months, I will be blogging/writing more. I am also in the process of launching a portal soon. Hopefully, it becomes successful. Let's see what the future has in store for me...&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/145869.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/145869.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/145869.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/145869.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Wanna be like Google</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/05/24/145532.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/05/24/145532.aspx</id>
        <published>2011-05-24T22:49:26-05:00:00</published>
        <updated>2011-05-24T22:49:26Z</updated>
        <content type="html">&lt;p&gt;Many of us who haven't worked for Google often read about corporate culture and product innovation that make Google an exciting organization. There are plenty of articles and blogs online, and then there are 'word of mouth'. Many corporations also find Google's continuous growth and profitability envious. Top executives often try to take lessons from Google's culture of innovation and explore the possibility of introducing something similar in their organizations. In order to encourage innovation, some executives may even try to motivate their employees by citing Google in company wide meetings. Everyone wants to be like Google...&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Whenever I read about Google, it seems that the innovative culture within Google gets many people involved throughout various cross-functional units within the organization. It's not about top executives pushing down ideas among employees. The culture allows many to contribute in developing new and innovative products. Top executives in other organization want to mimic Google's culture to promote innovation; but are they really allowing many to take part in the process? If only the limited few from the upper echelon are involved in pushing down ideas then the innovations will be limited. It's not just trying to be like Google, it's about establishing a culture where a vast majority of employees can take part in brewing new ideas.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/145532.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/145532.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/145532.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/145532.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Online code repository &amp; version control</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/05/09/145257.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/05/09/145257.aspx</id>
        <published>2011-05-09T21:56:19-05:00:00</published>
        <updated>2011-05-09T21:56:19Z</updated>
        <content type="html">&lt;p&gt;Recently, I felt the need to utilize online source code repository and version control system (SVN) for my personal project. As I started searching, I found plenty, and many of them are free of cost; however, I wanted my code to reside in a private repository. With this criteria in place, I was able to very quickly narrow my search down to a handful of providers. After going through many user reviews and personal assessment, I decided to use &lt;a href="http://unfuddle.com/"&gt;unfuddle&lt;/a&gt;, and their version control system. Unfuddle allows me to host 1 project privately (with access to 2 users) without paying any money. I have also found &lt;a href="http://ankhsvn.open.collab.net/"&gt;AnkhSVN&lt;/a&gt; that provides Subversion support for Visual Studio 2010. It integrates seamlessly with Visual Studio, and allows me to connect and synchronize my code with unfuddle (or any other SVN provider). I can always upgrade to one of the paid options if the need arises. For the time being, unfuddle and AnkhSVN have turned out to be a great option for me to privately host code online.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/145257.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/145257.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/145257.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/145257.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Continuous Self Improvement</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/04/04/144703.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/04/04/144703.aspx</id>
        <published>2011-04-04T22:12:07-05:00:00</published>
        <updated>2011-04-04T22:12:07Z</updated>
        <content type="html">&lt;p&gt;In almost every field, people should never take things for granted, and remain content with their skill level. In the world of information technology, it's doubly true. Some technology folks may sometimes develop a certain comfort level after staying in one organization for a long time. They may also remain so busy with usual daily tasks where thoughts of self improvement may not even occur for months. Sometimes, people may feel that adequate knowledge of certain technologies, are sufficient. In addition, on many occasions, developers and architects are so focused on technologies, that they tend to forget everything else. In a world where business and technology are constantly evolving, the need for continuous improvement is extremely important. Proven methodologies and design principals, architectural guidelines and newly enhanced technologies are many areas where people can constantly improve. So, architects and developers, please remain engaged in continuous self improvement; otherwise, it's only a matter of time before you become obsolete.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/144703.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/144703.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/144703.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/144703.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Cloud Computing and Data Utilization</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/03/10/144305.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/03/10/144305.aspx</id>
        <published>2011-03-10T21:50:50-06:00:00</published>
        <updated>2011-03-10T21:50:50Z</updated>
        <content type="html">&lt;p&gt;Someone recently asked me “is cloud computing going to change the way we perceive data?”. My first instinct was “off course”; but I restrained myself and thought for a moment. Then my answer was “no”. Why do I feel that way? Technology and business have evolved quite a bit in the past few decades; however, the need to effectively view and utilize data hasn't changed. It is not uncommon to see many organization to rely on multiple database management systems (DBMS). Applications and systems are often built to utilize information from all these data sources, and effectively present them to users. In addition to multiple DBMS, corporations are also housing their systems across numerous data centers. In fact, systems and data can reside anywhere around the world with the advent of globalization. Cloud based systems have simply provided us a different place to maintain our data, nothing more. Hosting costs, security and accessibility are different issues; however, the way we utilize and view these data remains the same.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/144305.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/144305.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/144305.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/144305.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Messaging Systems – Handshaking, Reconciliation and Tracking for Data Transparency</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/01/30/143709.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/01/30/143709.aspx</id>
        <published>2011-01-30T22:30:55-06:00:00</published>
        <updated>2011-01-30T22:30:55Z</updated>
        <content type="html">&lt;p&gt;As many corporations build business partnerships with other organizations, the need to share information becomes necessary. Large amount of data sharing using snail mail, email and/or fax are quickly becoming a thing of the past. More and more organizations are relying heavily on Ftp and/or Web Service to exchange data. Corporations apply wide range of technologies and techniques based on available resources and data transfer needs. Sometimes, it involves simple home-grown applications. Other times, large investments are made on products like BizTalk, TIBCO etc. Complexity of information management also varies significantly from one organizations to another. Some may deal with handful of simple steps to process and manage shared data; whereas others may rely on fairly complex processes with heavy interaction with internal and external systems in order to serve the business needs.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;It is not surprising that many of these systems end up becoming black boxes over a period of time. Consequently, people and business start to rely more and more on developers and support personnel just to extract simple information adding to the loss of productivity. One of the most important factor in any business is transparency to data irrespective of technology preferences and the complexity of business processes. Not knowing the state of data could become very costly to the business. Being involved in messaging systems for some time now, I have heard the same type of questions over and over again. Did we transmit messages successfully? Did we get responses back? What is the expected turn-around-time? Did the system experience any errors? When one company transmits data to one or more company, it may invoke a set of processes that could complete in matter of seconds, or it could days. As data travels from one organizations to another, the uncertainty grows, and the longer it takes to track uncertain state of the data the costlier it gets for the business, So, in every business scenario, it's extremely important to be aware of the state of the data.&lt;br /&gt;
 &lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Architects of messaging systems can take several steps to aid with data transparency. Some forms of data handshaking and reconciliation mechanism as well as extensive data tracking can be incorporated into the system to provide clear visibility to the data. What do I mean by handshaking and reconciliation? Some might consider these to be a single concept; however, I like to consider them in two unique categories. Handshaking serves as message receipts or acknowledgment. When one transmits messages to another, the receiver must acknowledge each message by sending immediate responses for each transaction. Whenever we use Web Services, handshaking is often achieved utilizing request/reply pattern. Similarly, if Ftp is used, a receiver can acknowledge by dropping messages for the sender as soon as the files are picked up. These forms of handshaking or acknowledgment informs the message sender and receiver that a successful transaction has occurred.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;I have mentioned earlier that it could take anywhere from a few seconds to a number of days before shared data is completely processed. In addition, whenever a batched transaction is used, processing time for each data element inside the batch could also vary significantly. So, in order to successfully manage data processing, reconciliation becomes extremely important; otherwise it may result into data loss or in some cases hefty penalty. Reconciliation can be done in many ways. Partner organizations can share and compare ad hoc reports to achieve reconciliation. On the other hand, partners can agree on some type of systematic reconciliation messages. Systems within responsible parties can trigger messages to partners as soon as the data process completes.&lt;br /&gt;
 &lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Next step in the data transparency is extensive data tracking. Some products such as BizTalk and TIBCO provide built-in functionality for data tracking; however, built-in functionality may not always be adequate. Sometimes additional tracking system (or databases) needs to be built in order monitor all types of data flow including, message transactions, handshaking, reconciliation, system errors and many more. If these types of data are captured, then these can be presented to business users in any forms or fashion. When business users are empowered with such information, then the reliance on developers and support teams decreases dramatically.&lt;br /&gt;
 &lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;In today's collaborative world of information sharing, data transparency is key to the success of every business. The state of business data will constantly change. However, when people have easier access to various states of data, it allows them to make better and quicker decisions. Therefore, I feel that data handshaking, reconciliation and tracking is very important aspect of messaging systems.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/143709.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/143709.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/143709.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/143709.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Can traditional ASP .NET and ASP .NET MVC coexist?</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/01/17/143518.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/01/17/143518.aspx</id>
        <published>2011-01-17T22:22:47-06:00:00</published>
        <updated>2011-01-17T22:22:47Z</updated>
        <content type="html">&lt;p&gt;When Microsoft came out with C#, many embraced it instantaneously; whereas, others took some time to adopt it. Over time, the number of C# developers grew in a major way. I would not be surprised if the number C# developers have surpassed the number of VB .NET developers today.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Recently, in a similar manner, we are observing the continuous growth and maturity of ASP .NET MVC. When the MVC framework first showed up, my first reaction was “it's about time”. However, I was skeptical. MVC framework is maturing at a steady pace, and many new features are constantly being added. More and more developers are also starting to adopt it. But can it replace traditional ASP .NET? Traditional ASP .NET is very mature with it's rich controls and easy it use functionality. Most importantly, it's very widely used. I doubt traditional ASP .NET can be replaced so easily. Well.... maybe it doesn't need to be replaced. If Microsoft continues to dedicate resources to MVC, maybe it will evolve like the way C# did. Then maybe traditional ASP .NET and MVC will coexist just like the way C# and VB .NET do.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/143518.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/143518.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/143518.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/143518.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Is SOA really dead?</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2011/01/07/143392.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2011/01/07/143392.aspx</id>
        <published>2011-01-07T22:57:24-06:00:00</published>
        <updated>2011-01-07T22:57:24Z</updated>
        <content type="html">&lt;p&gt;I have come across many articles/blogs where authors have strongly hailed the death of Service Oriented Architecture (SOA). I could almost hear the laughter pouring out of their writings. Being a big supporter of SOA, I have found myself wondering – have I been following the wrong path all along? Do I need to change the way I think? Then I started to look around. Many newer technologies and concepts have evolved in the past few years. People are starting to take advantage of cloud computing, SAAS (Software as a Service), multitudes of on-demand platforms and many more. Now, I started thinking – is SOA really dead? In order to effectively utilize these newer concepts, I believe we need SOA more than ever because it gives us loose-coupling. People often forget that the key principal behind SOA is loose-coupling. We cannot achieve SOA just by throwing services (WCF, Web Service); we need loosely coupled systems.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/143392.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/143392.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/143392.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/143392.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Inevitable Corporate Bureaucracy</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2010/12/29/143274.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2010/12/29/143274.aspx</id>
        <published>2010-12-29T20:31:26-06:00:00</published>
        <updated>2010-12-29T20:31:26Z</updated>
        <content type="html">&lt;p&gt;Top executives of most smaller organizations want their companies to be different from the larger corporations. They want their organizations smaller in size; but bigger in productivity by eliminating red tapes and corporate bureaucracy. When the company is smaller, people often work like firefighters – taking on new business and technology challenges without thinking about any procedures and guidelines. People also tend to wear many hats to accomplish tasks quickly in order to integrate new businesses. For example, software developers in smaller organizations may take on responsibilities of client interactions, requirements gathering, design and development, code deployment, production support, network infrastructure support, database design and maintenance along with countless other duties. In addition, systems in smaller organizations tend to be loosely guarded. So, people often don't follow many procedures in order to setup environments and implement technical projects. It's not uncommon to change code and deploy without anyone realizing. Similarly, business requirements may also get defined in an informal manner without any type of documentation.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;As the company grows, everything starts to change significantly impacting people and the overall business process. Suddenly, following procedures become extremely important. Consequently, new roles, guidelines and procedures start to emerge. Everything from business process to technology implementation start to become more and more process oriented. Organizations start to define and document steps, invent procedure to track process and systems level changes, and start restricting access to various systems for security reasons. At the same time, as a growing company start doing businesses with larger clienteles, they are automatically forced to abide by all sorts of industry compliance laws. Moreover, growing companies tend to recruit experienced individuals to fill new roles who usually bring their expertise from larger and more bureaucratic organizations.&lt;br /&gt;
 &lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Despite the best efforts from the top executives, it seems increased number of procedures and guidelines as well as new recruits automatically contribute to the evolution of corporate bureaucracy. Maybe, corporate bureaucracy is an inevitable side effect of a growing organization.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/143274.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/143274.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/143274.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/143274.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Service Level Loggin/Tracing</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2010/12/12/143114.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2010/12/12/143114.aspx</id>
        <published>2010-12-12T22:53:02-06:00:00</published>
        <updated>2010-12-12T22:53:38Z</updated>
        <content type="html">&lt;p&gt;We all love to develop services, right? First timers want to learn technologies like WCF and Web Services. Some simply want to build services; whereas, others may find services as natural architectural decision for particular systems. Whatever the reason might be, services are commonly used in building wide range of systems.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Developers often encapsulates various functionality (small or big) within one or more services, and expose them for multiple applications. Sometimes from day one (and definitely over time) these services may evolve into a set of black boxes. Services or not, black boxes or not, issues and exceptions are sometimes hard to avoid, especially in highly evolving and transactional systems. We can try to be methodical with our unit testing, QA and overall process; but we may not be able to avoid some type of system issues. When issues arise from one or more highly transactional services, it becomes necessary to resolve them very quickly. When systems handle thousands of transaction in matter of hours, some issues may not surface immediately. That is when service level logging becomes very useful. Technologies such as WCF, allow us to enable service level tracing with minimal effort; but that may not provide us with complete picture. Developers may need to add tracing within critical areas of the code with various degrees of verbosity. Programmer can always utilize some logging framework such as the 'Logging Application Block' to get the job done. It may seem overkill sometimes; but I have noticed from my experience that service level logging helps programmer trace many issues very quickly.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/143114.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/143114.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/143114.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/143114.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Data Interchange – batched or non-batched</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2010/11/27/142892.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2010/11/27/142892.aspx</id>
        <published>2010-11-27T21:23:32-06:00:00</published>
        <updated>2010-11-27T21:23:32Z</updated>
        <content type="html">&lt;p&gt;It is very common these days for corporations to share and interchange a large amount of data. The type and complexity of data obviously varies significantly from one organizations to another. Despite the complexity of data, security, interchange frequency, type of transmission protocols and data volume are often the key areas of discussions among interchange partners. Corporations often settle between ftp and web service for their data integration needs.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;Ftp provides an effective way to share large amount of data. Usually, people tend to batch large data in files, and transfer on an agreed upon intervals. Web services are often used for non-batched and real-time data exchange. However, web services are not simply tied to non-batched and real-time approach. Large amount of data can be transferred via web service without any major problems (some tuning may be necessary in exchanging data over a certain size). Similarly, ftp is also not limited to batched process. Smaller data transfer on frequent intervals are also quite possible.&lt;br /&gt;
 &lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;I have noticed that many organizations tend to rely heavily on batched and less frequent data exchange pattern via ftp. Some may not even have the technical resources to explore any other options. These days, quicker data sharing and processing are becoming extremely important; but some corporations almost seems hesitant to get away from their traditional approach. Personally, non-batched approach not only allows us to go more real-time; but also simplifies data tracking, reconciliation and error handling. It almost seems that some corporations (especially the ones in healthcare/insurance industry) rely on products that can only deal with batched processing. Maybe, it's time for these organizations to invest additional resources to seek more real-time solutions.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/142892.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/142892.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/142892.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/142892.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Unit test Nazi</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/ahsansblog/archive/2010/11/18/142777.aspx" />
        <id>http://geekswithblogs.net/ahsansblog/archive/2010/11/18/142777.aspx</id>
        <published>2010-11-18T22:07:38-06:00:00</published>
        <updated>2010-11-18T22:07:38Z</updated>
        <content type="html">&lt;p&gt;Is unit testing a difficult thing to ask for? I don't understand why developers try to simply avoid unit testing. We have unit testing integrated to Visual Studio; there is also NUnit. These make life easier, not difficult. Maybe, it needs a little getting used to at first; but eventual benefit simply outweighs all the pains.&lt;/p&gt;
&lt;p style="margin-bottom: 0in"&gt;I have noticed that people try to build unit tests if they are carefully watched; otherwise they tend to skip. It is sometimes difficult to implement strict procedures in a smaller organizations because people end up wearing many hats. A developer is not just a developer. They might be juggling duties of Business Analyst, Project Manager and Architect to name a few. But I don't see any other alternatives but to become a unit test Nazi.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/ahsansblog/aggbug/142777.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/ahsansblog/comments/142777.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/ahsansblog/comments/commentRss/142777.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/ahsansblog/services/trackbacks/142777.aspx</trackback:ping>
    </entry>
</feed>
