<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tony Pauley</title>
	<atom:link href="http://tonypauley.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tonypauley.com</link>
	<description>Nimble IT Design</description>
	<lastBuildDate>Wed, 09 May 2012 09:21:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tonypauley.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/ee3fa18c9de88c70f4f784f9ab2d264b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Tony Pauley</title>
		<link>http://tonypauley.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://tonypauley.com/osd.xml" title="Tony Pauley" />
	<atom:link rel='hub' href='http://tonypauley.com/?pushpress=hub'/>
		<item>
		<title>Excel 2010 HPC and Issues with the HPC_Merge Macro</title>
		<link>http://tonypauley.com/2012/05/09/excel-2010-hpc-and-issues-with-the-hpc_merge-macro/</link>
		<comments>http://tonypauley.com/2012/05/09/excel-2010-hpc-and-issues-with-the-hpc_merge-macro/#comments</comments>
		<pubDate>Wed, 09 May 2012 09:21:38 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=613</guid>
		<description><![CDATA[In my last post An Introduction to High Performance Computing (HPC) and Excel 2010 I highlighted a few key areas to focus on when designing a workbook to utilize the High Performance Computing features of Excel 2010. In this post, I want to emphasize the importance of the HPC_Merge macro and how to avoid major [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=613&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my last post <a href="http://tonypauley.com/2012/05/04/an-introduction-to-high-performance-computing-hpc-and-excel-2010/">An Introduction to High Performance Computing (HPC) and Excel 2010</a> I highlighted a few key areas to focus on when designing a workbook to utilize the High Performance Computing features of Excel 2010. In this post, I want to emphasize the importance of the HPC_Merge macro and how to avoid major performance issues.</p>
<p>In my last post, I explained how all of the HPC macros are executed on the desktop, except for the HPC_Execute macro. I cannot emphasize enough how important this is to design. The HPC_Merge macro must be optimized to be as fast as possible. Otherwise it will become a bottleneck. The reason is that this macro is called after every core completes its iteration. If you have 100 compute nodes, then the HPC_Merge macro will be called 100 times between “cycles”. The more compute nodes that you have, the faster the HPC_Merge macro needs to be.</p>
<p>Let’s look at some examples.</p>
<p>In a hypothetical good situation, we have 100 compute nodes that each take approximately 20 seconds each to run. When complete, each sends data back to the HPC_Merge macro which take 0.05 seconds to run. This works out to just 5 seconds of merge time per “cycle”. We should not encounter much of a log jam. Each complete “cycle” will take roughly 20 seconds. So if we are computing 10,000 iterations, this means 100 cycles of 100 nodes. 100 x 20 = 2,000 seconds or 33 minutes.</p>
<p>In a hypothetical bad situation, we have the same setup as above, but the HPC_Merge macro now takes 5 seconds to run. This equals 500 seconds per “cycle”. The HPC_Merge macro is now the bottleneck. The performance of the compute nodes is somewhat irrelevant. Each cycle will now take approximately 500 seconds. So, again, if we are computing 10,000 iterations, this means 100 cycles of 100 nodes. 100 x 500 = 50,000 seconds or 833 minutes or roughly 14 hours.</p>
<p>Notice how an inefficient HPC_Merge macro can absolutely destroy the benefits of cluster computing.</p>
<p>You MUST optimize the performance of this macro. Performance issues in the other macros will not have a huge impact, or can be easily overcome by scaling out the compute nodes. You have limited options on the HPC_Merge macro other than to optimize the code.</p>
<p>There are three primary ways to speed up the HPC_Merge macro:</p>
<ol>
<li>General VBA optimization techniques such as turning screen updating off</li>
<li>Using in memory data structures rather than storing things in cells</li>
<li>Optimizing database connections (if you have any)</li>
</ol>
<p>I will cover each of these in future posts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/613/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=613&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/05/09/excel-2010-hpc-and-issues-with-the-hpc_merge-macro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>An Introduction to High Performance Computing (HPC) and Excel 2010</title>
		<link>http://tonypauley.com/2012/05/04/an-introduction-to-high-performance-computing-hpc-and-excel-2010/</link>
		<comments>http://tonypauley.com/2012/05/04/an-introduction-to-high-performance-computing-hpc-and-excel-2010/#comments</comments>
		<pubDate>Fri, 04 May 2012 15:58:26 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=609</guid>
		<description><![CDATA[The newest features of Excel 2010 make it quite easy for anyone to take advantage of parallel computing. If you have an Excel macro that iterates over independent calculations (one calculation does not influence the results of the other) then you can run multiple iterations at once on different compute nodes. This can dramatically reduce [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=609&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The newest features of Excel 2010 make it quite easy for anyone to take advantage of parallel computing. If you have an Excel macro that iterates over independent calculations (one calculation does not influence the results of the other) then you can run multiple iterations at once on different compute nodes. This can dramatically reduce the run time of the overall model. For example, if you have access to 20 eight-core CPUs then you can run 160 iterations at the same time. This means that a macro that used to take a week to run can now be run in about an hour.</p>
<p>This is a game changer.</p>
<p>In order to take advantage of HPC in Excel 2010, you must do a little up front work first.</p>
<p><strong>Step 1:</strong> Get a cluster set up so that you have an environment on which to run. There are a number of ways to accomplish this task. For an overview, see my previous post: <a href="http://tonypauley.com/2012/05/03/how-to-get-started-with-excel-on-the-cloud/">How to Get Started with Excel on the Cloud</a>.</p>
<p><strong>Step 2: </strong>Set up a shell workbook with the proper references, macros, and system variables defined. Microsoft’s website has an <a href="http://www.microsoft.com/en-us/download/details.aspx?id=2939">excellent White paper</a> outlining exactly what you need to do in order to get this set up. I highly recommend reading this paper in detail and then use one of their sample workbooks as a template.</p>
<p><strong>Step 3: </strong>Restructure your macros to interact properly with the standard HPC macros. The rest of this post will focus on this step.</p>
<p><strong>Structure</strong></p>
<p>The standard HPC functions are:</p>
<ol>
<li><strong>HPC_Initialize</strong> – Performs any up front calculations or set up activities</li>
<li><strong>HPC_Partition</strong> – Determines how to split the calculation into parts</li>
<li><strong>HPC_Execute</strong> – Perform a single iteration on the compute nodes</li>
<li><strong>HPC_Merge </strong>– Gather results from the compute node</li>
<li><strong>HPC_Finalize </strong>– Process wrap up activities once all iteration of the HPC_Execute macro have been merged.</li>
<li><strong>HPC_ExecutionError </strong>– Handles calculation errors<strong></strong></li>
<li><strong> </strong><strong>HPC_GetVersion </strong>– Returns the version of the HPC macro framework being used.<strong></strong></li>
</ol>
<p>In order to maximize the performance gains using HPC you must really understand these macros and their implications.</p>
<p>Probably the most important thing to understand is that all of the macros except for the HPC_Execute macro run on the desktop. What this means is that you need to push as much of the processing as possible to that macro in order to get any noticeable benefit.</p>
<p><strong>Data Flow</strong></p>
<p>It is also very important to understand the data flowing from the desktop to the compute nodes and back again. Transferring data can be very slow and is often the bottleneck in applications.  There are some basic rules to follow:</p>
<ol>
<li>You will want your desktop to be located as close to the compute nodes as possible. If using Amazon EC2, this means using a remote desktop.</li>
<li>You need to minimize the data flowing to and from the compute nodes. If possible have the compute nodes write results to a fast database. This is much faster than sending the results back to the desktop. The bottleneck is the HPC_Merge macro. This runs on the desktop whenever a compute node finishes an iteration.</li>
<li>Use fast data structures and pass data in bulk rather than passing values one at a time.</li>
</ol>
<p>I will cover data flow in a lot more detail in future posts.</p>
<p><strong>Partitioning Strategies</strong></p>
<p>Because of the speed issues related to transferring data from machine to machine, it is necessary to sometimes think about the right way to partition up your jobs.</p>
<p>Using our earlier example of 20 eight-core CPUs, we know that we have 160 cores at our disposal. Let’s assume we want to run 160,000 scenarios of a model where the calculations are performed for each of our 16,000 customers. Therefore we have 2,560,000,000 loops to process. There are a number of ways we could accomplish this goal.</p>
<ol>
<li>Send all 16,000 customers along with individual scenario data to 160 cores at a time 1,000 times.</li>
<li>Send 100 customers along with individual scenario data to 160 cores 160,000 times.</li>
<li>Send 16,000 customers and scenario data for 1,000 scenarios to each of the 160 cores 1 time.</li>
<li>Send 16,000 customers and scenario data for 10 scenarios to each of the 160 cores 100 times</li>
<li>etc.</li>
</ol>
<p>You have to realize that each time the compute node runs, the entire Excel workbook and all of the needed data gets transferred across the pipe. As such you need to optimize in four dimensions:</p>
<ol>
<li>Workbook size – smaller is better</li>
<li>Input data size – smaller is better</li>
<li>Output data size – smaller is better</li>
<li>Memory usage – smaller is better</li>
</ol>
<p>This is easier said than done, unfortunately. Workbook size and input data size are very related to each other. Since the workbooks all get copied over each time, you need to try to shrink as much as you can. Workbook size and memory usage are very related to each other. As workbooks grow (sometimes by storing temporary results) they take up more and more memory. If they take up too much, then the processing speed will degrade. Output data size and memory usage are related the same way. Often we can shrink the memory usage by sending back results instead of keeping them in memory or in the workbook.</p>
<p>As you can see it is a bit of a balancing act and will often take a bit of experimentation to structure the partitions the right way. These decisions will be influenced by how much data is flowing around, how powerful your cores are, how fast your network is, etc.</p>
<p>I will go into all of this in more detail in future posts.</p>
<p><strong>Wrapping up</strong></p>
<p>You should now be getting more familiar with what is possible with Excel 2010 and HPC. Please follow along over the next few weeks as I dive into all of this in a bit more detail.</p>
<p>If you have any questions or need any help, please leave a comment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/609/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=609&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/05/04/an-introduction-to-high-performance-computing-hpc-and-excel-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Get Started with Excel on the Cloud</title>
		<link>http://tonypauley.com/2012/05/03/how-to-get-started-with-excel-on-the-cloud/</link>
		<comments>http://tonypauley.com/2012/05/03/how-to-get-started-with-excel-on-the-cloud/#comments</comments>
		<pubDate>Thu, 03 May 2012 16:00:20 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=596</guid>
		<description><![CDATA[Using the high performance computing (HPC) functionality in Excel 2010 is actually very easy. I will cover this in an upcoming post. The more difficult bit is getting your hands on a cluster to run on. You essentially have 4 options: Use an existing cluster on your network Build a small network/cluster yourself Build a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=596&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Using the high performance computing (HPC) functionality in Excel 2010 is actually very easy. I will cover this in an upcoming post. The more difficult bit is getting your hands on a cluster to run on. You essentially have 4 options:</p>
<ol>
<li>Use an existing cluster on your network</li>
<li>Build a small network/cluster yourself</li>
<li>Build a cluster using Amazon EC2</li>
<li>Use a third party service</li>
</ol>
<p><strong>Use an Existing Cluster</strong></p>
<p>If you already have a cluster available then this is by far the easiest option. You just need to get the details from your network administrator.</p>
<p><strong>Build a Network</strong></p>
<p>Another option, though a bit over the top in my opinion, is to purchase a few machines and build the network and cluster yourself. Microsoft put together a nice <a href="http://technet.microsoft.com/en-us/edge/Video/hh965694">tutorial video</a> if you are so inclined. If you are in a corporate environment, this could be very tricky…</p>
<p><strong>Build a Cluster Using Amazon EC2</strong></p>
<p>If you want many servers on the cheap, then it is hard to beat Amazon EC2. The EC2 service is very inexpensive, is very scalable to almost any size, and is fairly easy to use (once configured). The bad news is it is not so easy to configure. If you are not a network administrator, then you may find the process a bit overwhelming and time consuming. When I did this the first time it took me a few days…</p>
<p><a href="http://awsdocs.s3.amazonaws.com/EC2/latest/ec2-wg.pdf">Detailed instructions</a> for setting up the cluster are available from Amazon. Be warned, these instructions do not consider that you need Windows HPC Server 2008 Enterprise in order for Excel 2010 to work properly with HPC. You can download a <a href="http://www.microsoft.com/hpc/en/us/trial/what-is-hpc.aspx">free 180 day trial</a> from Microsoft. <a href="http://www.microsoft.com/en-us/download/details.aspx?id=2939">Detailed instructions</a> on setting up for Excel 2010 HPC are available from Microsoft.</p>
<p>If everything is set up properly you should be able to run the sample files provided with the Excel 2010 instructions above.</p>
<p>Please note that you will need an Excel 2010 license for each compute node.</p>
<p><strong>Use a Third Party Service</strong></p>
<p>Given the complexity of the above methods it is no wonder that service providers have popped up to assist. Providers include <a href="https://www.nimbisservices.com/page/hpc-workbook-learn-more">Nimbis</a> and <a href="http://www.microhpc.com/">MicroHPC</a>.   Using a provider can get you up and running in very little time. However, be aware that all pre-canned solutions always have their own limitations.</p>
<p><strong>Next Steps</strong></p>
<p>Once you have the cluster up and running and have been able to run the sample workbooks then it is time to kick it up a notch and get your hands dirty. In my next post, I’ll walk you through the details of how to convert a standard workbook into an HPC ready workbook to allow you to take full advantage of the power of HPC.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/596/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/596/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/596/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=596&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/05/03/how-to-get-started-with-excel-on-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>How Excel Continues to Change the Way We Work</title>
		<link>http://tonypauley.com/2012/05/02/how-excel-continues-to-change-the-way-we-work/</link>
		<comments>http://tonypauley.com/2012/05/02/how-excel-continues-to-change-the-way-we-work/#comments</comments>
		<pubDate>Wed, 02 May 2012 10:32:11 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=594</guid>
		<description><![CDATA[Back in more civilised times, actuaries and other financial modellers used fairly simple models and a great deal of experience to forecast various financial situations. Since the invention of the computer, the industry has seen the complexity of models grow at an exponential rate. This is not necessarily out of need, but instead is more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=594&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Back in more civilised times, actuaries and other financial modellers used fairly simple models and a great deal of experience to forecast various financial situations. Since the invention of the computer, the industry has seen the complexity of models grow at an exponential rate. This is not necessarily out of need, but instead is more driven by what can now be computed in roughly the same amount of time. I would argue that the complexity of models has grown at nearly the same rate as computing power.</p>
<p>As a result, we have moved away from very transparent models to computer models that are anything but. The unintended consequence is that these models have become increasingly difficult to understand or to check.</p>
<p>Whole “sub-models” are hidden away and buried from view. Those now using these models often do not even understand what these models are doing behind the scenes. Computers now are often just blindly trusted.</p>
<p>This need for trust has been built up as the logic of the models has been hidden further and further away from the user of the models. This was somewhat necessary back when computers were much slower. Logic was programmed by professional programmers and run on mainframe computers. This situation was far from transparent. In order to see the details of calculations and understand the models, analysts needed to rely on printed output generated by these behemoth systems. This situation caused a lot of uneasiness for quite some time and continues to do so today.</p>
<p>Enter Lotus 123 in the mid-eighties. Analysts could now model fairly complex situations without the need for programmers. The struggle between the business and IT truly began. PC based models were fairly limited in scope due to the limited processing power of the PCs themselves. Over time Microsoft Excel overtook Lotus 123 by its ease of use and by adding much more powerful functions than were available in Lotus.</p>
<p>The real turning point was the release of the Intel Pentium chip combined with the release of Excel 5 (aka the birth of VBA) in 1993. All of the sudden PCs were relatively fast and business users could now really get their hands dirty with very easy to write code.</p>
<p>Business users have since fallen in love with Microsoft Excel. Anyone with even the slightest bit of programming ability can develop very complex models in a platform that is incredibly transparent and easy to check (if constructed well). This has caused a number of real problems for the IT department that is often asked to inherit “tools” written in Excel after the tools are being used by many users. These tools are often not fit for enterprise use.</p>
<p>I think we are at another tipping point similar to 1993. Microsoft has once again created a game changer with Excel 2010. This latest version of Excel now allows end users to easily write macros that can be executed in parallel using clustered computing. At the same time various vendors are rolling out cloud computing resources for the masses. If you pair Excel 2010 with Amazon’s EC2 service then you have an incredibly powerful incredibly cheap super computer. The modelling possibilities become literally endless.</p>
<p>Excel models that used to take days now take hours. Those that took hours now take minutes. The trick is finding the right price point. For a price you can make these models as fast as you would like.</p>
<p>What I cannot figure out is why no one seems to know about these features. There is very little information available and very few companies have started to assist in setting up the cloud resources needed.</p>
<p>For large corporations, this is a good thing. It is now time to re-think how Excel fits in the enterprise. It is no longer possible to control the business by limiting access to IT. The proverbial cat is out of the bag. Now that the IT department is not needed in order to build and execute very large, very complex models, the business must be more controlled.</p>
<p>This is going to be a pain for everyone involved. Given the current regulatory environment, auditors are taking very hard line stances regarding control. Most Excel users are anything but controlled. With power comes responsibility. Compliance will not be able to stop users from building these tools. End user computing policies must be crafted and strengthened to meet the needs of both auditors and end users. End users must be trained on how to build controlled, auditable tools.</p>
<p>Welcome to the new world order.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/594/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/594/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/594/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=594&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/05/02/how-excel-continues-to-change-the-way-we-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>The IT Specification Game of “Telephone”</title>
		<link>http://tonypauley.com/2012/03/07/the-it-specification-game-of-telephone/</link>
		<comments>http://tonypauley.com/2012/03/07/the-it-specification-game-of-telephone/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 14:00:10 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=591</guid>
		<description><![CDATA[The distance between the subject matter expert and the code is too great in most large systems. In many cases: the real technical expert conveys their requirements to an operations analyst the analyst then conveys the information to a business analyst in responsible for IT the IT analyst then writes it down for developers and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=591&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The distance between the subject matter expert and the code is too great in most large systems. In many cases:</p>
<ol>
<li>the real technical expert conveys their requirements to an operations analyst</li>
<li>the analyst then conveys the information to a business analyst in responsible for IT</li>
<li>the IT analyst then writes it down for developers and QA staff</li>
<li>the developer then tries to understand what is needed</li>
<li>QA then tries to sign off</li>
</ol>
<p>The people doing the work and signing off are far removed from the business requirement owner. By the time the requirements get to the developer the requirements have been interpreted far too many times. Questions typically go to resources that are not the true experts in the field. In the end the requirements communicated sound more like “I think the business needs something kind of like this, I think”.</p>
<p>The QA staff are equally hindered in their job. Rarely do they actually know what the software being built is actually supposed to do. They are often unaware of the big picture and typically do not have the business skills to know if the big picture need is being met. Their role is typically abstracted to the point of simply ensuring that the code matches the specification.</p>
<p>This is a key point especially when using standard QA testing platforms as the requirements are broken down into many individual parts and each part passes or fails testing. QA tools are not well suited for determining if the overall requirement is being met.</p>
<p>All of this process is painful, time consuming and error prone. This is magnified greatly when using off-shore teams. As a result, the process developing new products often fails to deliver as promised. IT is repeatedly blamed for falling ever behind on deadlines, blowing budgets, and worst of all delivering tools that are insufficient to do the job.</p>
<p>It is critically important to get the business closer to the code and to remove as many layers as possible between the business owner and the end product.</p>
<p>This can sometimes be achieved by hiring business experts within the IT department. In large IT shops this can pay big dividends. These experts play a key role by being able to quickly clarify requirements that are unclear or open to interpretation.</p>
<p>In the off-shore situation, it is critical to get business expertise in the off-shore shop. The language barrier combined with often limited business knowledge means that off-shore teams tend to miss subtleties in requirements and generally have little concept of what tools are really trying to accomplish. The time zone difference exacerbates the problem often causing severe delays. In large shops the cost of embedding experts more than pays for itself.</p>
<p>On the far end of the spectrum is the solution of removing the need for IT resources all together. The ideal situation is when IT delivers an infrastructure to the business that allows the business to:</p>
<ol>
<li>Code their own business logic using tools that they are familiar with (like Excel)</li>
<li>Have complete visibility to the programming logic allowing them the easily sign off</li>
<li>Have the ability to deploy routine changes without the need for heavy deployment activity.</li>
</ol>
<p>This is all very possible using modern tools widely available in the marketplace. The key complication is building in the appropriate controls to ensure that the logic changes have been properly tested and signed off.</p>
<p>None of this is terribly difficult technically. The difficulty lies in two areas:</p>
<ol>
<li>Architectural design needs to accommodate such activities</li>
<li>Governance and control policies need to be adapted to allow the business to be more involved.</li>
</ol>
<p>IT then becomes the enabler that businesses are demanding and the business is able to more precisely and actively manage critical business processes and logic. When executed well the results can be dramatic.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/591/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/591/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/591/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=591&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/03/07/the-it-specification-game-of-telephone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>How IT Can Add Significant Value: By Removing the Need for IT Resources</title>
		<link>http://tonypauley.com/2012/03/06/how-it-can-add-significant-value-by-removing-the-need-for-it-resources/</link>
		<comments>http://tonypauley.com/2012/03/06/how-it-can-add-significant-value-by-removing-the-need-for-it-resources/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 14:00:30 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=588</guid>
		<description><![CDATA[Life in the IT department in most large corporations gets more and more hellish by the day. The current regulatory environment in all corners of the world is becoming more complex by the day. This is particularly true in the US. The scale of mandatory regulatory change can often overwhelm the available IT resource supply. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=588&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Life in the IT department in most large corporations gets more and more hellish by the day.</p>
<p>The current regulatory environment in all corners of the world is becoming more complex by the day. This is particularly true in the US. The scale of mandatory regulatory change can often overwhelm the available IT resource supply. The mandatory nature of the regulatory change often causes even the most important business priorities to get delayed, often indefinitely.</p>
<p>The business demand for IT solutions is growing at an exponential rate. Unfortunately business leaders are ill-equipped to quantify the value of IT. Since many solutions are internal and are not sellable products, the return is often very opaque. As a result, Finance tends to squeeze IT budgets to the point that IT cannot deliver the services that the business leaders are adamant they need.</p>
<p>Even when budgets and resources do exist for key business objectives, the IT processes and the onus of compliance typically greatly lengthen project timelines. The processes are typically so rigid that even the mention of the word “change” can instil fear in the project manager. The business environment can evolve dramatically during the timescale of a typical large project. Current standard IT processes cannot cope with this reality. As a result most IT projects are deemed failures. The problem is not with IT, but instead with the rigid controls that are in place preventing them from meeting the needs of the business.</p>
<p><em> </em><strong><em>I would like to argue that the solution is rather simple. We need to remove the need for IT resources as much as possible.</em></strong></p>
<p><em> </em>Accomplishing this goal is not easy, primarily because it requires careful consideration, careful design, and an acute understanding of the business and its environment.</p>
<p>In the ideal solution, each key system has the following characteristics:</p>
<ol>
<li>Compliance and governance would scalable depending on the nature of change</li>
<li>Business logic would be owned and maintained by business owners but subject to governance</li>
<li>Business logic would be defined by the business using tools that they understand and are comfortable with (ie. MS Excel)</li>
<li>Business logic changes would be deployable by business owners in a similar manner as parameter changes are typically made, without the need for large scale IT deployment/change control processes.</li>
</ol>
<p>You should notice that the key theme of the above solution is to make IT an enabler for the business. The tools are designed to allow the business to manage itself. The current situation is much different.</p>
<p>In response to the push towards compliance, organizations have lost all common sense.Compliance tries to prove beyond a shadow of a doubt that all change has been tested and documented to death. Unfortunately, the manner in which this is implemented insures that the change is tested and documented primarily by someone who knows very little about what it is that they are signing off.</p>
<p>A change is needed to put the control in the right place, in the business. The business owners are often viewed with contempt by most folks in IT because of their “cowboy ways”. I would argue that the behaviour of the business is in response to unreasonable control environments. To break this vicious cycle, compliance, IT and the business must find a better way.</p>
<p>Let the business own and maintain the business. Make them accountable for the compliance aspects. Empower them to do their job. Punish them if they don’t.</p>
<p>Once this change is made, the role of IT is not to make simple business rule changes. Instead IT is needed to change things that no one envisioned would change.</p>
<p>The mind-set of IT changes from “preventing the business from blowing things up” to “enabling innovation”. Which role would you rather play?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/588/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/588/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/588/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=588&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/03/06/how-it-can-add-significant-value-by-removing-the-need-for-it-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
		<item>
		<title>Why IT Cannot Deliver</title>
		<link>http://tonypauley.com/2012/03/05/why-it-cannot-deliver/</link>
		<comments>http://tonypauley.com/2012/03/05/why-it-cannot-deliver/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 17:34:00 +0000</pubDate>
		<dc:creator>Tony Pauley</dc:creator>
				<category><![CDATA[Nimble IT]]></category>

		<guid isPermaLink="false">http://tonypauley.com/?p=583</guid>
		<description><![CDATA[If there is one theme that I hear more than any other related to IT, it is that IT fails to deliver. IT is seen more as a business hindrance than as an enabler. There are a couple of different angles to consider. The front office needs to run and update models continuously sometimes multiple [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=583&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If there is one theme that I hear more than any other related to IT, it is that IT fails to deliver. IT is seen more as a business hindrance than as an enabler.</p>
<p>There are a couple of different angles to consider.</p>
<ol>
<li>The front office needs to run and update models continuously sometimes multiple times a day. The standard IT process just does not and cannot work in that environment.</li>
<li>The back office is being confronted with new mandatory regulatory change at an ever increasing rate. The IT development cycle is typically so long that companies have a difficult time simply implementing required changes in the timelines necessary.</li>
</ol>
<p><strong>The Front Office Risk</strong></p>
<p>The inability for IT to accommodate the front office poses real risk to the enterprise. Analysts often have no choice but to build complex tools using whatever resources they can bring to bear on their own. More often than not, the solutions built consist of very complex Excel workbooks that have not been thoroughly tested. These solutions are often hidden from the view of auditors as they lack any real evidence of control.</p>
<p><strong>The Back Office Risk</strong></p>
<p>Standard IT processes are generally there to ensure compliance with the controls in place for the day to day operations of the company. If the numbers MUST be right, then the software needed to produce the answers MUST go through the process. These processes become sacrosanct as companies acquire standards certifications such as SAS70 or the various flavors of ISO. The processes cannot be bent in any way as to put these credentials at risk. As a result IT tends to grind to a halt, change is glacial and the company’s ability to adapt is severely diminished. This is now the situation at most regulated organizations.</p>
<p><strong>Existing Efforts at a Solution</strong></p>
<p>Many people have tried to solve this problem and none have succeeded. The overwhelming push to “agile” development approaches proves that organizations are desperate to solve the dilemma. The problem with all current “solutions” is that they fail to address the real underlying problems.</p>
<p><strong>How Do We Solve The Problem?</strong></p>
<p>The real underlying problems that need to be addressed are:</p>
<ol>
<li>Systems are designed poorly and provide little flexibility to the user</li>
<li>Controls are inflexible and are not fit for purpose</li>
<li>The IT specification and testing processes create too much distance between the subject matter expert and the underlying code.</li>
</ol>
<p>Any solution needs to address these issues heads on in order to be successful. Once this is accomplished the IT resources can be truly “agile”. To avoid confusion with the current “agile” methodologies we need a new term. Let’s coin the term “Nimble IT” to describe this solution.</p>
<p>Over the coming weeks I intend to dive into this area to highlight exactly how Nimble IT is achievable in any organization and why it is imperative that organizations adapt Nimble IT processes as quickly as possible.</p>
<p>Unlike “agile development” this does not require wholesale changes in methodologies resulting in wholesale departmental rebuild. Instead, Nimble IT requires a focus on design from both an architectural and a UI point of view. Any development methodology will benefit from Nimble IT, so pick whichever fits your organization best.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tonypauley.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tonypauley.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tonypauley.wordpress.com/583/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tonypauley.com&#038;blog=4374097&#038;post=583&#038;subd=tonypauley&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tonypauley.com/2012/03/05/why-it-cannot-deliver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/052d3a47613462fca4cddd8aa7db19f0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleyt</media:title>
		</media:content>
	</item>
	</channel>
</rss>
