<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Dk8AR3k9eip7ImA9WhRUFEo.&quot;"><id>tag:blogger.com,1999:blog-25178118</id><updated>2012-01-25T00:00:46.762-07:00</updated><category term="Process Driven Design" /><category term="Energy" /><category term="Service Oriented Architecture" /><category term="Continuous Process Improvement" /><category term="Traffic" /><category term="Business Process Management" /><category term="Tips for the Business Process Developer" /><category term="Business Suitable Programming" /><category term="Travel" /><category term="Thoughtful Programming" /><category term="Smart Business Programming" /><title>Thoughtful Programmer</title><subtitle type="html">John Reynolds' Blog on Programmers and Programming</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://thoughtfulprogrammer.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>195</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/atom+xml" href="http://feeds.feedburner.com/ThoughtfulProgrammer" /><feedburner:info uri="thoughtfulprogrammer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0UFRX45fip7ImA9WhRWFEk.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-3935310615887225750</id><published>2011-12-20T12:31:00.001-07:00</published><updated>2012-01-01T12:13:34.026-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-01T12:13:34.026-07:00</app:edited><title>Fun with the Rocket Equation</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Paul Allen's recent announcement that he'll be building a massive plane for air-launching rockets spawned a &lt;a href="http://www.space.com/13922-paul-allen-private-space-projects-history.html"&gt;discussion thread over on Space.com&lt;/a&gt;...&lt;br /&gt;
&lt;br /&gt;
I was a bit confused about the economics of the proposal, since it appeared that the plan is to air-launch a &lt;a href="http://www.spacex.com/falcon9.php"&gt;Falcon 9&lt;/a&gt; derivative, but with a payload 10,000 lbs less to &lt;a href="http://en.wikipedia.org/wiki/Low_Earth_orbit"&gt;Low Earth Orbit&lt;/a&gt; than a ground-launch Falcon 9. &amp;nbsp;Fellow commenters pointed out that the rocket appears to be a &lt;a href="http://en.wikipedia.org/wiki/Falcon_5"&gt;Falcon 5&lt;/a&gt; (rather than a Falcon 9), and based on an article I found on wikipedia it appears that air-launch is achieving a 50% increase in the payload carried to LEO (from 9,000lbs to 13,500 lbs).&lt;br /&gt;
&lt;br /&gt;
What I find amusingly disturbing about this discussion thread are the helpful statements that aren't easily verified... &amp;nbsp;Statements such as:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
"launching from a carrier aircraft about doubles the payload, or alternately lets you use a rocket half the size"&lt;/blockquote&gt;
Let's do a fact check on that statement...&lt;br /&gt;
&lt;br /&gt;
There are many factors that differentiate the air-launch of a rocket from ground-launch of a rocket. &amp;nbsp;The first factor that comes into mind is altitude...&lt;br /&gt;
&lt;br /&gt;
Altitude, by itself, is a negligible factor. &amp;nbsp;If you had a platform 1,000 miles high and stepped off the edge you'd fall right back to the ground. &amp;nbsp;Orbits are dependent on velocity, not altitude&amp;nbsp;(LEO velocities are on the order of 17,000 miles per hour).&lt;br /&gt;
&lt;br /&gt;
The altitude factor has more to do with wind resistance. &amp;nbsp;Rockets have to 'push aside' the air, so the denser the air, the more resistance. &amp;nbsp;As the rocket ascends, the air density lessens, so our calculations need to take that into effect. &lt;br /&gt;
&lt;br /&gt;
Another advantage of altitude comes from the nature of the rocket's engines - the effectiveness of an engine in converting fuel to velocity is called specific impulse, and the specific impulse for an engine at sea level is lower than the specific impulse of the same engine in a vacuum - on the order of 20% lower. &amp;nbsp;The higher you go, the closer to vacuum, the higher the specific impulse.&lt;br /&gt;
&lt;br /&gt;
One advantage of 'air-launch' is that you can fly your rocket above the majority of the atmosphere before you 'light the fuse'.&lt;br /&gt;
&lt;br /&gt;
We should note at this point in the interest of full disclosure that space agencies haven't been too keen on building launch facilities on mountains to take advantage of the lower air density. &amp;nbsp;Most launch facilities are at sea level... so air density doesn't seem to be a huge concern in practice.&lt;br /&gt;
&lt;br /&gt;
The&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Latitude"&gt;latitude&lt;/a&gt;&amp;nbsp;of a launch site is much more important than its elevation... &amp;nbsp;Achieving an orbit is dependent on the velocity of the rocket, and a rocket sitting on the ground at the equator already has a velocity of over 1000 miles per how thanks to the &lt;a href="http://en.wikipedia.org/wiki/Earth_rotation"&gt;rotation of the Earth&lt;/a&gt;.&amp;nbsp;The closer the rocket is to the equator, the more it benefits from the Earth's rotation.&lt;br /&gt;
&lt;br /&gt;
One advantage of 'air launch' is that ability to vary the launch location. &amp;nbsp;In the simplest case, you can fly your rocket to the equator to get the full benefit of the Earth's rotation before you 'light the fuse'.&lt;br /&gt;
&lt;br /&gt;
The initial velocity of the rocket is tremendously important... &amp;nbsp;&lt;a href="http://books.google.com/books?id=mJ_ST4_jGg8C&amp;amp;lpg=PP1&amp;amp;dq=A%20Method%20of%20Reaching%20Extreme%20Altitudes&amp;amp;pg=PA7#v=onepage&amp;amp;q=A%20Method%20of%20Reaching%20Extreme%20Altitudes&amp;amp;f=false"&gt;Rockets&lt;/a&gt;, unlike planes, carry all of their&amp;nbsp;propellant. &amp;nbsp;Planes carry fuel, but they burn that fuel using atmospheric oxygen. &amp;nbsp;Rockets have to carry their own oxidizers in addition to their fuel. &amp;nbsp;Oxygen is actually quite heavy... so the relative initial weight of a 'fully fueled' rocket intended to achieve a specific velocity is much more than a comparable 'fully fueled' plane (with an air-breathing engine).&lt;br /&gt;
&lt;br /&gt;
When a plane accelerates, it only has to accelerate it's own mass and the mass of the fuel. &amp;nbsp;When a rocket accelerates, it has to accelerate it's own mass, the mass of the fuel, and the mass of the oxidizer. &amp;nbsp;That's why we've seen a great deal of interest in air-breathing &lt;a href="http://en.wikipedia.org/wiki/Category:Hypersonic_aircraft"&gt;hyper-sonic vehicles&lt;/a&gt;... the eliminate the burden of accelerating that oxidizer.&lt;br /&gt;
&lt;br /&gt;
Allen's air-launch proposal relies on legacy commercial jet engines, so the initial velocity of the rocket is likely to be increased in the neighborhood of 600 miles per hour compared to a ground launch... By using a &lt;a href="http://www.quantumg.net/rocketeq.html"&gt;Rocket Equation Calculator&lt;/a&gt; that I found on the web, I plugged in some numbers and came up with the following rough estimates...&lt;br /&gt;
&lt;br /&gt;
To launch 1000 kilograms to LEO using a rather common rocket engine, the initial rocket weighs about 23,000 kilograms. &amp;nbsp;A similar rocket launched at altitude from an aircraft traveling at 600 mph would only weigh about 12,500 kilograms.&lt;br /&gt;
&lt;br /&gt;
So the poster's comment about needing 'half the rocket' holds true given what we know about Allen's proposal... Now let's look at the payload claim. &amp;nbsp;Going back to my Rocket Equation Calculator and sure enough - My 12,500 kilogram rocket can loft 1000 kilograms to LEO if I start at 600 mph at a very high altitude, but only 540 kilograms if I start at sea level.&lt;br /&gt;
&lt;br /&gt;
Very cool, and very satisfying to boot... but also very, very rough estimates. &amp;nbsp;The devil's always in the details... and obviously some details are missing from these 'back of the envelope' calculations.&lt;br /&gt;
&lt;br /&gt;
It would be marvelous if sites such as &lt;a href="http://space.com/"&gt;Space.com&lt;/a&gt; would add tools to their sites to help their reader's 'fact check' their discussions. &amp;nbsp;The more confidence you have in 'the facts', the more&amp;nbsp;meaningful&amp;nbsp;your conversations can be.&lt;br /&gt;
&lt;br /&gt;
On a related topic, Elon Musk's &lt;a href="http://www.youtube.com/watch?v=IIVCCaYWGpk&amp;amp;feature=channel_video_title"&gt;Why it's so hard to build a reusable rocket&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-3935310615887225750?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ywZy-XTTqytccAbh2h1Cz4lOimo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywZy-XTTqytccAbh2h1Cz4lOimo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ywZy-XTTqytccAbh2h1Cz4lOimo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywZy-XTTqytccAbh2h1Cz4lOimo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/6Gw385RoUdg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/3935310615887225750/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=3935310615887225750" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/3935310615887225750?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/3935310615887225750?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/6Gw385RoUdg/fun-with-rocket-equation.html" title="Fun with the Rocket Equation" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/12/fun-with-rocket-equation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEGRXs-fCp7ImA9WhRQFEs.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-117088952342699300</id><published>2011-12-02T14:14:00.001-07:00</published><updated>2011-12-09T14:03:44.554-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T14:03:44.554-07:00</app:edited><title>Lessons to be learned from Phobos-Grunt</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Today European Space Agency attempts to help salvage Russia's &lt;a href="http://www.google.com/hostednews/ap/article/ALeqM5gVNUeoo14W92NLswdKhojprHwa4A?docId=1931fc0978384c20b4dd181bb7b6f56d"&gt;Phobos-Grunt&lt;/a&gt; mission to Mars were ceased.&lt;br /&gt;
&lt;br /&gt;
This is a big&amp;nbsp;disappointment. &amp;nbsp;Apparently the probe made it to a low Earth orbit, but the subsequent burn to send the craft towards Mars never happened.&lt;br /&gt;
&lt;br /&gt;
Beyond the loss of this mission, it's a glaring reminder of how limited our mastery of space is. &amp;nbsp;We have many superficially impressive assets in space, including a manned space station, but we don't have any real infrastructure in place to 'fix things'. &amp;nbsp;We've got people in orbit, but in a real sense they are less able to fix anything than people on the ground.&lt;br /&gt;
&lt;br /&gt;
Hopefully folks will wake up and reassess how we've been doing business. &amp;nbsp;The US and Russia and China need to stop repeating the same old process of 'fitting the entire mission on a single rocket' and really and truly start building a space infrastructure that allows us to assemble things in orbit, repair and refuel things in orbit, etc.&lt;br /&gt;
&lt;br /&gt;
Commercial companies are ready willing and able to launch payloads to low Earth and geosynchronous orbits. NASA and her peers should leverage that by developing real space-based assets that 'take over from there'. &amp;nbsp;If that infrastructure had been in place today Phobos-Grunt may have been delayed rather than destroyed.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
NASA and her peers need to totally ignore the problem of getting to Earth orbit. They need to assume that the starting point is with something that is already in a low Earth orbit - Something which can either be launched by an existing rocket, or which can be assembled by multiple launches of existing rockets.&lt;br /&gt;
&lt;br /&gt;
Focus on propulsion technologies to get missions where they need to go &lt;a href="http://www.universetoday.com/42167/trips-to-mars-in-39-days/"&gt;as quickly as possible&lt;/a&gt;. Focus on technologies for transforming materials on the moon and asteroids into useful products. Quit trying to redo 'Apollo' (a one shot mission where everything was thrown away) and build the infrastructure needed to truly live in space (rather than just visit).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-117088952342699300?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qZFV9-qiUWk1Yxkipoe6Z_FkJCg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qZFV9-qiUWk1Yxkipoe6Z_FkJCg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qZFV9-qiUWk1Yxkipoe6Z_FkJCg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qZFV9-qiUWk1Yxkipoe6Z_FkJCg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/0oPL2yuoOPs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/117088952342699300/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=117088952342699300" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/117088952342699300?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/117088952342699300?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/0oPL2yuoOPs/lessons-to-be-learned-from-phobos-grunt.html" title="Lessons to be learned from Phobos-Grunt" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/12/lessons-to-be-learned-from-phobos-grunt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EASHc-fCp7ImA9WhRRFk0.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-3369763733489909312</id><published>2011-11-29T07:00:00.001-07:00</published><updated>2011-11-29T16:34:09.954-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T16:34:09.954-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Process Management - From Trails to Rails to Roads</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I've been reading&amp;nbsp;&lt;a href="http://www.amazon.com/Trails-Historic-New-Mexico-Travelers/dp/0786440104"&gt;Trails of Historic New Mexico&lt;/a&gt;&amp;nbsp;this week... &lt;a href="http://thoughtfulprogrammer.blogspot.com/2007/02/arm-chair-explorer.html"&gt;I love traveling&lt;/a&gt; and I love history, so what's not to love about the history of travel?&lt;br /&gt;
&lt;br /&gt;
Throughout history, travel has&amp;nbsp;primarily been a byproduct of trade. &amp;nbsp;If you wanted something that wasn't available locally, you had to travel some place to get it.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Trade routes begin with some greedy explorer or scout who through trial and error managed to travel from &lt;b&gt;Point A&lt;/b&gt; to &lt;b&gt;Point B&lt;/b&gt;. &amp;nbsp;Often they had no idea where they were headed, but if there was something worth trading for wherever they ended up the result would be a trade route.&lt;/li&gt;
&lt;li&gt;Once the explorers proved that you could in fact get from &lt;b&gt;A&lt;/b&gt; to &lt;b&gt;B&lt;/b&gt;, trail blazers set out to determine the best route for getting from from &lt;b&gt;A&lt;/b&gt; to &lt;b&gt;B&lt;/b&gt; on foot or horseback.&lt;/li&gt;
&lt;li&gt;As the need to carry more goods between points &lt;b&gt;A&lt;/b&gt; and&lt;b&gt; B&lt;/b&gt; increased, the traders evolved the footpaths into dirt roads that their wagons could easily traverse.&lt;/li&gt;
&lt;li&gt;As technology improved, rail lines were laid between &lt;b&gt;A&lt;/b&gt; and &lt;b&gt;B&lt;/b&gt; to carry goods more efficiently by train.&lt;/li&gt;
&lt;li&gt;Trains were very efficient at hauling big loads from &lt;b&gt;A&lt;/b&gt; to &lt;b&gt;B&lt;/b&gt;, but the rigidity of the rails made it very difficult to deliver goods to any other destination, so the earlier roads were improved and expanded to meet the new needs with trucks.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
This pattern was repeated time and time again - with Northern New Mexico being no exception...&lt;br /&gt;
&lt;br /&gt;
When traveling by foot between &lt;b&gt;Albuquerque&lt;/b&gt;, &lt;b&gt;Santa Fe&lt;/b&gt;, and &lt;b&gt;Las Vegas&lt;/b&gt; (&lt;b&gt;New Mexico&lt;/b&gt;), people would tend to meander a bit, using landmarks to guide their progress, but varying their paths based on any number of factors (mountains, rivers, weather, wildlife, fellow&amp;nbsp;travelers, etc.):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-98w6wehQilQ/TtUgyxYg3gI/AAAAAAAAWY4/ayBAax80svU/s1600/New+Mexico+Towns.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://2.bp.blogspot.com/-98w6wehQilQ/TtUgyxYg3gI/AAAAAAAAWY4/ayBAax80svU/s640/New+Mexico+Towns.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Despite these seemingly random variations in the routes the&amp;nbsp;travelers&amp;nbsp;would take, over time 'trails' (little more than ruts in the dirt) would develop, making it much easier for those who'd never made the journey to find their way:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ICv83Nl5cig/TtUhHpF0CgI/AAAAAAAAWZA/M6CzraESKfs/s1600/New+Mexico+Trails.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://2.bp.blogspot.com/-ICv83Nl5cig/TtUhHpF0CgI/AAAAAAAAWZA/M6CzraESKfs/s640/New+Mexico+Trails.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
As traffic between the three cities increased, the early trails became wider and smoother. &amp;nbsp;Deep ruts were filled with gravel, bridges were built to cross gullies and rivers. &amp;nbsp;The myriad braids of footpaths merged into a few rather nice roads.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
Travel between the three cities became much more standardized and much more predictable. &amp;nbsp;Life was getting better for the traders:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Gd0YYytp3eo/TtUhVjpor-I/AAAAAAAAWZI/yAyBSMbQxIE/s1600/New+Mexico+Roads.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://1.bp.blogspot.com/-Gd0YYytp3eo/TtUhVjpor-I/AAAAAAAAWZI/yAyBSMbQxIE/s640/New+Mexico+Roads.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
As the cities grew, the need to transport goods between the cities increased dramatically. &amp;nbsp;To meet these needs a Railroad was built. &amp;nbsp;Trains were much more efficient at hauling freight from one local to another, but trains have trouble on steep grades and rails were much more expensive to lay than dirt roads were to construct.&lt;br /&gt;
Consequently, the rails were only laid between Las Vegas and Albuquerque - bypassing Santa Fe. &amp;nbsp;For those still needing to visit Santa Fe, a spur line was built off the main line at the newly founded town of Lamy:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-r07t3r-kEs8/TtUhm1qUf1I/AAAAAAAAWZQ/ooeCKIf5zAY/s1600/New+Mexico+Rails.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://1.bp.blogspot.com/-r07t3r-kEs8/TtUhm1qUf1I/AAAAAAAAWZQ/ooeCKIf5zAY/s640/New+Mexico+Rails.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The rail lines, although efficient for transporting heavy loads, were not flexible in terms of delivering goods to those who were not on the rail line. &amp;nbsp;This lack of flexibility led to a resurgence of trucking once the old roads were improved and expanded:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-r9nzwWd-61A/TtUilH0S1xI/AAAAAAAAWZY/swvqCpAYk5Q/s1600/New+Mexico+Modern+Roads.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://4.bp.blogspot.com/-r9nzwWd-61A/TtUilH0S1xI/AAAAAAAAWZY/swvqCpAYk5Q/s640/New+Mexico+Modern+Roads.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We're not quite back to the routes of those original footpaths, but we're close. &amp;nbsp;The modern roads provide the flexibility of routes and destinations that the old footpaths did coupled with the reliability and speed of delivery afforded by modern trucks.&lt;br /&gt;
&lt;br /&gt;
So what's the lesson that we can learn by using the evolution of trails to rails to roads as an analogy for &lt;b&gt;Business Process Management&lt;/b&gt;? (You knew I couldn't resist)...&lt;br /&gt;
&lt;br /&gt;
Your company's processes evolve in much the same way as roads do. &amp;nbsp;The goals are known - You have to get from &lt;b&gt;Point A&lt;/b&gt; to &lt;b&gt;Point C&lt;/b&gt;, and you have to visit &lt;b&gt;Point B&lt;/b&gt; on the way. &amp;nbsp;The precise set of steps that you have to take on your journey may vary quite a bit until you figure out the best way to accomplish your goal.&lt;br /&gt;
&lt;br /&gt;
Once you've figured out the best way to get from &lt;b&gt;A&lt;/b&gt; to &lt;b&gt;B&lt;/b&gt; to &lt;b&gt;C&lt;/b&gt; it's time to automate what you can. &amp;nbsp;Use a BPM System to build those 'Rails' that guide your steps along the tried and true path... Life is now glorious.&lt;br /&gt;
&lt;br /&gt;
But...&lt;br /&gt;
There's always a but...&lt;br /&gt;
&lt;br /&gt;
Things always change.&lt;br /&gt;
&lt;br /&gt;
If you build the equivalent of a Rail Line from &lt;b&gt;A&lt;/b&gt; to &lt;b&gt;B&lt;/b&gt; to &lt;b&gt;C&lt;/b&gt;, then you're stuck. &amp;nbsp;You can't adapt when something changes. &amp;nbsp;What you really needed were Roads and a Truck instead of Rails and a Train.&lt;br /&gt;
&lt;br /&gt;
I think this is why we're seeing rising interest in &lt;b&gt;Adaptive Case Management&lt;/b&gt; systems. Folk have used BPM Systems to manage their processes, but they're finding that those processes aren't as structured as they thought they were. &amp;nbsp;Way too often, they're finding that the process paths enforced by their BPM System are too rigid, and they're having to 'go outside the system' to get their work done.&lt;br /&gt;
&lt;br /&gt;
This is a serious problem for many folks, and not one that I will trivially dismiss. &amp;nbsp;BPM Systems 'work well' when processes are highly structured. &amp;nbsp;When processes aren't highly structured a BPM System can be more trouble than it's worth.&lt;br /&gt;
&lt;br /&gt;
That said... Process does exist. &amp;nbsp;You &lt;b&gt;&lt;i&gt;need&lt;/i&gt;&lt;/b&gt; to get from &lt;b&gt;Point A&lt;/b&gt; to &lt;b&gt;Point C&lt;/b&gt;. &amp;nbsp;You aren't just taking random steps, hoping to end up 'somewhere' - You have a definite objective that you &lt;b&gt;&lt;i&gt;have&lt;/i&gt;&lt;/b&gt; to reach.&lt;br /&gt;
&lt;br /&gt;
The mistake that we often make is in thinking that there are a fixed number of steps in the Process and the order in which we take the steps is as rigid as those Rail Lines from Las Vegas to Albuquerque.&lt;br /&gt;
&lt;br /&gt;
For every &lt;b&gt;Set of Activities&lt;/b&gt; in a Process there's probably an &lt;b&gt;Alternate Set of Activities&lt;/b&gt; that could be performed in special circumstances. &amp;nbsp;For every &lt;b&gt;Path Through The Proces&lt;/b&gt;s there's probably an &lt;b&gt;Alternate Path&lt;/b&gt; that's appropriate at some time. &amp;nbsp;At any point in your Process, you may need to &lt;b&gt;Expedite the Process&lt;/b&gt; or you may need to &lt;b&gt;Cancel the Process&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
It's generally a fool's mission to try to define every possible Activity and every possible Path in your Process. &amp;nbsp;Even if you did, things change.&lt;br /&gt;
&lt;br /&gt;
So what we really need to define is a&amp;nbsp;'&lt;b&gt;Typical Process&lt;/b&gt;'... a really good definition of the objectives and of what really needs to be accomplished.&lt;br /&gt;
&lt;br /&gt;
When we define the Activities within our Typical Process, we have to be really sensitive to the fact that given enough pressure all Activities are Optional. &amp;nbsp;Somebody somewhere can say "&lt;b&gt;Skip That&lt;/b&gt; and &lt;b&gt;Do This&lt;/b&gt; instead".&lt;br /&gt;
&lt;br /&gt;
I've seen a lot of blogs and articles lauding the &lt;b&gt;Knowledge&lt;/b&gt; &lt;b&gt;Worker's&lt;/b&gt;&amp;nbsp;inherent&amp;nbsp;ability to "&lt;b&gt;Do the Right Thing&lt;/b&gt;"... but in a complex work&amp;nbsp;environment&amp;nbsp;there are often many factors that workers aren't aware of. &amp;nbsp;Workers are often scared to skip a step because they aren't sure that they know all of the ramifications of skipping the step.&lt;br /&gt;
&lt;br /&gt;
To truly empower our Knowledge Workers, we need to (figuratively speaking) provide them with a Map in addition to Directions -&amp;nbsp;transforming&amp;nbsp;them from the Engineers who drive a Train down the Rails to the Truck Drivers who use their experience to pick the best Route.&lt;br /&gt;
&lt;br /&gt;
Without a good Map, a Truck Driver can only follow the signs and hope he doesn't miss one. &amp;nbsp; With a good Map the&amp;nbsp;Knowledgeable&amp;nbsp;Driver can always figure out how to get where they need to go.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-3369763733489909312?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8jPbxW_sDwpz74_lgDftnephXow/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8jPbxW_sDwpz74_lgDftnephXow/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8jPbxW_sDwpz74_lgDftnephXow/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8jPbxW_sDwpz74_lgDftnephXow/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/sDjucyW6qHc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/3369763733489909312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=3369763733489909312" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/3369763733489909312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/3369763733489909312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/sDjucyW6qHc/process-management-from-trails-to-rails.html" title="Process Management - From Trails to Rails to Roads" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-98w6wehQilQ/TtUgyxYg3gI/AAAAAAAAWY4/ayBAax80svU/s72-c/New+Mexico+Towns.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/11/process-management-from-trails-to-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIMR3o6fyp7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-4020356309533975081</id><published>2011-11-18T08:17:00.001-07:00</published><updated>2011-11-18T08:36:26.417-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T08:36:26.417-07:00</app:edited><title>You can't see the (public's) sky because the (vendor's) clouds are blocking it</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I received my Kindle Fire yesterday, and I'm sad to say that I'll most likely return it. I simply don't like the 7 inch form factor.&lt;br /&gt;
&lt;br /&gt;
My best description for the 7 inch form factor is 'Not Quite'... It's not quite small enough to be as convenient as a phone and it's not quite big enough to be useful as a tablet.&lt;br /&gt;
&lt;br /&gt;
If you are a person who loves the 7 inch tablets please don't be upset with me. &amp;nbsp;It's simply a matter of personal preference.&lt;br /&gt;
&lt;br /&gt;
The 7 inch form factor was the first disappointment for me, but when I found how difficult it was for me to access my non-Amazon content it spawned a much deeper concern.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
The Kindle Fire experience doesn't feel like you're connecting to the web - it feels like you're looking through a keyhole into one little room of the web... or perhaps you're trapped in a hallway with many doors and many keyholes. &amp;nbsp;Many of the keyholes are blocked.&lt;br /&gt;
&lt;br /&gt;
That's when it hit me... Amazon isn't giving me access to 'The Cloud', they're giving me access to 'Their Cloud'. &amp;nbsp;Everything that I purchase from them resides in 'Their Cloud'. &amp;nbsp;The same is true for Apple. The stuff I buy from Apple ends up in the 'Apple Cloud'... &amp;nbsp;Flash forward in time and I see myself carrying both an iPad and a Kindle, juggling them from one hand to another in order to access 'My Content' in 'Their Clouds'.&lt;br /&gt;
&lt;br /&gt;
This is actually an extension of my Facebook vs. Google+ woes. &amp;nbsp;The content that I post on either system pretty much stays in those systems. &amp;nbsp;There are some 3rd party approaches for posting to both, but the fact remains that both vendors want to own (or at the very least constrain) access to 'My Content'.&lt;br /&gt;
&lt;br /&gt;
If the Universe was fair, which it isn't, whenever I created any content it would be stored in 'My Cloud'. &amp;nbsp;Whenever I purchased anything it would be stored in 'My Cloud'. &amp;nbsp;Facebook, Google+, Apple, and Amazon would have to pull that content from 'My Cloud' to use it in their apps, and I would set the policies regarding access to 'My Content'.&lt;br /&gt;
&lt;br /&gt;
There is absolutely no economic incentive for Facebook, Google, Apple or Amazon to support the concept of 'My Cloud' versus theirs... so we're probably stuck. &amp;nbsp;Our future sky will be a very cloudy one, and none of those clouds will be ours.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-4020356309533975081?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZIB_6Pv209RSWTJx5mkS5rIUhl4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZIB_6Pv209RSWTJx5mkS5rIUhl4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZIB_6Pv209RSWTJx5mkS5rIUhl4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZIB_6Pv209RSWTJx5mkS5rIUhl4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/9ohIxeLu7rE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/4020356309533975081/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=4020356309533975081" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4020356309533975081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4020356309533975081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/9ohIxeLu7rE/you-cant-see-public-sky-because-vendors.html" title="You can't see the (public's) sky because the (vendor's) clouds are blocking it" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/11/you-cant-see-public-sky-because-vendors.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IFQHwzfip7ImA9WhRTEEU.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-226022436192808206</id><published>2011-10-31T12:23:00.000-06:00</published><updated>2011-10-31T12:25:11.286-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-31T12:25:11.286-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Business Process Management" /><title>Is BPM a subset of Case Management?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://www.column2.com/2011/10/whats-new-in-ibm-ecm-products/"&gt;Sandy Kemsley&lt;/a&gt; recently related a quote from IBM's Feri Clayton regarding BPM:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
“BPM is now considered part of Case Manager”&lt;/blockquote&gt;
Could that statement possibly be true?!?!&lt;br /&gt;
Could BPM be considered to be a subset of Case Management?!?!&lt;br /&gt;
Will cats start breeding with dogs?!?!&lt;br /&gt;
&lt;br /&gt;
Well... except for that last sentence, yes. &amp;nbsp;BPM is a subset of Case. &amp;nbsp;In fact, BPM is a subset of a lot of things - it always has been, and that's caused a lot of marketing confusion over the years... but very few practitioners have cared much about such distinctions.&lt;br /&gt;
&lt;br /&gt;
Process is an integral part of virtually all Business Management scenarios. &amp;nbsp;In Case Management you're generally dealing with a Business Object, and there are many Processes that come into play over the life-cycle of that Business Object.&lt;br /&gt;
&lt;br /&gt;
If we take a good look at any Business Management (software) solution, we're going to see these core elements:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Business Objects&lt;/li&gt;
&lt;li&gt;Business Processes&lt;/li&gt;
&lt;li&gt;Business Rules&lt;/li&gt;
&lt;li&gt;Business Events&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Changes to Business Objects are governed by Rules. &amp;nbsp;The state of Business Objects can trigger Events. &amp;nbsp;Business Processes are used to transform Business Objects. Business Processes can trigger or be triggered by Events... (You are also quite likely to encounter Business Monitoring and Business Analytics in your solution... But I digress...)&lt;br /&gt;
&lt;br /&gt;
It's all very incestuous...&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Any non-trivial Business Management solution - and that certainly includes Case Management solutions - is going to have aspects of data, process, rules and events. Any Case Management System worth its salt is going to incorporate support for data, process, rules and events.&lt;br /&gt;
&lt;br /&gt;
So yes indeed, BPM is a subset of Case Management.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-226022436192808206?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/daybaD8zTVukPYWBzr-QS4DemJE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/daybaD8zTVukPYWBzr-QS4DemJE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/daybaD8zTVukPYWBzr-QS4DemJE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/daybaD8zTVukPYWBzr-QS4DemJE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/fRehOCkPcSc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/226022436192808206/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=226022436192808206" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/226022436192808206?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/226022436192808206?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/fRehOCkPcSc/is-bpm-subset-of-case-management.html" title="Is BPM a subset of Case Management?" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/10/is-bpm-subset-of-case-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYMRH4zfip7ImA9WhdaFEU.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-9214855444507974601</id><published>2011-10-24T10:04:00.000-06:00</published><updated>2011-10-24T12:16:25.086-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-24T12:16:25.086-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>The curious Case of the disappearing BPM Programmer...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I always enjoy reading through Adam Deane's &lt;a href="http://adamdeane.wordpress.com/2011/10/22/bpm-quotes-73/"&gt;BPM Quotes of the Week&lt;/a&gt;, and recently came across this great&amp;nbsp;&lt;a href="http://www.ebizq.net/topics/case_management/features/13257.html"&gt;quote from Lynn Haber&lt;/a&gt; regarding BPM and Case Management:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span class="Apple-style-span" style="color: #073763;"&gt;&lt;b&gt;“Case” and “process” are two distinct concepts. A case contains all the artifacts, including potentially multiple processes, associated with accomplishing a given piece of work. In contrast, a process is the path or paths that a case takes on its journey to completion. The process may or may not be explicitly defined prior to the case being started, depending on the type of work.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
I'm going to quibble with Lynn's statement just a bit - 'a process is the path or paths that a case takes on its journey to completion' misses the mark ever so slightly because completion of a single process within a case usually doesn't "complete" the case itself... but that's just a quibble - Case and Process are distinct concepts.&lt;br /&gt;
&lt;br /&gt;
Process is about transformation -&amp;nbsp;In many processes&amp;nbsp;you start with "something" and you end up with "something else" (a Loan Application becomes a Loan), but in Case you start with "something" and usually end up with the same "something" (but in a different state - such as updating a client's address).&lt;br /&gt;
&lt;br /&gt;
Case is about coordination - Quoting Lynn again:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span class="Apple-style-span" style="color: #073763;"&gt;&lt;b&gt;The best way to think of a "case" is to think about a coordinating object that has to be managed over time. The case folder is simply a single view into the data, tasks, documents and history of that entity.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
Well put Lynn - Case is about managing "something" over time.&lt;br /&gt;
&lt;br /&gt;
So where does this distinction between Case and Process leave the BPM Programmer? &amp;nbsp;Are BPM skills irrelevant in the new world of Dynamic Case Management and Social Process? &amp;nbsp;Are the BPM Programmer's skills doomed for irrelevance every few years just as the skills of System Programmers (C begat C++ begat Java begat Ruby etc.)?&lt;br /&gt;
&lt;br /&gt;
Will BPM Programmers disappear into the mists of interesting but irrelevant oddities of the past?&lt;br /&gt;
&lt;br /&gt;
Fear not, brave BPM Programmer - Your skills are safe.&lt;br /&gt;
&lt;br /&gt;
Case without Process is like Process without Rules is like Rules without Events. &amp;nbsp;Everything builds on everything else when it comes to Managing a Business.&lt;br /&gt;
&lt;br /&gt;
When push comes to shove, you never were a BPM Programmer -&lt;br /&gt;
&lt;br /&gt;
You've always dealt with Business Objects. &amp;nbsp;Those Business Objects have always been associated with Business Rules. &amp;nbsp;Those Business Rules have always been evaluated in response to Business Events. &amp;nbsp;You've always dealt with coordinating changes to Business Objects by related but distinct Business Processes.&lt;br /&gt;
&lt;br /&gt;
Nothing's changed dear colleagues. &amp;nbsp;Your job has always been about writing software to Manage Business. &amp;nbsp;Process is at the core of Business Management, but you always had to deal with Objects, Rules and Events. &lt;br /&gt;
&lt;br /&gt;
You called yourself a BPM programmer, but in reality you've always been a Business Management Programmer (who was really passionate about Process). &amp;nbsp;The "P" has disappeared from our monikers, but we're still alive and well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-9214855444507974601?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eT6cUPiQP49XyVGp53vDf9ssWZc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eT6cUPiQP49XyVGp53vDf9ssWZc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eT6cUPiQP49XyVGp53vDf9ssWZc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eT6cUPiQP49XyVGp53vDf9ssWZc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/FAOHbUNtttg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/9214855444507974601/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=9214855444507974601" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/9214855444507974601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/9214855444507974601?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/FAOHbUNtttg/curious-case-of-disappearing-bpm.html" title="The curious Case of the disappearing BPM Programmer..." /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/10/curious-case-of-disappearing-bpm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8BQnY4eSp7ImA9WhdbFk4.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-2501539067700225940</id><published>2011-10-14T09:52:00.000-06:00</published><updated>2011-10-14T16:54:13.831-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T16:54:13.831-06:00</app:edited><title>Big Government, Big Corporations, and Buggy Code</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Off topic again... here in the USA the "left wing" has inevitably responded to the "right wing" - the &lt;a href="http://teapartypatriots.ning.com/"&gt;Tea Party's&lt;/a&gt;&amp;nbsp;conservative exasperation with big government has been joined by the liberal "&lt;a href="http://www.usatoday.com/news/opinion/editorials/story/2011-10-11/Occupy-Wall-Street-protesters/50735960/1"&gt;Occupy&lt;/a&gt;" movement's exasperation with big corporations.&lt;br /&gt;
&lt;br /&gt;
As a programmer, I'd like to councel both sides to step back and search for common roots for their&amp;nbsp;exasperation. &amp;nbsp;In the heat of rhetoric it looks like these folks are in vehement opposition, but from a programmer's&amp;nbsp;perspective it sure does look like the "bugs" in big government are closely related to the "bugs" in big corporations...&lt;br /&gt;
&lt;br /&gt;
Programmers understand a great many things about "bugs"... In the context of our profession "bugs" are coding mistakes... "code" (aka &lt;a href="http://en.wikipedia.org/wiki/Source_code"&gt;source code&lt;/a&gt;) refers to the instructions that make up our programs... but in a much wider context "code" can be thought of as the mechanisms that guide everything. &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/DNA"&gt;DNA&lt;/a&gt; is the primary "code" that governs life, for example.&lt;br /&gt;
&lt;br /&gt;
Programmers come to understand (through many painful experiences) that it is really, really hard to write "bug free" code (code that is not flawed). &amp;nbsp;Any code that is non-trivial will probably produce results that were never intended (side effects). &amp;nbsp;What seems like a perfectly straight-forward set of computer instructions can result in a hopeless or disastrous mess when executed.&lt;br /&gt;
&lt;br /&gt;
Governments and corporations are also driven by "code". &amp;nbsp;Rules, regulations, laws, edicts, procedures... all contribute to dictate how governments and corporations "run". &amp;nbsp;Flaws in these rules, regulations, laws, edicts, procedures, etc.... Bugs in this "code" are what are exasperating the "Right" and the "Left".&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
The bigger the government or the corporation, the more "buggy code" there is driving it... and that's what makes it hard for policy makers to know where to start. &amp;nbsp;&lt;/blockquote&gt;
&lt;br /&gt;
Often times, well&amp;nbsp;intended&amp;nbsp;attempts to "fix" something simply "breaks" something else... Attempting to fixi what looks like a minor bug often unleashes a major bug to ravage the system.&lt;br /&gt;
&lt;br /&gt;
Programmers (at least the good ones) deal with bugs by going back to the source... What was the intent in the first place? &amp;nbsp;What problems needed to be solved? &amp;nbsp;What goals needed to be reached? &amp;nbsp;Often the "bugs" in the system stem from from poorly crafted problem statements and goals.&lt;br /&gt;
&lt;br /&gt;
In the case of "big corporations"... I think our exasperation stems from their basic goals and the mechanisms that are in place to achieve those goals...&lt;br /&gt;
&lt;br /&gt;
Big corporations are "publicly traded". &amp;nbsp;Investors buy stock in the corporation in anticipation of periodic dividends that will be paid back to the stock holders.&lt;br /&gt;
&lt;br /&gt;
Early in the life of the corporation, the funds raised by selling stock provide the capital that the company needs to develop and market its products... but once the corporation becomes mature the value of the stock effects the investors more directly than it effects the operations of the company.&lt;br /&gt;
&lt;br /&gt;
Consequently, investors beat up on CEOs to keep raising the stock value, and to keep paying higher and higher dividends.&lt;br /&gt;
&lt;br /&gt;
Fifty years ago, very few people invested their saving in stocks. &amp;nbsp;Most people saved their money in banks or purchased bonds (usually government saving bonds). &amp;nbsp;This changed dramatically in the 1980s when &lt;a href="http://www.house.gov/jec/tax/stock/stock.htm"&gt;large numbers of people&lt;/a&gt; began to invest in Mutual Funds via their IRA and 401K plans.&lt;br /&gt;
&lt;br /&gt;
Interesting digression: These charts seem to indicate that there is some correlation between the &lt;a href="http://www.ici.org/pdf/fm-v16n5.pdf"&gt;Mutual Fund ownership trend&lt;/a&gt; and the &lt;a href="http://www.faireconomy.org/news/ceo_pay_charts"&gt;trend in CEO compensation&lt;/a&gt;&amp;nbsp;(rather than corporate profit):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-frcv18WeKYc/Tpi6GpLFu5I/AAAAAAAAWAU/tEC3JC9Ml38/s1600/MutualFundOwnership.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="169" src="http://2.bp.blogspot.com/-frcv18WeKYc/Tpi6GpLFu5I/AAAAAAAAWAU/tEC3JC9Ml38/s320/MutualFundOwnership.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-U1QDWGtR3vQ/Tpi6Ltwq9sI/AAAAAAAAWAc/FruWGUz_edo/s1600/CEO+Pay.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://2.bp.blogspot.com/-U1QDWGtR3vQ/Tpi6Ltwq9sI/AAAAAAAAWAc/FruWGUz_edo/s320/CEO+Pay.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Mutual Funds are generally collections of stocks (and bonds)... They "make it safer" to invest by spreading the risk over a variety of corporate stocks, but they also make ownership extremely abstract. &amp;nbsp;Few people who invest in Mutual Funds have any idea of what corporations they are actually investing in.&lt;/div&gt;
&lt;br /&gt;
Consequently, the investors in Mutual Funds have one, and only one, concern: The increase in value of their shares. &amp;nbsp;Anonymous ownership leads them to focus on profits - Even when obtaining those profits may be harming them in other ways...&lt;br /&gt;
&lt;blockquote style="text-align: left;"&gt;
Many people who owned stock in US corporations lost their jobs when those same US corporations "offshored" work to other countries.&lt;/blockquote&gt;
Government rules and regulations spurred the growth of Mutual Funds... which led to irresponsible Investor demands on CEO's, which lead to "record profits for the rich" but also tremendous losses in "&lt;a href="http://thoughtfulprogrammer.blogspot.com/2011/09/why-johnny-cant-find-good-job.html"&gt;good jobs&lt;/a&gt;" and domestic manufacturing capabilities.&lt;br /&gt;
&lt;br /&gt;
Said another way - Poorly thought out requirements led to the creation of "buggy" rules, regulations, procedures, etc - and a lot of good people got screwed as a result (and a lot of shady people disproportionately benefited).&lt;br /&gt;
&lt;br /&gt;
Hopefully, those on the left and those on the right will all come to see this... "Patching" the "code" to eliminate the side effects just won't cut it. &amp;nbsp;Left and right need to join together to refine their requirements, accurately identify their shared goals and shared problems, and then "clean up the code".&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-2501539067700225940?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jrzZk5xpsgFFyh3Nwd4Jdf4OQnI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jrzZk5xpsgFFyh3Nwd4Jdf4OQnI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jrzZk5xpsgFFyh3Nwd4Jdf4OQnI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jrzZk5xpsgFFyh3Nwd4Jdf4OQnI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/4TdJ3yA-KKU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/2501539067700225940/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=2501539067700225940" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/2501539067700225940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/2501539067700225940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/4TdJ3yA-KKU/big-government-big-corporations-and.html" title="Big Government, Big Corporations, and Buggy Code" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-frcv18WeKYc/Tpi6GpLFu5I/AAAAAAAAWAU/tEC3JC9Ml38/s72-c/MutualFundOwnership.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/10/big-government-big-corporations-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBRn08eCp7ImA9WhdaE0U.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-4599854670493966299</id><published>2011-09-16T13:45:00.000-06:00</published><updated>2011-10-23T09:20:57.370-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T09:20:57.370-06:00</app:edited><title>In case NASA is listening</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Diverging once again from the world of programming...&lt;br /&gt;
&lt;br /&gt;
NASA has just announced the new &lt;a href="http://www.latimes.com/news/nationworld/nation/la-na-nasa-rocket-20110915,0,292138.story"&gt;Space Launch System&lt;/a&gt;. &amp;nbsp;No surprises here - they're taking the Shuttle components and reshuffling them. &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Shuttle-C"&gt;Similar proposal&lt;/a&gt;s for Shuttle component variants were made back in the 1970s before the Shuttle ever flew. &lt;br /&gt;
&lt;br /&gt;
There's nothing technically wrong with this new "big rocket" proposal - The problem is improper allocation of public resources:&amp;nbsp;Spending $3 Billion a year on NASA is a great idea... but we don't need NASA to spend that money on building big rockets any more. Commercial companies like &lt;a href="http://www.ulalaunch.com/site/default.shtml"&gt;United Launch Alliance&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.spacex.com/falcon_heavy.php"&gt;SpaceX&lt;/a&gt; and &lt;a href="http://www.orbital.com/spacelaunch/"&gt;Orbital Sciences&lt;/a&gt; can do that quite nicely.&lt;br /&gt;
&lt;br /&gt;
NASA's building a new big rocket, using Shuttle hardware, in part&amp;nbsp;to keep subsidizing the companies that supplied the Shuttle components... and that's just not fair to the commercial launch companies. &amp;nbsp;If &lt;a href="http://www.pratt-whitney.com/products/pwr/pwr.asp"&gt;Rocketdyne&lt;/a&gt; wants to commercialize the Shuttle Main Engines on their own launcher, that's great. &amp;nbsp;If &lt;a href="http://www.atk.com/"&gt;ATK&lt;/a&gt; wants to try to commercially sell their&amp;nbsp;&lt;a href="http://www.npr.org/templates/story/story.php?storyId=5175151"&gt;Solid Rockets&lt;/a&gt;&amp;nbsp;to launch people into orbit, that's terrific.&lt;br /&gt;
&lt;br /&gt;
The point is, there's no new knowledge to be gained by NASA building another big rocket to get things to orbit. &amp;nbsp;We already know how to do it with "off the shelf" technology. &lt;br /&gt;
&lt;br /&gt;
"Big rockets" are so 20th Century anyway... &amp;nbsp;There's little need for hauling "big" payloads in the first place - We've perfected orbital&amp;nbsp;rendezvous and know how to dock spacecraft to assemble "big things" in orbit. &amp;nbsp;If it's too big to fit on a Falcon Heavy or an &lt;a href="http://www.youtube.com/watch?v=u7lYthfpGjE"&gt;Atlas V&lt;/a&gt;, then send it up in sections.&lt;br /&gt;
&lt;br /&gt;
NASA should focus on what we do &lt;b&gt;&lt;i&gt;after&lt;/i&gt;&lt;/b&gt; we get to orbit.&lt;br /&gt;
&lt;br /&gt;
NASA's spending should focus on &lt;a href="http://nmp.nasa.gov/ds1/tech/ionpropfaq.html"&gt;Ion Thrusters&lt;/a&gt;&amp;nbsp;and other propulsion technologies instead of on big rockets. &amp;nbsp;Why take a 9 month journey to Mars on a "big rocket" when an Ion thruster craft could get you there in &lt;a href="http://www.newscientist.com/article/dn17476-ion-engine-could-one-day-power-39day-trips-to-mars.html"&gt;39 days&lt;/a&gt;? (NASA plans to spend $3 Billion a year on their new "big rocket", but only $400 million a year on &lt;a href="http://www.nasa.gov/offices/oct/game_changing_technology/index.html"&gt;Game Changing&lt;/a&gt; technologies such as this)&lt;br /&gt;
&lt;br /&gt;
NASA's spending should also focus on making things in space (or on the moon) instead of on hauling things up from the Earth. &amp;nbsp;We'll never be more than visitors to space until we can build and repair things there. A Lunar base without a &lt;a href="http://en.wikipedia.org/wiki/Machining"&gt;good machine shop&lt;/a&gt; won't last for long.&lt;br /&gt;
&lt;br /&gt;
NASA's goals shouldn't be mundane "go to the Moon" or "go to an Asteroid" or "go to Mars". &amp;nbsp;NASA's goals should be to enable us to actually live on the Moon, an Asteroid, or Mars. &amp;nbsp;Anything less simply isn't worth doing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update: 29 Sep 2011:&lt;/b&gt;&lt;br /&gt;
Elon Musk of SpaceX announced his company's &lt;a href="http://www.c-span.org/Events/National-Press-Club-The-Future-of-Human-Spaceflight/10737424486/"&gt;plans to create a reusable launch system&lt;/a&gt;... Somewhat along the lines of the &lt;a href="http://en.wikipedia.org/wiki/McDonnell_Douglas_DC-X"&gt;DC X&lt;/a&gt; which languished and died back in the 90s. &amp;nbsp;Big programs sucked up all the money, living very little for researching new approaches... Which is probably what the new SSL will do if it goes forward. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update: 23 Oct 2011:&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.blogger.com/goog_2006996891"&gt;NASA rejects&amp;nbsp;&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: georgia, 'times new roman', times, serif; font-size: 15px; line-height: 22px;"&gt;&lt;a href="http://www.nytimes.com/2011/10/23/science/space/23nasa.html?_r=4"&gt;a study&lt;/a&gt; that concludes that NASA could forgo the heavy-lift and use existing smaller rockets, combined with fuel depots, to reach its targets more quickly and&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.nasawatch.com/archives/2011/10/nasa-studies-sh.html" style="background-color: white; color: #004276; font-family: georgia, 'times new roman', times, serif; font-size: 15px; line-height: 22px;"&gt;less expensively&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: georgia, 'times new roman', times, serif; font-size: 15px; line-height: 22px;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-4599854670493966299?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gJ8LD1_LQw8z-LASHHS6jjEM9Mk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gJ8LD1_LQw8z-LASHHS6jjEM9Mk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gJ8LD1_LQw8z-LASHHS6jjEM9Mk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gJ8LD1_LQw8z-LASHHS6jjEM9Mk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/m--4XRd1muU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/4599854670493966299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=4599854670493966299" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4599854670493966299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4599854670493966299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/m--4XRd1muU/in-case-nasas-listening.html" title="In case NASA is listening" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/09/in-case-nasas-listening.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4CQHszeip7ImA9WhdWGEg.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-6070382726548186651</id><published>2011-09-12T10:43:00.000-06:00</published><updated>2011-09-12T12:42:41.582-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-12T12:42:41.582-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Visible Business</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
The key to writing really good software is to truly understand why you are writing that software in the first place.&lt;br /&gt;
&lt;br /&gt;
Occasionally I'll create software for my personal use, but most of the time I'm writing software for someone else. &amp;nbsp;I write the software because "It's my job"... or more precisely because "It's my job to write software to satisfy the requirements that 'my boss' gives me". &amp;nbsp;Perfectly true, but not in the least bit helpful. &amp;nbsp;There's a rambling chain of events that leads from "an idea" to "requirements", and prior to that there are innumerable events and coincidences that lead up to "an idea" that's worth doing.&lt;br /&gt;
&lt;br /&gt;
You often have to delve way, way back in time to truly understand why you are writing that specific piece of software.&lt;br /&gt;
&lt;br /&gt;
I am going to suggest that if the software you are writing is Business Software, then at the innermost core of your requirements you are very likely to find something related to Business Visibility. &amp;nbsp;The &lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Raison_d'%C3%AAtre"&gt;raison d'être&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&amp;nbsp;for your software will be tied to someone's need to know what's going on in their business.&lt;br /&gt;
&lt;br /&gt;
At the heart of most Business Software are Business Events. &amp;nbsp;Something has happened.&lt;br /&gt;
&lt;br /&gt;
You may be writing software to detect or determine that "Something has happened", or you may be writing software to deal with the fact that "Something has happened".&lt;br /&gt;
&lt;br /&gt;
Either way, visibility is the key... your software is either making "something that has happened" visible, or your software is making "something that needs to happen" visible. &amp;nbsp;Your software may be making "something" visible to people, or your software may be making "something" visible to another system. &amp;nbsp;This is obviously a gross simplification... but it's often a useful one.&lt;br /&gt;
&lt;br /&gt;
With Business Visibility as our goal, we can now begin to make sense of things:&lt;br /&gt;
&lt;br /&gt;
Business Activity Monitoring - Some kind soul has been thoughtful enough to instrument their software. &amp;nbsp;When "something happens", they make note of that fact. &amp;nbsp;Often times they'll update a database table somewhere, or they may "broadcast a message". &amp;nbsp;Business Activity Monitoring is all about seeing those changes.&lt;br /&gt;
&lt;br /&gt;
Business Rules - You've got all sorts of data - and you need to figure out what to do with it. &amp;nbsp;Perhaps "something just happened", but what you do about it depends on many other things. &amp;nbsp;Business Rules connect the dots to help you see what needs to be done.&lt;br /&gt;
&lt;br /&gt;
Business Process Management - "Something happened", and you figured out that "what to do about it" requires performing multiple steps. &amp;nbsp;Business Process Management provides visibility into all the things that need to be done, when they need to be done, to whoever needs to do those things.&lt;br /&gt;
&lt;br /&gt;
Business Analytics - A whole lot of "somethings" happened, and a whole lot of other things were done in reaction to those "somethings". &amp;nbsp;Business Analytics is all about helping folks see (from numerous perspectives) what happened in the past, and using those insights to "see" into what's likely in the future.&lt;br /&gt;
&lt;br /&gt;
As programmers, we're likely to be asked to write software that deals with any of these aspects, or any mix of these aspects, of Business Visibility. &amp;nbsp;We'll likely get mired in the technology aspects of the problem very early on, and we'll likely spend most of our efforts overcoming the technical hurdles of the problem - but if we lose site of the fact that Business Visibility is the real goal we'll probably screw up.&lt;br /&gt;
&lt;br /&gt;
Conceptually, the Visible Business is very simple to explain and to understand. &amp;nbsp;Our Business colleagues know what they need to see, and all of the minutiae attached to those needs (security, timeliness, etc.). &amp;nbsp;Let's do them a favor and not complicate that conceptual simplicity with our own&amp;nbsp;arcane&amp;nbsp;software concerns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-6070382726548186651?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0P0xcFcBaKJ_9Pkysu5LXv5_icw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0P0xcFcBaKJ_9Pkysu5LXv5_icw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0P0xcFcBaKJ_9Pkysu5LXv5_icw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0P0xcFcBaKJ_9Pkysu5LXv5_icw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/ljTFxCCbudA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/6070382726548186651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=6070382726548186651" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6070382726548186651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6070382726548186651?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/ljTFxCCbudA/visible-business.html" title="Visible Business" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/09/visible-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEANQn47cCp7ImA9WhdbFk4.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-783894896936183806</id><published>2011-09-08T11:00:00.001-06:00</published><updated>2011-10-14T16:53:13.008-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T16:53:13.008-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Why Johnny can't find a good job</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This post is a bit of a departure from my usual commentary... but I think it's good for programmers to&amp;nbsp;occasionally&amp;nbsp;think about the world beyond their boundaries. &amp;nbsp;Today I'd like for you to think about why it's so hard for people to find "good jobs"...&lt;br /&gt;
&lt;br /&gt;
I was born in the late 1950's, and from the following chart (&lt;a href="http://upload.wikimedia.org/wikipedia/commons/7/77/World-Population-1800-2100.png"&gt;courtesy of wikipedia&lt;/a&gt;) you'll see that the population of the world has roughly doubled in my life time...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-okRwgtt4_yU/TmjqsmWb-UI/AAAAAAAAV8Q/X5pWiMQkwR0/s1600/World-Population-1800-2100.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-okRwgtt4_yU/TmjqsmWb-UI/AAAAAAAAV8Q/X5pWiMQkwR0/s320/World-Population-1800-2100.png" width="313" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
That in itself should start you thinking... &amp;nbsp;If there are twice as many people in the world today then there were when I was born, then we'd need twice as many "good jobs" for people to work as we did back in 1960.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
You might think that the relationship between "workers needed" and "total population" would be a relatively constant percentage... and for most of human history it probably was... but that ratio is dropping as can be seen in the following model proposed by Colin Clark (&lt;a href="http://en.wikipedia.org/wiki/File:Clark%27s_Sector_Model.png"&gt;also from wikipedia&lt;/a&gt;)...&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-pRtBrxlWbc4/Tmjt0fCDFTI/AAAAAAAAV8U/7vMWA1IqLSM/s1600/Clark%2527s_Sector_Model.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/-pRtBrxlWbc4/Tmjt0fCDFTI/AAAAAAAAV8U/7vMWA1IqLSM/s320/Clark%2527s_Sector_Model.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
It's a bit of a stretch, but let me assert that most "good jobs" fit into the category "Primary and Secondary Activities" in Clark's model. &amp;nbsp;"Good Jobs" are generally those where you actually get to produce something. &amp;nbsp;"Good Jobs" are those where your efforts result in a tangible contribution that benefits the lives of others.&lt;/div&gt;
&lt;blockquote&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;&lt;a href="http://www.thetrumpet.com/?page=article&amp;amp;id=1955"&gt;Here in the USA&lt;/a&gt;: "manufacturing as a share of the economy has been plummeting. In 1965, manufacturing accounted for 53 percent of the economy. By 1988 it only accounted for 39 percent, and in 2004, it accounted for just 9 percent."&lt;/span&gt;&lt;/blockquote&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-hSF0-Z8xUUk/Tpi891TZlfI/AAAAAAAAWAk/EXb_8kAeLzk/s1600/ManufacturingJobTrend.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-hSF0-Z8xUUk/Tpi891TZlfI/AAAAAAAAWAk/EXb_8kAeLzk/s320/ManufacturingJobTrend.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://www.businessinsider.com/charts-of-the-week-manufacturing-2010-8?op=1"&gt;USA Manufacturing Jobs percentage over time&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Many of those manufacturing jobs went elsewhere - but many simply disappeared as manufacturing technology improved.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Unfortunately, many of our efforts as Programmers and Engineers result (as a side effect) in the elimination of what were once considered by many to be "good jobs". &amp;nbsp;We build machines and software to reduce the amount of human effort that is required to accomplish tasks. &amp;nbsp;For example, when I was born, working in an Automotive Assembly Plant was considered to be a really good job... but now it's pretty clear that Industrial Robots have taken over most of what used to be "skilled labor" in that industry:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-WychkS8fnpw/TmjyzBfXKfI/AAAAAAAAV8Y/xR8OJUQ6zck/s1600/news1_figa-1105vsd.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-WychkS8fnpw/TmjyzBfXKfI/AAAAAAAAV8Y/xR8OJUQ6zck/s320/news1_figa-1105vsd.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The end result (where we are today) is pretty easy to understand:&lt;/div&gt;
&lt;blockquote&gt;
Increased Population + Increased Automation = Fewer "Good Jobs" Per Capita&lt;/blockquote&gt;
&lt;br /&gt;&lt;/div&gt;
And that's why Johnny can't find a good job.
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-783894896936183806?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VqF_BLM-Ne5dPi_hRfUXxg2jPeE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VqF_BLM-Ne5dPi_hRfUXxg2jPeE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VqF_BLM-Ne5dPi_hRfUXxg2jPeE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VqF_BLM-Ne5dPi_hRfUXxg2jPeE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/UGBP0oidWyI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/783894896936183806/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=783894896936183806" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/783894896936183806?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/783894896936183806?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/UGBP0oidWyI/why-johnny-cant-find-good-job.html" title="Why Johnny can't find a good job" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-okRwgtt4_yU/TmjqsmWb-UI/AAAAAAAAV8Q/X5pWiMQkwR0/s72-c/World-Population-1800-2100.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/09/why-johnny-cant-find-good-job.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FRH06fyp7ImA9WhdXGU0.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-6976198348927206986</id><published>2011-09-01T14:20:00.001-06:00</published><updated>2011-09-01T14:28:35.317-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T14:28:35.317-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>The Never Changing Nature of Work</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Sandy Kemsley has posted a really short-but-sweet presentation on the spectrum of Business Processes and the way we need to manage them entitled &lt;a href="http://www.column2.com/2011/08/the-changing-nature-of-work/"&gt;The Changing Nature Of Work&lt;/a&gt;. &amp;nbsp;I think Sandy is spot-on with her analysis... But call me a malcontent... she's mis-titled her deck. &amp;nbsp; I just don't believe that the Nature Of Work ever really changes.&lt;br /&gt;
&lt;br /&gt;
Some processes are '&lt;b&gt;&lt;a href="http://www.cartoonstock.com/directory/a/assembly_line.asp"&gt;Predictably&amp;nbsp;Repetitive&amp;nbsp;To The Point Of Being Boring&lt;/a&gt;'&lt;/b&gt;, and other processes are '&lt;b&gt;&lt;a href="http://www.sciencecartoonsplus.com/pages/gallery.php"&gt;Then A Miracle Happens&lt;/a&gt;&lt;/b&gt;' by nature. &amp;nbsp;Most processes are a mix of these two extremes... and they always have been.&lt;br /&gt;
&lt;br /&gt;
What's changed in recent memory is our ability to effortlessly interact with people "who aren't here" in real time. We haven't changed, so &lt;a href="http://en.wikipedia.org/wiki/Dunbar's_number"&gt;the number of people that we can effectively interact with hasn't changed&lt;/a&gt;... but now that group of people can be scattered across continents and hemispheres without adversely impacting the efficiency of our processes (in theory).&lt;br /&gt;
&lt;br /&gt;
One of my favorite clients once told me:&lt;br /&gt;
&lt;blockquote&gt;"The only difference between theory and reality is that in theory there is no difference."&lt;/blockquote&gt;That's where we have to focus some of our "Social BPM" efforts... on reconciling the theory that geographic dispersion doesn't matter when the reality is that geographic dispersion really does matter. &lt;br /&gt;
&lt;br /&gt;
Chatting "in real time" when it's noon in your time zone but 2 am where your colleague lives isn't going to solve many of your process problems.... and trying to coordinate simultaneous "face time" when your team is spread across the world is a major and often&amp;nbsp;unreachable goal. &amp;nbsp;Suddenly those people you've added to your process are a drain, not an asset.&lt;br /&gt;
&lt;br /&gt;
We've got the Technology to "Flatten the Earth", but those darn Time Zones are still there... so our BPM tools really won't be Social until they make it easier to deal with that inconvenient truth. &lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-6976198348927206986?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N5-IyHjqZ3gZYkQrf6TL76I23oo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N5-IyHjqZ3gZYkQrf6TL76I23oo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N5-IyHjqZ3gZYkQrf6TL76I23oo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N5-IyHjqZ3gZYkQrf6TL76I23oo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/wblch72QMto" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/6976198348927206986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=6976198348927206986" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6976198348927206986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6976198348927206986?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/wblch72QMto/never-changing-nature-of-work.html" title="The Never Changing Nature of Work" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/09/never-changing-nature-of-work.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGQ3c6eCp7ImA9WhdXEEk.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-4913861586183165427</id><published>2011-08-22T15:23:00.000-06:00</published><updated>2011-08-22T15:23:42.910-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-22T15:23:42.910-06:00</app:edited><title>Why WebOS didn't matter</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I was stunned when Hewlett Packard &lt;a href="http://gizmodo.com/5832909/hitler-reacts-to-webos-death"&gt;pulled the plug on the HP Touch&lt;/a&gt; and its WebOS after just a couple of months...&lt;br /&gt;
&lt;br /&gt;
When I first read the announcement, I couldn't believe that a major player like HP would make such a mess of things, even more so than when &lt;a href="http://www.informationweek.com/news/personal-tech/tablets/229401670"&gt;RIM stumbled rolling out their Playbook&lt;/a&gt;.&amp;nbsp; I honestly thought somebody had hacked the HP site and planted a phony story for laughs.&lt;br /&gt;
&lt;br /&gt;
What's the world coming to when major technology players can't even succeed at being "also-rans" in the Tablet space?&lt;br /&gt;
&lt;br /&gt;
Marc Andreessen probably has the right answer in his essay &lt;a href="http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html"&gt;Why Software Is Eating The World&lt;/a&gt;:&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;&lt;li&gt;The software is where the money is&lt;/li&gt;
&lt;li&gt;The software runs "out there" in the cloud&lt;/li&gt;
&lt;li&gt;The device end users access the software with doesn't really matter all that much to the service providers&lt;/li&gt;
&lt;/ol&gt;That leaves Tablets in a very odd space... End users want cool Tablets, but nobody besides Apple and a bunch of Android clones will bother to build them.&amp;nbsp; Sort of a replay of the PC world where extremely low profit margins led to the near impossibility of finding a well made PC... but what took years for PCs took months for Tablets.&lt;br /&gt;
&lt;br /&gt;
I'm guessing that (just like PCs) Apple's iPad will continue to be a high quality device (which you'll pay more for), and there will continue to be dozens of indistinguishable Android Tablets for about half the price.&amp;nbsp; Maybe &lt;a href="http://investor.google.com/releases/2011/0815.html"&gt;Google's Motorola Mobile&lt;/a&gt; division will be the exception... but probably not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-4913861586183165427?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OyJG7m3jGypN30oiXsL4UDRKa7c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyJG7m3jGypN30oiXsL4UDRKa7c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OyJG7m3jGypN30oiXsL4UDRKa7c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyJG7m3jGypN30oiXsL4UDRKa7c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/hVUYRTY0ZeA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/4913861586183165427/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=4913861586183165427" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4913861586183165427?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4913861586183165427?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/hVUYRTY0ZeA/why-webos-didnt-matter.html" title="Why WebOS didn't matter" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/08/why-webos-didnt-matter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYNQ3w7fyp7ImA9WhdRGU0.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-1069583088971734653</id><published>2011-08-09T08:28:00.001-06:00</published><updated>2011-08-09T08:29:52.207-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-09T08:29:52.207-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Interdependent Tasks</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Sam manages Bob, Barb, Brad and Bill, and one of his many responsibilities is to review and act on their requests for vacation.&lt;br /&gt;
&lt;br /&gt;
The Vacation Approval process is very simple:&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;&lt;li&gt;The Employee initiates the Vacation Request&lt;/li&gt;
&lt;li&gt;The Manager reviews the Vacation Request and renders a Decision&lt;/li&gt;
&lt;li&gt;The Employee is notified about the Manager's Decision&lt;/li&gt;
&lt;/ol&gt;So far so good... but implementing this process gets complicated pretty quickly.&lt;br /&gt;
&lt;br /&gt;
Sam can't really (in good conscience) make a Decision about any Vacation Request in isolation.&amp;nbsp; Only one Employee can be absent at any one time, so every Decision that Sam makes potentially effects all of the Pending Requests.&amp;nbsp; To be fair to everyone, Sam needs to take into account all of the Pending Vacation Requests before rendering a Decision on any of them.&lt;br /&gt;
&lt;br /&gt;
What looks at first glance like a simple Request Approval process has revealed itself to be a Parallel Request Approval process.&amp;nbsp; The "Make a Decision" Task for one Vacation Request is linked to all other pending Vacation decisions.&lt;br /&gt;
&lt;br /&gt;
Examples like these are what makes implementing "real world" processes hard.&amp;nbsp; Processes seldom execute in a vacuum, and work done within one instance often influences other instances.&amp;nbsp; Participants often have to consider multiple Tasks together, rather than performing each task in isolation.&lt;br /&gt;
&lt;br /&gt;
Some of you are no doubt awaiting in breathless anticipation for me to reveal an elegant solution for dealing with Interdependent Tasks through clever BPMN modeling... but alas, I have no canned solution.&amp;nbsp; When I encounter these situations I fall back on custom coding with varying results.&amp;nbsp; My only advice (today) is to spot these cross-task dependencies early on in your projects and deal with them as best as you can.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-1069583088971734653?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8kO0gouptAooyKRwkr9fP_QrrAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8kO0gouptAooyKRwkr9fP_QrrAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8kO0gouptAooyKRwkr9fP_QrrAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8kO0gouptAooyKRwkr9fP_QrrAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/eLb59X0yt0I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/1069583088971734653/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=1069583088971734653" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1069583088971734653?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1069583088971734653?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/eLb59X0yt0I/interdependent-tasks.html" title="Interdependent Tasks" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/08/interdependent-tasks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUABQXs8cCp7ImA9WhdRFUU.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-1286885864319501268</id><published>2011-08-05T16:27:00.002-06:00</published><updated>2011-08-05T16:35:50.578-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-05T16:35:50.578-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Scratching the Programming Itch</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;My wife Teri has been using &lt;a href="http://scratch.mit.edu/"&gt;Scratch&lt;/a&gt; with her students for quite awhile, and every time I take a look I just get more impressed at where it's leading...&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Jj8X8jVvIOo/TjxwBSRCMbI/AAAAAAAAVvs/h4dmzwOY6qM/s1600/HelloWorld.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-Jj8X8jVvIOo/TjxwBSRCMbI/AAAAAAAAVvs/h4dmzwOY6qM/s1600/HelloWorld.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://appinventor.googlelabs.com/learn/whatis/index.html"&gt;Google's App Inventor&lt;/a&gt; is a good example of how Scratch is escaping it's play pen... It let's you build apps for your Android phone "without writing a line of code" ;-)&lt;br /&gt;
&lt;br /&gt;
My favorite Scratch extension is &lt;a href="http://byob.berkeley.edu/"&gt;BYOB&lt;/a&gt; (Build Your Own Blocks) which elevates scratch from elementary programming to something quite a bit more serious by adding procedures and lists.&amp;nbsp; This is a fantastic example of how adding in a few simple constructs can greatly improve the power of a programming tool without making it any more complex for the new users.&lt;br /&gt;
&lt;br /&gt;
Honorable mention certainly goes to &lt;a href="http://waterbearlang.com/"&gt;Waterbear&lt;/a&gt; - a pure JavaScript blocks editor that points the way to Browser-Based Scratch (like) programming.&amp;nbsp; Great work.&lt;br /&gt;
&lt;br /&gt;
Block programming does indeed become tedious when building large programs, and good code editors can catch virtually all of the syntax errors that blocks prevent... but I think it would be a mistake to discount the approach.&amp;nbsp; Blocks have proven to be a great way to get started in programming, and with the proper blocks most folks might not ever need much more.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-1286885864319501268?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zOgKg9UcUwLXUA_0lcAfxByHO3Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zOgKg9UcUwLXUA_0lcAfxByHO3Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zOgKg9UcUwLXUA_0lcAfxByHO3Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zOgKg9UcUwLXUA_0lcAfxByHO3Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/qxivBZxJzek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/1286885864319501268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=1286885864319501268" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1286885864319501268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1286885864319501268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/qxivBZxJzek/scratching-programming-itch.html" title="Scratching the Programming Itch" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Jj8X8jVvIOo/TjxwBSRCMbI/AAAAAAAAVvs/h4dmzwOY6qM/s72-c/HelloWorld.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/08/scratching-programming-itch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYBQn0_cSp7ImA9WhdTEUk.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-7668816254688514711</id><published>2011-07-08T12:02:00.000-06:00</published><updated>2011-07-08T12:02:33.349-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T12:02:33.349-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Detecting Slips and Avoiding Mistakes</title><content type="html">I've been browsing my old copy of &lt;a href="http://en.wikipedia.org/wiki/Donald_Norman"&gt;Donald Norman's&lt;/a&gt; book &lt;a href="http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746"&gt;The Design of Everyday Things&lt;/a&gt; and find myself re-pondering Slips and Mistakes.&lt;br /&gt;
&lt;br /&gt;
By Norman's definition:&lt;br /&gt;
&lt;blockquote&gt;"Slips result from automatic behavior... Mistakes result from conscious deliberations"&lt;/blockquote&gt;I've found myself slipping more lately.&lt;br /&gt;
&lt;br /&gt;
To paraphrase Norman, when your goal is correct, but you get lost in the execution, that's a slip.&amp;nbsp; When your goal is wrong, that's a mistake (especially if you accomplish that goal).&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Our goals, by and large, are the right ones... but we're all too often trying to reach those goals by doing things the way that we've always done things.&amp;nbsp; We're not consciously choosing our approaches for problem solving - We're automatically going through the steps.&lt;br /&gt;
&lt;br /&gt;
As usual, I'm going to bring this back to the development and maintenance of Business Software Solutions...&lt;br /&gt;
&lt;br /&gt;
We know that the environment that our business inhabits is constantly changing.&amp;nbsp; New competitors enter the scene, governments change their policies, our supporting infrastructure becomes unreliable... We have to respond to these changes, or our business (government, country) will falter.&lt;br /&gt;
&lt;br /&gt;
Adapt or perish.&lt;br /&gt;
&lt;br /&gt;
The goal of Business Software Solutions is always two-fold:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Make the Business more profitable&lt;/li&gt;
&lt;li&gt;Make the Business stronger (more able to weather changes)&lt;/li&gt;
&lt;/ol&gt;Nobody ever makes a conscious decision to pursue goals that counter either of these... so when we don't reach these goals it's a slip.&lt;br /&gt;
&lt;br /&gt;
Business must be able to run smoothly (to make a profit).&amp;nbsp; Anything in our organization that helps us to run smoothly is "a good thing". &lt;br /&gt;
&lt;br /&gt;
Business must be able to adapt to change.&amp;nbsp; Anything in our organization that impedes our ability to adapt to change is "a bad thing".&lt;br /&gt;
&lt;br /&gt;
IT groups help us to run smoothly, so they are indeed a very, very good thing... But when we rely on our IT groups to "drive" when our business must adapt to a change... well... then often the IT group is seen as an impediment to change (a very, very bad thing). &lt;br /&gt;
&lt;br /&gt;
It's an error if you rely on IT to drive business change... IT doesn't know your business as well as you do.&amp;nbsp; They know a lot of things that can really help you, but it's simply not their job to drive the direction of your business.&lt;br /&gt;
&lt;br /&gt;
I'm going to make an un-founded assertion: Most businesses are unconsciously ceding the driving (of change implementation) duties to IT.&amp;nbsp; It's not a conscious decision, it's an automatic response based on the deep seated insecurity that the "T" in IT is so horrendously complex that if business ever messed with it all hell would break loose.&lt;br /&gt;
&lt;br /&gt;
Perhaps... but "I" is what's important.&amp;nbsp; Information is the treasure, and business &lt;a href="http://en.wikipedia.org/wiki/Grok"&gt;groks&lt;/a&gt; the information and decides what to do with it.&lt;br /&gt;
&lt;br /&gt;
You have to drive, and if you abdicate that responsibility (consciously or unconsciously) you've made an error and taken us one step closer to the world described in &lt;a href="http://en.wikipedia.org/wiki/The_Marching_Morons"&gt;The Marching Morons&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Business has to consciously hold the reigns, and IT has to respond to guidance.&amp;nbsp; We can't have Software Development Life Cycle&amp;nbsp; dogmas that tell business "you can't do that" and we can't have "&lt;a href="http://deepscrum.wordpress.com/2009/09/24/what-is-a-scrum-nazi/"&gt;Scrum Nazis&lt;/a&gt;" dictating to business which features get implemented or deferred.&lt;br /&gt;
&lt;br /&gt;
To really make this happen - in my less than humble opinion - we have to stop slipping up and set a conscious goal of really enabling the business to drive our software projects, and to do that we have to set a conscious goal to make software solutions comprehensible to business people...&lt;br /&gt;
&lt;br /&gt;
You can't drive what you don't understand... so we've got to subjugate our cool software development desires to the goal of "the business can see what you did".&amp;nbsp; They may not understand everything that's "under the hood", but they can't drive unless they can see all the parts, see how they're combined, and understand what they do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-7668816254688514711?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jNqmQDqeHZgVbOcy6C4kn4bDaY4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jNqmQDqeHZgVbOcy6C4kn4bDaY4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jNqmQDqeHZgVbOcy6C4kn4bDaY4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jNqmQDqeHZgVbOcy6C4kn4bDaY4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/kGYwdOIetGs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/7668816254688514711/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=7668816254688514711" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/7668816254688514711?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/7668816254688514711?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/kGYwdOIetGs/detecting-slips-and-avoiding-mistakes.html" title="Detecting Slips and Avoiding Mistakes" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/07/detecting-slips-and-avoiding-mistakes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNSHw-eyp7ImA9WhZaFU4.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-947252344391794852</id><published>2011-07-01T08:26:00.000-06:00</published><updated>2011-07-01T08:26:39.253-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-01T08:26:39.253-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Do you really need thousands of apps to choose from?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This post is a bit of a digression from my usual - But I'd like to ask those of you who read this to answer a question...&lt;br /&gt;
&lt;blockquote&gt;Do the Tens of Thousands of apps in the Apple App Store really matter?&lt;/blockquote&gt;I've been reading lots of &lt;a href="http://www.computerworld.com/s/article/9218073/Hands_on_with_the_HP_TouchPad?taxonomyId=15"&gt;reviews about HP's new TouchPad&lt;/a&gt;, most of which agree that the TouchPad is the 2nd best Tablet that you can buy (Care to guess who is Number One?), and they almost all say something like:&lt;br /&gt;
&lt;blockquote&gt;"the HP App Catalog store isn't exactly full of apps (there will be more than 300 tablet-optimized apps available at launch, according to HP), and the size of Apple's App Store gives it a major advantage over tablet competitors such as the TouchPad."&lt;/blockquote&gt;Is Quantity(of Apps) really an advantage over Quality?&amp;nbsp; Or is Quantity making it difficult to find the needle that you are looking for in a really big haystack?&lt;br /&gt;
&lt;br /&gt;
The answer is a matter of opinion, and I'd like to know yours.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-947252344391794852?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a7fAPTYxU5NuVaCGL9tsBM5KeSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7fAPTYxU5NuVaCGL9tsBM5KeSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a7fAPTYxU5NuVaCGL9tsBM5KeSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7fAPTYxU5NuVaCGL9tsBM5KeSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/5WpRgA87ny0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/947252344391794852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=947252344391794852" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/947252344391794852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/947252344391794852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/5WpRgA87ny0/do-you-really-need-thousands-of-apps-to.html" title="Do you really need thousands of apps to choose from?" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/07/do-you-really-need-thousands-of-apps-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GRnw5eCp7ImA9WhZbFUQ.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-4194530878971073577</id><published>2011-06-20T13:25:00.000-06:00</published><updated>2011-06-20T13:25:27.220-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-20T13:25:27.220-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Builders and Business People</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I spent this past weekend building a fence... well... not quite.&lt;br /&gt;
I spent this past weekend watching Juan and Jose build a fence.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8Q63lGl62hU/Tf-UTEWdqEI/AAAAAAAAVNA/TSZQsXnUAXU/s1600/Juan+and+Jose.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://3.bp.blogspot.com/-8Q63lGl62hU/Tf-UTEWdqEI/AAAAAAAAVNA/TSZQsXnUAXU/s320/Juan+and+Jose.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;I live just east of Santa Fe, New Mexico... and out here many folks have what's known as a "Coyote Fence".&amp;nbsp; Juan and Jose are local craftsmen who (among other skills) are very good at building this type of fence.&lt;br /&gt;
&lt;br /&gt;
My wife and I laid out the boundaries with stakes and twine, and then told Juan what we wanted (Juan's the eldest brother - so he handles the negotiations).&amp;nbsp; I had all the materials on site prior to arrival, so when the guys showed up on Saturday morning they got right to work and had the project completed by Sunday afternoon.&lt;br /&gt;
&lt;br /&gt;
During the build, Juan noticed a few things I'd asked for that were (in retrospect) just plain crazy.&amp;nbsp; For one, I had the gate swinging the wrong way - He brought that to my attention and we changed the plan on the spot.&amp;nbsp; My wife also had to run to the store to get some items I'd missed, but otherwise Juan and Jose worked like demons and I got to sit by and watch.&lt;br /&gt;
&lt;br /&gt;
I could have built this fence myself.&amp;nbsp; I've done similar projects in the past, and I'm not "that" old.&amp;nbsp; It's hard work, but not more than I can handle...&amp;nbsp; But I chose to "pay the experts" instead of building it myself.&lt;br /&gt;
They do this for a living... I make my living doing other things.&lt;br /&gt;
&lt;br /&gt;
By now you've probably figured out that there's a lesson here that goes beyond home improvement...&lt;br /&gt;
&lt;br /&gt;
I am a huge fan of enabling Business folks to build their own software solutions, but the fact remains that most people prefer to pay others rather than build things for themselves.&amp;nbsp; No matter how "business friendly" our tools become, most businesses will bring in builders when they need them.&lt;br /&gt;
&lt;br /&gt;
The keys to success for a business software project are the same as those which made my weekend project a success.&amp;nbsp; The Clients (Teri and I) were able to lay out the boundaries and effectively communicate our requirements to the Builders (Juan and Jose).&amp;nbsp; One of the Clients (me) knew enough about building to be able to effectively monitor the work, and someone empowered to make decisions (my wife Teri) was on hand to resolve any issues that came up (screwy gate orientation).&amp;nbsp; The engagement was further enhanced by the professionalism of the Builder (Juan) to make suggestions.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Let's go a bit further though and note an important distinction between my fence project and a typical business software project... the solution that the Builders supplied for me is completely "open".&amp;nbsp; I can see how it's put together, and I can see how to extend the solution.&amp;nbsp; For example, with tools that I know how to use I will be able to add another gate should I ever need one.&amp;nbsp; If the fence ever needs repairs, I know enough to be able to implement those repairs (but I'll probably just call Juan again).&lt;br /&gt;
&lt;br /&gt;
This is where "Tools" for the Business folks have their place...&amp;nbsp; Give the Business folks tools that allow them to "see" what's been built and to provide the answers that they need when it's time to make a change... and they'll be happier and you'll be happier...&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xHRUyzNfwX0/Tf-eN3F3gHI/AAAAAAAAVNE/1kAnVcRkH-w/s1600/Solution+Anatomy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://2.bp.blogspot.com/-xHRUyzNfwX0/Tf-eN3F3gHI/AAAAAAAAVNE/1kAnVcRkH-w/s320/Solution+Anatomy.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;... But I'm willing to bet they'll still call you to build "it" rather than built "it" themselves ;-) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-4194530878971073577?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a4RB49QzAKoY37QTk91h-YGWQu4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a4RB49QzAKoY37QTk91h-YGWQu4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a4RB49QzAKoY37QTk91h-YGWQu4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a4RB49QzAKoY37QTk91h-YGWQu4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/0lslAPs2FvY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/4194530878971073577/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=4194530878971073577" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4194530878971073577?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/4194530878971073577?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/0lslAPs2FvY/builders-and-business-people.html" title="Builders and Business People" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-8Q63lGl62hU/Tf-UTEWdqEI/AAAAAAAAVNA/TSZQsXnUAXU/s72-c/Juan+and+Jose.JPG" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/06/builders-and-business-people.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cHRXk_fSp7ImA9WhZbEEs.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-8675287258892890306</id><published>2011-06-14T10:30:00.000-06:00</published><updated>2011-06-14T10:30:34.745-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-14T10:30:34.745-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Templates and Frameworks</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Sandy Kemsley posted a nice BPM Success Story "&lt;a href="http://www.column2.com/2011/06/bpm-rapid-development-methodology/"&gt;BPM Rapid Development Methodology&lt;/a&gt;" that has jogged me into publishing some thoughts I've been having about Templates and Frameworks as they relate to successful Business involvement in software projects.&lt;br /&gt;
&lt;br /&gt;
Sandy relates:&lt;br /&gt;
&lt;blockquote&gt;"They’ve established best practices and templates for their user  interface design, greatly reducing the time required and improving  consistency. They’ve built in a number of usability measures, such as  reducing navigation and &lt;a href="http://thoughtfulprogrammer.blogspot.com/2011/02/tips-for-business-process-developer.html"&gt;presenting only the information required at a  specific step&lt;/a&gt;. I think that this type of standardization is something  rarely done in the user interface end of BPMS development, and I can see  how it would accelerate their development efforts. It’s also  interesting that they moved away from cowboy-style development into a  more disciplined approach, even while implementing Agile: the two are  definitely not mutually exclusive."&lt;br /&gt;
&lt;br /&gt;
"This new methodology and best practices – resulting in a lean BPM team  of analysts, PMs, developers, testers and report writers – have&amp;nbsp; allowed  them to complete five large projects incorporating 127 different  processes in the past year. Their business analysts actually design the  processes, involving the developers only for the technical bindings;  this means that the BAs do about 50% of the “development”, which is what  all of the BPMS vendors will tell you should be happening, but rarely  actually happens in practice."&lt;/blockquote&gt;&lt;/div&gt;Admittedly I am drawn to this case study because their methodology and best practices mirror my own leanings...&amp;nbsp; With the right approach Business folks really can drive (rather than be chauffeured around by the Technical folks).&lt;br /&gt;
&lt;br /&gt;
Note that Sandy's tale mentions Templates, but it doesn't say a thing about Frameworks... and to me that's very significant...&lt;br /&gt;
&lt;br /&gt;
As a Professional Programmer, my life revolved around Frameworks (&lt;a href="http://en.wikipedia.org/wiki/Object_Windows_Library"&gt;OWL&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library"&gt;MFC&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Struts"&gt;Struts&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Spring_%28Java%29"&gt;Spring&lt;/a&gt;, etc.)&amp;nbsp; Each of these Frameworks provided a wonderfully powerful foundation on which I could build my custom applications.&amp;nbsp; I simply can't imagine life as a Professional Programmer without programming Frameworks.&lt;br /&gt;
&lt;br /&gt;
Pardon me for over-simplifying, but a Framework is something that "you bolt pieces on to".&amp;nbsp; The Framework provides the internal structure of your program, and you can build many diverse and wonderful programs on top of any really good Framework.&lt;br /&gt;
&lt;br /&gt;
If you are an Occasional Business Programmer you've probably found that Frameworks aren't quite what you're looking for.&amp;nbsp; Frameworks are really powerful and really flexible - but all that power and flexibility comes at a price - you really have to know what you're doing to use them.&lt;br /&gt;
&lt;br /&gt;
Contrast Frameworks with Templates... a Template is something where you "fill in the details".&amp;nbsp; The outcome of using a particular Template is always the same thing - the implementation details may be wildly different, but as long as those details "stay in the box" your result is going to be what you set out to build.&lt;br /&gt;
&lt;br /&gt;
Historically the Technical folks have built the Templates and the Business folks have "filled them in" (usually using wizards) - but our BPM Suites are showing us that the converse can be equally as powerful - Business can build some of the Templates (for the process) and the Techies can "fill in the details".&lt;br /&gt;
&lt;br /&gt;
It's all about Requirements and Constraints.&amp;nbsp;&amp;nbsp; Business folks can use Templates to convey Business Requirements to Technical folks, and Technical folks can use Templates to provide a "sandbox" within which Business folks can safely play (without breaking anything).&lt;br /&gt;
&lt;br /&gt;
If you are a Business Guy composing a solution, and the "component " that you need doesn't yet exist, then just &lt;a href="http://thoughtfulprogrammer.blogspot.com/2011/02/tips-for-business-process-developer.html"&gt;build a Template&lt;/a&gt;, ask your Techie colleague to "fill it in", and keep on going... You can't get much more rapid than that.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-8675287258892890306?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NDyXTFt28oTzbrJZ8PdcQnj2BOg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NDyXTFt28oTzbrJZ8PdcQnj2BOg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NDyXTFt28oTzbrJZ8PdcQnj2BOg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NDyXTFt28oTzbrJZ8PdcQnj2BOg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/v6qVxZ068zA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/8675287258892890306/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=8675287258892890306" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/8675287258892890306?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/8675287258892890306?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/v6qVxZ068zA/templates-and-frameworks.html" title="Templates and Frameworks" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/06/templates-and-frameworks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMESHo-fip7ImA9WhZVGUo.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-6880219991933796490</id><published>2011-06-01T17:20:00.000-06:00</published><updated>2011-06-01T17:20:09.456-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T17:20:09.456-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Tasks and Time</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Tasks are always associated with time... Tasks are started at some point in time and they are completed at some point in time.&amp;nbsp; We're almost always interested in the duration (how long it takes) from the &lt;b&gt;Start Time&lt;/b&gt; to the &lt;b&gt;Completion Time&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Start Time&lt;/b&gt; and &lt;b&gt;Completion Time&lt;/b&gt; are the biggies, but there are a few more timestamps that we're often interested in capturing (especially when tasks are performed by humans).&amp;nbsp; Here's my list:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Assignment Time&lt;/b&gt; - the point in time when the task is assigned to a person (or group).&amp;nbsp; In most of the process applications I've implemented we don't assign a task to a person until that task is ready to start... but sometimes we do know who should work on a task long before the task should start. If we relate this in terms of an appointment on your calendar, this would be the time when you made the appointment.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Scheduled/Estimated Start Time&lt;/b&gt; - the point in time when the human should (ideally) start working on the task.&amp;nbsp; In many process applications we don't predict when a task should start - it simply starts when the process flow reaches the task.&amp;nbsp; Explicitly scheduling or estimating start times can be very useful if you need to determine whether or not a specific process is "on track" to complete on time.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ready To Start Time&lt;/b&gt; - the point in time when everything is ready for work to begin on the task.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Start Time&lt;/b&gt; (aka &lt;b&gt;Actual Start Time&lt;/b&gt;) - the point in time when the human starts working the task. It's our fondest hope that the &lt;b&gt;Scheduled Start Time&lt;/b&gt;, &lt;b&gt;Start Time&lt;/b&gt; and &lt;b&gt;Ready To Start Time&lt;/b&gt; are all the same - but when dealing with humans they seldom are.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Scheduled/Estimated Completion Time&lt;/b&gt; - the point in time when the task should be completed.&amp;nbsp; This is really an expression of "how long the task should take".&amp;nbsp; In most cases I've seen this set by adding the expected duration of the task to the &lt;b&gt;Start Time&lt;/b&gt; - but there are cases where a hard and fast completion time is critical if you need to know whether or not the process can complete on time.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Completion Time&lt;/b&gt; (aka &lt;b&gt;Actual Completion Time&lt;/b&gt;) - the point in time when the human completes the task.&lt;/li&gt;
&lt;/ul&gt;There are also some optional timestamps we need from time to time that you may encounter:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt; &lt;b&gt;Reassignment Time&lt;/b&gt; - It happens... and there can be multiple of these for a single task instance.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Task Cancelled Time&lt;/b&gt; - Often good to know - not every task gets executed to completion.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Task Escalated Time&lt;/b&gt; - This might possibly be redundant, since reassignment and cancellation are very common elements of task escalation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Task Suspended Time&lt;/b&gt; - Sometimes things come up and work on a task just has to stop. As with reassignment, this can happen multiple times per task.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Task Resumed Time&lt;/b&gt; - If a task was suspended, you will almost certainly want to know how long it was suspended.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;/ul&gt;Analysis of all of these timestamps can help you figure out whether or not your process is running smoothly.&amp;nbsp; For example, whenever the actual &lt;b&gt;Start Time&lt;/b&gt; is later than the &lt;b&gt;Scheduled/Estimated Start Time&lt;/b&gt; you may have a problem... but to determine where the problems lies you'll need to take a look at the &lt;b&gt;Ready To Start Time&lt;/b&gt;.&amp;nbsp; Was the human slow in starting the work, or was there a delay that prevented the human from starting the work?&lt;br /&gt;
&lt;br /&gt;
In all honesty, I've never worked with a client who captured all of these timestamps for every task... and I am certainly not advocating that you should complicate your solutions by capturing this information unless you really need to.&amp;nbsp; Just don't be surprised in those rare instances that you encounter a process analyst who needs this level of detail.&lt;br /&gt;
&lt;br /&gt;
If you've encountered requirements for capturing additional task oriented timestamps (or you have better descriptions/names for these timestamps), I'd love to hear about them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-6880219991933796490?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U2xRWuwoklGvkw5h68FEzmlNP4U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U2xRWuwoklGvkw5h68FEzmlNP4U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U2xRWuwoklGvkw5h68FEzmlNP4U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U2xRWuwoklGvkw5h68FEzmlNP4U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/iTTul3ium1I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/6880219991933796490/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=6880219991933796490" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6880219991933796490?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6880219991933796490?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/iTTul3ium1I/tasks-and-time.html" title="Tasks and Time" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/06/tasks-and-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQNSXg5fCp7ImA9WhZVGEU.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-1941369921847838563</id><published>2011-05-31T09:28:00.005-06:00</published><updated>2011-05-31T16:53:18.624-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T16:53:18.624-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tips for the Business Process Developer" /><title>Task Escalation</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Adam Deane has a nice post on &lt;a href="http://adamdeane.wordpress.com/2011/05/25/bpm-escalation-management/"&gt;Escalation Management&lt;/a&gt; over on his blog which sums up as follows:&lt;br /&gt;
&lt;div style="background-color: #9fc5e8; layer-background-color: #9fc5e8; margin: 20px; visibility: visible;"&gt;Escalations are the bread and butter of every BPM solution....&lt;br /&gt;
&amp;nbsp; ....I’ve never heard of escalation management being a mandatory component of  a BPMS. I’ve never seen an escalation best practice. It seems everyone  just takes it for granted.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;I have to agree with Adam on this one... escalation of tasks is taken for granted - right up until you have to implement it.&lt;br /&gt;
&lt;br /&gt;
Case in point is a recent discussion with one of my colleagues (paraphrased here):&lt;br /&gt;
&lt;div style="background-color: #9fc5e8; layer-background-color: #9fc5e8; margin: 20px; visibility: visible;"&gt;&amp;nbsp;A client approached us with the following  problem:&lt;br /&gt;
-&amp;nbsp;The process has a due date.&lt;br /&gt;
- Activities have due dates relative to the process' due date (e.g. one activity must be finished 20 days before the due date of the process)&lt;br /&gt;
- If the due date for an activity is missed, an event  should be raised and acted upon.&lt;br /&gt;
&lt;br /&gt;
After discussing this with colleagues, we came up with two approaches:&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;&lt;li&gt;BMPN-based solution:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Add a timer to&amp;nbsp;&amp;nbsp;each activity, configure&amp;nbsp;them to trigger after due date.&lt;/li&gt;
&lt;li&gt;Create another activity to handle the missed deadline and attach it to the activity.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Programmatic Solution:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Create a Service that is triggered once an hour.&lt;/li&gt;
&lt;li&gt;Fetch all instances of the process and for each instance check the active task's Due Date. If it is passed, act on it.&lt;/li&gt;
&lt;/ul&gt;&lt;/ol&gt;Alternative 1 is a "pure modeling"  alternative, that might attract some people. Though you need to do add the timer  to each activity which has a deadline.&lt;br /&gt;
Alternative 2  means more work initially to implement the timer triggered service, but with careful design I guess  it could be used for all activities.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;I suppose you could characterize this (with apologies to &lt;a href="http://en.wikipedia.org/wiki/To_be,_or_not_to_be"&gt;William Shakespeare&lt;/a&gt;) as:&lt;br /&gt;
&lt;blockquote&gt;"To Model... or not to Model?&amp;nbsp; That is the question!"&lt;/blockquote&gt;It's a good question:&lt;br /&gt;
Is "Escalation of a Task" an aspect of&amp;nbsp;your solution&amp;nbsp;that should be modeled, or is it an aspect of&amp;nbsp;your solution that&amp;nbsp;is better&amp;nbsp;expressed in some other way (perhaps with code)?&lt;br /&gt;
&lt;br /&gt;
Escalation of a task often seems to be better expressed as a policy rather than as a process.&amp;nbsp; In many cases it seems to be more difficult to determine&amp;nbsp;whether or not&amp;nbsp;a task requires escalation (perhaps it is overdue) than it is to carry out the actual escalation logic (send an email to the manager).&lt;br /&gt;
&lt;br /&gt;
Of course there is no "right" or "wrong" answer... It simply depends on the specifics of your problem... but I think there are some guidelines that can be helpful in determining what to do.&lt;br /&gt;
&lt;br /&gt;
First answer these questions:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Are the conditions that determine that a task "needs escalation" common across the process or specific to the task?&lt;/li&gt;
&lt;li&gt;Are the actions that must be performed when a task "needs escalation" common across the process or specific to the task?&lt;/li&gt;
&lt;/ol&gt;If the answers to both of&amp;nbsp;these&amp;nbsp;questions&amp;nbsp;are "common across the process", then I don't think it's appropriate to model the escalation behavior on your process diagram.&amp;nbsp; Your escalation logic and behavior is a policy that is applied to the process - more so than an aspect of the specific tasks.&lt;br /&gt;
&lt;br /&gt;
Common logic and behaviors (let's call them policies) that are applied across your process are generally best captured as such... That will make it much easier to review and update them when the need arises.&lt;br /&gt;
&lt;br /&gt;
Digressing slightly - You should also think ahead in terms of how you'd support changing this policy at runtime.&amp;nbsp; A centralized expression of the escalation policy is probably going to be easier to modify than distributed logic... and it's probably a sure bet that the Business Folks are going to want to tweak these policies over time.&lt;br /&gt;
&lt;br /&gt;
If the answers to either of the questions above are "specific to the task", then you need to think about it a bit more.&amp;nbsp; If escalation of a task&amp;nbsp;requires more than notifications and reassignment of the task (if alternate activities must be performed and the flow of the process is altered) then you most likely should model those activities&amp;nbsp;on your process diagram (perhaps hidden in a nested process to keep your diagram clean&amp;nbsp;).&lt;br /&gt;
&lt;br /&gt;
I'm not sure if the advice in this posting&amp;nbsp;will meet Adam's desire for "Escalation Best Practices"... but hopefully it will keep the conversation going and help us (BPM Practitioners)&amp;nbsp;reach consensus.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-1941369921847838563?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ppApDaBw5yJoFESaMamkDZcx1S8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ppApDaBw5yJoFESaMamkDZcx1S8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ppApDaBw5yJoFESaMamkDZcx1S8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ppApDaBw5yJoFESaMamkDZcx1S8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/_2zLZg1hACs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/1941369921847838563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=1941369921847838563" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1941369921847838563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1941369921847838563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/_2zLZg1hACs/task-escalation.html" title="Task Escalation" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/05/task-escalation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHR3c-fyp7ImA9WhZWF0g.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-9067460247691461611</id><published>2011-05-17T16:39:00.002-06:00</published><updated>2011-05-18T15:50:36.957-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-18T15:50:36.957-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Business Process Management" /><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Detect, Decide, Process</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There is a lot to be said for breaking up a hard problem into specific aspects of the problem, developing a solution for each aspect, and then merging the results back together for a complete solution... but this approach can lead to peril if those who are working on the individual aspects forget (or are ignorant about) what the "holistic" problem is that they're working to solve.&lt;br /&gt;
&lt;br /&gt;
Unfortunately the tools that we use sometimes distract us from the "holistic" problems that we're trying to solve. We've got great tools for detecting and reacting to business events, great tools for defining and executing business rules, and great tools for defining and managing business processes... but when dealing with problems that involve events, rules, and processes we often find ourselves confused by the overlapping features of our tools. In a pinch, we can build a Process with our Rules tool, or a Rule with our Process tool... and either tool can consume and generate Events. Knowing what to build with which tool can be quite a challenge.&lt;br /&gt;
&lt;br /&gt;
Detect, Decide, Process...&lt;br /&gt;
&lt;br /&gt;
Most business problems begin with an event of some sort. Something happens. Something changes. The business needs to respond. Rules govern the businesses response to the event... Processes guide the response when it's non-trivial. Everything's connected.&lt;br /&gt;
&lt;br /&gt;
Events may occur "out of the blue", or they may be generated by a running Process, or they may be generated in response to evaluating Rules.&lt;br /&gt;
&lt;br /&gt;
Rules may be evaluated "on demand", in response to an "out of the  blue" Event, or they may be evaluated as a step within a Process.&lt;br /&gt;
&lt;br /&gt;
Processes may be launched in response to an Event, or as the outcome of a Rule. Process flow may wait for or be altered by Events. Rules may determine Process flow or they may "kick off" a Process.&lt;br /&gt;
&lt;br /&gt;
Development methodologies also come into play... I am a Process Bigot, so I employ a Process Driven methodology to arrive at a solution. Many of my colleagues are Rules Bigots and attack every problem using a Rules Driven methodology. The Business Event folks just laugh at us and follow their own methodologies.&lt;br /&gt;
Not a topic for the faint of heart ;-)&lt;br /&gt;
&lt;br /&gt;
Those of us who build business solutions for a living eventually make sense out of all of this overlap in our tools... but I suspect that our business clients just shake their heads and trust us to use the right tools for the right jobs. Explaining our rationale for implementing some Rules in our BPM suite and some Process in our BRM suite leaves them with a queasy feeling in their stomachs and insures that they'll never ever try to build a non-trivial solution on their own.&lt;br /&gt;
&lt;br /&gt;
Fear to "build it themselves" may be a good thing for short term consulting revenue, but it's very bad for everyone in the long run. We've got to make things simpler (at least conceptually) or we'll never make a real dent in solving all of the business problems out there that need solving.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-9067460247691461611?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qzjoJdCnRjydVuKa7HkWwGo1ywo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qzjoJdCnRjydVuKa7HkWwGo1ywo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qzjoJdCnRjydVuKa7HkWwGo1ywo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qzjoJdCnRjydVuKa7HkWwGo1ywo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/j_Fu5Njsj5k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/9067460247691461611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=9067460247691461611" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/9067460247691461611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/9067460247691461611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/j_Fu5Njsj5k/detect-decide-process.html" title="Detect, Decide, Process" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/05/detect-decide-process.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYFQ3k-eSp7ImA9WhZWFkg.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-591075667117034701</id><published>2011-05-17T11:00:00.003-06:00</published><updated>2011-05-17T11:08:32.751-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T11:08:32.751-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>Thought Harvesting</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I've just transitioned to a new role at IBM - from the BPM Services organization to the BPM Product Management organization.&amp;nbsp; This is a position that I have wanted for a long time - Truth be told my original application to Lombardi Software in 2006 was for a position in their product management group, and the slot in their service group was just meant to "get my foot in the door".&lt;br /&gt;
&lt;br /&gt;
Serendipity is an amazing thing, and much to my surprise I really loved my service job.&amp;nbsp; I was able to work with really smart folks &lt;a href="http://thoughtfulprogrammer.blogspot.com/search/label/Travel"&gt;all over the world&lt;/a&gt; on a wide variety of process projects, and I learned a great deal about what BPM can really be and about what BPM is definitely not.&amp;nbsp; Hopefully the things that I learned will contribute to the creation of better products for all of my past and future process colleagues.&lt;br /&gt;
&lt;br /&gt;
I've received many congratulations on my new role, and they're all very appreciated... but there's one compliment I've received that stands out - recognition by my peers that I am a "Thought Leader" in BPM.&lt;br /&gt;
&lt;br /&gt;
That's a wonderful compliment... but it's not really true.&amp;nbsp; I'm not a "Thought Leader"... I am a "Thought Harvester".&lt;br /&gt;
&lt;br /&gt;
I may have had an original thought or two of my own, but the reality is that the vast majority of my posts on BPM (and programming in general) are borrowed thoughts.&amp;nbsp; The community of BPM practitioners is amazingly generous with their thoughts, and it's through connections with you that I get all of "my" good ideas.&amp;nbsp; Thanks to all of you who've provided the inspiration and insights for my ramblings.&lt;br /&gt;
&lt;br /&gt;
Going forward, I think we all have a great future as Process, Rules, Cases etc. begin to merge into comprehensive solutions.&amp;nbsp; As more and more of our technical infrastructure components disappear within the boundaries of our "business software appliances" we'll be able to empower non-programmers to build more of their own solutions - sort of putting ourselves out of a job, but not really.&amp;nbsp; There are always new challenges... and plenty of &lt;a href="http://www.dailykos.com/story/2011/05/16/976509/-The-No-Losers-Tax-Simplification-Proposal"&gt;old problems to solve&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-591075667117034701?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7TY-3r8mc2kc05xq8DQ303b_Z7w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7TY-3r8mc2kc05xq8DQ303b_Z7w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7TY-3r8mc2kc05xq8DQ303b_Z7w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7TY-3r8mc2kc05xq8DQ303b_Z7w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/QTxw3iLmQhg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/591075667117034701/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=591075667117034701" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/591075667117034701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/591075667117034701?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/QTxw3iLmQhg/thought-harvesting.html" title="Thought Harvesting" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/05/thought-harvesting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MNSHo-eyp7ImA9WhZXEEo.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-6960338153976971910</id><published>2011-04-28T21:22:00.005-06:00</published><updated>2011-04-29T05:11:39.453-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T05:11:39.453-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thoughtful Programming" /><title>A Programming Language For Business</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Back in my java.net blogging days, I wrote a post that lost me a lot of love by asking the question: &lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://weblogs.java.net/blog/johnreynolds/archive/2005/11/is_java_the_wro.html"&gt;Is Java the wrong language for business programming?&lt;/a&gt;&lt;/blockquote&gt;My thinly disguised answer was no.&amp;nbsp; Java is not &lt;a href="http://thoughtfulprogrammer.blogspot.com/search/label/Business%20Suitable%20Programming"&gt;a suitable language for business programming&lt;/a&gt;... It's great for building the integrations and middle-ware that business relies on, but it's a lousy tool for transforming business requirements into code.&lt;br /&gt;
&lt;br /&gt;
Having alienated all of my Java friends long ago, I guess my next step is to alienate my JavaScript programming friends too...&amp;nbsp; Here's my rule:&lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://thoughtfulprogrammer.blogspot.com/2009/02/blog-post.html"&gt;Programming Languages that use&amp;nbsp; &lt;span style="font-size: large;"&gt;&lt;b&gt;==&lt;/b&gt;&lt;/span&gt;&amp;nbsp; are not suitable for Business Programming&lt;/a&gt;&amp;nbsp; &lt;/blockquote&gt;I am a realist.&amp;nbsp; JavaScript is pervasive on the Web and will never die no matter what nasty things I say about it... but I truly believe we need a better choice for Business Programmers to thrive.&amp;nbsp; Google, with their &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt; has already shown us the way - Translate the Programming Language that meets your needs into the Programming Language that the Web supports (In the case of GWT from Java to JavaScript).&amp;nbsp; Define a &lt;a href="http://thoughtfulprogrammer.blogspot.com/2009/12/businessscript-cobol-izing-javascript.html"&gt;Business Suitable Programming Language&lt;/a&gt; that knows about things like dollars and cents and business days and work schedules and then translate the code that you write with this language into JavaScript.&amp;nbsp; Problem solved.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I don't think that Google has any interest in making the world better for Business Programmers - I hope that I am wrong, but I fear that "Business Programming" just isn't sexy enough for the wonder-kids at Google to care about.&lt;br /&gt;
&lt;br /&gt;
If we ever do see a more Business Friendly Programming Language it will probably come from some stodgy old company that cares more about helping businesses run better than about &lt;a href="http://www.businessweek.com/magazine/content/11_17/b4225060960537.htm"&gt;seducing users into clicking on ads and sharing their marketable personal data&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It's a long shot, but maybe, just maybe, I won't be &lt;a href="http://weblogs.java.net/blog/2004/12/13/too-old-program"&gt;too old to program&lt;/a&gt; before Business Programmers finally get a language to call their own.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-6960338153976971910?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MAJyZWhoSp11xsqumqjfN0tiwOk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MAJyZWhoSp11xsqumqjfN0tiwOk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MAJyZWhoSp11xsqumqjfN0tiwOk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MAJyZWhoSp11xsqumqjfN0tiwOk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/DrCGpu_BYyk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/6960338153976971910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=6960338153976971910" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6960338153976971910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/6960338153976971910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/DrCGpu_BYyk/programming-language-for-business.html" title="A Programming Language For Business" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/04/programming-language-for-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNQ3w4eyp7ImA9WhZQFUg.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-704544309865129765</id><published>2011-04-23T05:46:00.000-06:00</published><updated>2011-04-23T05:46:32.233-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-23T05:46:32.233-06:00</app:edited><title>Government Process Management</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There's an &lt;a href="http://www.nytimes.com/2011/04/23/nyregion/new-system-to-prevent-police-officers-from-ticket-fixing.html?partner=rss&amp;amp;emc=rss"&gt;article in the New York Times&lt;/a&gt;&amp;nbsp;today about a new computerized system that should help prevent NYC police from "fixing" tickets. &amp;nbsp;While this may be bad news for a few well connected individuals, for the masses this is a very good thing - The powers that be have instituted a process that (if followed) should detect (and deter) public employees from engaging in fraud.&lt;br /&gt;
&lt;br /&gt;
What's not clear is the public's visibility into this process. &amp;nbsp;If the tracking information for each ticket isn't publicly available, then how will we know if the process is being followed or if it's being faked? &amp;nbsp;Monitoring a process is a great thing - only if those who are supposed to be protected by the process have the proper view of the process.&lt;br /&gt;
&lt;br /&gt;
For those of us who are maddened by government waste and fraud, this is cause for hope. &amp;nbsp;Personal privacy seems to be a thing of the past - but perhaps Government privacy is too.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-704544309865129765?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bT67zlUFDb101jeT4FkQKWm4-z8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bT67zlUFDb101jeT4FkQKWm4-z8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bT67zlUFDb101jeT4FkQKWm4-z8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bT67zlUFDb101jeT4FkQKWm4-z8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/4MINrTm0wWY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/704544309865129765/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=704544309865129765" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/704544309865129765?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/704544309865129765?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/4MINrTm0wWY/government-process-management.html" title="Government Process Management" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/04/government-process-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcNQXs6eSp7ImA9WhZQFU0.&quot;"><id>tag:blogger.com,1999:blog-25178118.post-1987649281381145148</id><published>2011-04-22T14:11:00.000-06:00</published><updated>2011-04-22T14:11:30.511-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T14:11:30.511-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Business Process Management" /><title>Phil Glibert video</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Yes it's a marketing blurb, but &lt;a href="http://youtu.be/x5aTm7tqXDY"&gt;this video from Mr. Phil&lt;/a&gt; is a pretty good sum up of what IBM Business Process Manager is all about.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25178118-1987649281381145148?l=thoughtfulprogrammer.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RpenocvsrRkn7pPprANa_td9O4s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RpenocvsrRkn7pPprANa_td9O4s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RpenocvsrRkn7pPprANa_td9O4s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RpenocvsrRkn7pPprANa_td9O4s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ThoughtfulProgrammer/~4/AZHFOPVIFP0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thoughtfulprogrammer.blogspot.com/feeds/1987649281381145148/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=25178118&amp;postID=1987649281381145148" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1987649281381145148?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/25178118/posts/default/1987649281381145148?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ThoughtfulProgrammer/~3/AZHFOPVIFP0/phil-glibert-video.html" title="Phil Glibert video" /><author><name>John Reynolds</name><uri>http://www.blogger.com/profile/13852313153136272800</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_QviPbycN-9k/TL7mblLjuxI/AAAAAAAAT_o/TNTT5VQzY58/S220/WindblownJohn.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://thoughtfulprogrammer.blogspot.com/2011/04/phil-glibert-video.html</feedburner:origLink></entry></feed>

