tag:blogger.com,1999:blog-178132712024-03-07T17:46:32.688-05:00console stuffenterprise computing & architecture, mountain biking and family fun.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.comBlogger36125tag:blogger.com,1999:blog-17813271.post-12357831094501948852011-11-17T16:24:00.004-05:002011-11-17T16:34:29.800-05:00IT Hyper-Specialization and Outsourcing: Guaranteed to FailWhat happens to a computer program when you divide all of the key functions into 16 subprograms and you make the program execute via in-process methods?<br /><br />Now what happens when you take those 16 subprograms and move them into separate processes on the same computer?<br /><br />Now what happens when you take those 16 subprograms and move them to separate computers all around the world?<br /><br />Now what happens when you take those 16 subprograms, all over the world, and every time these subprograms need to pass information to one another you do the following:<br /><ol><li>Print out the data to be passed</li><li>A person picks up the document off the printer</li><li>The person figures out which subprogram this information is destined for.</li><li>The person sends the document via interoffice mail to the office that has the right server, running the target subprogram.</li><li>At the target location, a person takes the message, and types it into the server program by hand.</li><li>The person waits for a response. </li><li>If there is a response, the person at the target location prints out the document.</li><li>The person send the response document back to the correct site.</li><li>A person takes the return message and types it in by hand and waits for another message.</li></ol>In the first case, you have a system that can perform about 100 million operations per second given today’s processors.<br /><br />In the last case you have a system that can perform less than 16 operations per day. Over time it will probably be more like less than 1 per day due to contention issues and wait states.<br /><span class="Apple-style-span"><br />Now, lets take the model above that no Computer Scientist would contest as being an extreme failure, and apply it to business.</span><br /><br />What happens to a business process when you divide up all of the key functions into 16 tasks and hire an expert that can complete all 16 tasks - where all communication and problem solving occur between neurons in the experts’ head?<br /><br />Now what happens when you take those 16 tasks and move them to different, low cost workers all located in the same shared space?<br /><br />Now what happens when you take those 16 tasks and move them to low cost workers based around the world?<br /><br />Now what happens when you take those 16 tasks, performed by low cost workers based all around the world and between each person you add change control, governance and approval steps?<br /><br />In the first case, you have a system that can perform complex problem solving and task execution in minutes.<br /><br />In the last case, you have a system that can perform a many tasks at the same time, but because of contention issues, wait states and communication millions of times slower than neuron to neuron communication, processes which used to take a few minutes can take many months or even years now. This is the model that most companies are selecting as optimal for their IT organizations.<br /><br />I am constantly amazed that IT staff understand so little of computer science that they cannot understand that the current hyper-specialization and sourcing models not only are significantly more expensive when you look at all costs, they are literally millions of times less efficient and productive. It is as if our competitors are designing our organizations. There is no better model for high expense and catastrophic failure than the current model.<br /><br />Most companies could replace hundreds of IT staff and departments that are over specialized with a handful of experts who were allowed to control all aspects of their role.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-57231433408643828272009-05-12T09:20:00.001-05:002011-11-17T16:23:59.529-05:00REVIEW: Balsamiq Mockups<p><span style="border-collapse: collapse; font-size: 13px; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; " >Very rarely have I successfully used a tool to prototype a GUI. If it looks like a computer program with the standard menus and buttons, people expect it to be a functional computer program. Very few customers are sophisticated enough to understand the distinction between a functional program and a non-functional prototype that looks like a finished program.</span></p><p><span style="border-collapse: collapse; font-size: 13px; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; " ><a href="http://www.balsamiq.com/products/mockups" title="Balsamiq Mockups Home Page">Balsamiq Mockup</a> changes the rules of the game. This easy to use tool allows me to quickly create an interface (like one would in a GUI builder) and at the end I have a series of what looks like hand drawings instead of what looks like a finished computer program. It runs on Adobe AIR so I can use it on my Mac and my PC (when I have to) seamlessly and I have the same great functionality on both platforms. I have never had an issue with it to date and it just works.</span></p><p><span style="border-collapse: collapse; font-size: 13px; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; " >I am using Balsamiq Mockup for my non-profit work on the <a href="http://feedtheneed.org/" title="Feed the Need Old Version">Feed The Need</a> redesign (this link is to the original version - new version is in progress) and have been able to communicate design issues and decisions better than ever before. I am excited about the product and dream of the day when <strong>all</strong> GUI designers use something like this first to make the first design models. I know I will use this for all the design work I do in the future.</span></p>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com1tag:blogger.com,1999:blog-17813271.post-35600768307639591982008-08-16T20:16:00.003-05:002008-08-16T20:20:29.474-05:00Service Organizations and the Pyramid<p>Most corporations larger than a few hundred people grow pieces of the organization that serve other parts of the corporation instead of their primary customer. This approach is so common-place, that author Max Barry was able to use it as a backdrop to his plot in his third book, <a href="http://www.amazon.com/Company-Max-Barry/dp/1400079373/ref=pd_bbs_2?ie=UTF8&s=books&qid=1218932982&sr=8-2">Company</a>. This book takes things to the extreme and the hero of the book finds the company he works for actually has no external customers, each department is just selling their services to other departments within the same company.</p><p>I have worked in a few companies as they have gone through growing pains of building shared service organizations. I have spoken with friends from other companies who have had similar experiences. I think of the desired and actual outcomes of a shared services organization as a pyramid.</p><p><strong>Pyramid</strong>: For the purposes of this example, we will limit our discussion to corporate IT. In that case, the narrowest point of the pyramid is the group that works directly with the business group they support. In the case of the manufacturing & supply chain, these are the IT people who sit with the business, understand the business and deliver solutions to the business. The next layer down in the pyramid is the group that liaisons between the business facing IT and the most specific shared services. In our example, this may be the group that specializes in business processes and architecture for manufacturing and supply chain. The next layer down will be the group that liaisons between them and groups like DBAs and Network engineers. So, overall, the pyramid is narrowest where the IT has direct interaction and impact on the business and is broadest where that shared service group is used by all divisions in the organization.</p><p><strong>Desired Outcome in Pyramid form:</strong> The desired outcome is that the pyramid be narrow point up. The higher levels (towards the tip) have increasing ability to make judgement calls and decisions based on business need. All of the layers support and deliver through the Business Facing IT. The shared service groups exist to support the project teams that are delivering direct business value. The work comes out of the "top" of the pyramid - in this case, the business facing teams, who ensure that the value / dollar is maximized for their clients.</p><p><strong>Typical Outcome in Pyramid form:</strong> The usual outcome is an inverted pyramid with the narrow point down. The actual behavior seems to turn to protecting and limiting asset use. In this case, the higher levels (at the thickest end) have the remit to make all of the decisions and thus the shared services are in a position to say "no" and "you have to prove to me you need this". Instead of supporting the business facing IT, this common form of shared service, becomes a bottle neck and a roadblock to real business impact. The work comes out of the "top" of the pyramid - in this case, the shared service teams, who ensure that their assets are protected, their Q.A. is satisfied and their financials are in order. This is usually a very expensive proposition and tends to rarely deliver real business value.</p><p><strong>Example:</strong> A colleague of mine went to a seminar. His leadership team asked the organization what was the one thing they could do to help them all be more successful. My friend stood and asked for a very short, no nonsense objective for IT like, "We help make our scientists smarter." Bold, yes, but that was the point he said. One of the senior management said that they already have a few of those objectives. He said "they are 'Build repeatable solutions' and 'Use shared services'". My friend sat down and was not surprised, but was disappointed. He said he knew then, that with an upside-down pyramid as heavy as theirs, that many important business facing initiatives and high value projects would be crushed by the weight of the generic, one size fits all shared service.</p><p><strong>Moral:</strong> If you want to know what kind of IT organization you work in, ask your senior most IT management what the objectives of the IT organization are. If these objectives are simple and short and detail specific business value then congratulations. If the IT objectives are generic and could apply to IT organizations in NASA, just as easily as they could apply to Amazon or Gartner, then your pyramid is upside down.</p>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com3tag:blogger.com,1999:blog-17813271.post-91400884539298925952008-07-30T16:38:00.002-05:002008-07-30T16:40:54.200-05:00The 3 Flavors of Enterprise Architect<p>I work in a very large company and I am the lead architect of one of the divisions. I have had various architecture positions at different companies and I have had this current role for more than a year. I work with some very smart architects who are organized to business domains or disciplines and we are working together very well. There are many other architects and architectural organizations that are not having similar success. We meet sometimes for lunch and sometimes we talk about what it means to be an architect. I realize some of you have just thrown your computers out the window or tried to commit seppuku with some powerpoint printouts, but I continue.</p><p>In my experience, I have seen thee classes of working Enterprise Architects. There are others who are in Enterprise Architect roles and I will have a fourth bucket for them, but I would point out that they are not functional architects in any capacity. The classification solidified for me when I thought about where people I know came from - what is their background. Then it all clicked. For your pleasure, and so I can remember them, here are the categories of working Enterprise Architects I have seen in the wild.</p><p><strong>Operations => Enterprise Architect</strong></p><p>This architect has a background in process and operations. They are good to great at running a meeting and good with schedules. They need a lot of help understanding some of the things that are discussed if the topics get too technical. The value this person brings is that they can make things run if they are surrounded by people who know the business and the technology. This person does have a difficult time in making those architectural decisions as they have to depend almost completely on others. If you can find a good one of these they can really help your team be more effective. If your whole team is made up of people with this heritage, look for a new job.</p><p><strong>Q.A. => Enterprise Architect</strong></p><p>This is the one I have seen the least and like the least. This group of people came through some sort of QA organization and specialized in compliance of some kind. They are typically good at knowing corporate policies or common standards. The weaknesses are similar to the above. This "breed" of Enterprise Architect became most clear to me when I watched <a href="http://www.infoq.com/presentations/Architecture-Reviews-Rebecca-Brock" title="Architecture Reviews">this</a>. I am sure the presenter in this video is a nice person, and she adds value to her clients, but people I know with this heritage have been a death knell for any project / program / initiative I have seen.</p><p><strong>Tech Lead => Program Architect => Enterprise Architect</strong></p><p>This one is the most interesting to me and possibly the most difficult to find. It is clear to me that one of the primary signs of a person who will be successful in this area (besides having deep technical skills) is in both thought process and discussion, they must have the ability to move between levels of granularity incredibly rapidly and communicate clearly while doing so. The successful EA from this background needs to be able to communicate effectively with technical leads, executives, business analysts, business customers and project managers all about the same topics in language they each understand and does not pander to them. Sometimes in the same meeting. I know <strong>very</strong> few technical people who can make this transition. Many great technical leads cannot get past speaking at a very detailed level in strategic discussions. They may try to dominate discussions with things they feel they can contribute that really have very little to do with the subjects at hand. I have never met anyone who learned this skill. The reason I like this one the best, and why I try to find people like this to work with is because, if they are successful in making this transition, they "get it". They know how things work and they can communicate clearly with anyone so that it makes sense to the person they are speaking with. They are also the one class of Enterprise Architect who can be neutral when deciding who to invite to a brainstorming session as they can tie all of the discussion and best thinking from across the enterprise together. They have the most value and the most power because they can use all of the best thinking in the enterprise and they can communicate back to the enterprise what the value of any particular initiative is.</p><p><strong>Everyone Else => Enterprise Architect</strong></p><p>I know many other people in Enterprise Architect roles in many companies and I can fairly safely say that none of them are operating in any "Enterprise-Architecture-Like" capacity. Sometimes people get put here as you would put someone on special projects. Stay away from these folks for anything important and help them where you can as they are fish in a galaxy that has no water.</p><p>I guess in a nutshell, my view of the value propositions of each are as follows:</p><p><strong>Operations => Enterprise Architect:</strong> I can plan things and create and run teams really well. Where process will streamline I can add that.</p><p><strong>Q.A. => Enterprise Architect:</strong> I can tell you that what you did does not meet compliance with something.</p><p><strong>Tech Lead => Enterprise Architect:</strong> I can do things. I can work with the smartest people in the company to progress our portfolio.</p><p><strong>Misc => Enterprise Architect:</strong> Self referencing null object. Help them find a place in the organization where they can be successful.</p>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com5tag:blogger.com,1999:blog-17813271.post-29725857218430505792008-07-29T21:48:00.004-05:002008-07-29T21:54:47.052-05:00Pragmatic Services<p>It seems that the discussion about <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" title="REST">REpresentational State Transfer (REST)</a> vs. SOAP as the preferred approach for service development is over for many people. There articles about SOAP being irrelevant seem less emotional and seem to lack the fevered pitch they used to have.</p><p>You look at the vendors though, and I don't see movement in this direction. One could review the offerings and speculate that a primary reasons vendors are spinning with SOAP is that have not figured out how to monetize REST. You talk with people developing RESTful systems and the point is they are solving business problems instead of using a technology. It turns the whole discussion towards solving a problem - what real SOA is supposed to do. I love that. That may be another reason the vendors are having trouble getting traction in this area; they need us to focus first on the technology stack.</p>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-82470083043229671632008-06-12T13:24:00.001-05:002008-06-12T13:24:28.021-05:00Cost of Storage in Fortune 100<p>I have this friend who was telling me about the storage constraints (read costs) at his company.  He told me that for 10TB storage they were billed $1.500,000 by their internal IT group.    I call him up now and I cannot stop laughing.</p> <p></p> <p>I juxtapose this with a post @ 37 signals about their experience with Amazon's S3 storage offering.  The article is <a href="http://www.37signals.com/svn/posts/947-fun-with-stats-the-s3-edition">here.</a>  The part that struck me the hardest is as follows:</p> <br /> <blockquote> <p>The fact that S3 is priced so reasonably (our last bill was <strong>$2,004.12</strong>) and the fact that it’s generally hassle free has enabled us to drastically increase the storage limits for all of our applications.... </p> <p><strong>March 2008:</strong></p> <ul> <li>8.8TB of data stored </li> <li>1.5TB uploaded </li> <li>2.9TB downloaded </li> <li>12M requests </li> </ul> </blockquote> <p>The thing that is so surprising and the thing that really prompted me to post this is these two data-points side by side and then someone commenting at 37signals that 2k/month is a "crap load of money".  At my friends company most mid-level (non-management) staff has approval for that much money and more.  This is a very reasonable charge for this amount of storage and the maintenance and backup of the storage.</p> <p></p> <p>I am glad that Amazon S3 exists and I hope at some point, the people selling storage to my friends company sees that the obscene margin they have historically had is just not sustainable.</p> Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-87043674015314745332008-06-09T20:43:00.005-05:002008-06-09T20:50:26.258-05:00My Sister is in NewsweekHow cool is that? Story is <a href="http://www.newsweek.com/id/140457">here.</a><br/><br /><blockquote>In the past, women dealt with that reality in two ways: some buried their femininity, while others simply gave up their techie interests to appear more feminine. "For most of my life I hid my passion for all things scientific and tried to focus on pursuits that were 'allowable'," says <span style="font-weight:bold;">Cathy Malmrose<span style="font-style:italic;"></span></span>, a Berkeley, Calif., mom who, at 38, is now the CEO of a computer manufacturer. "Instead of getting to play on my brother's TRS80 [computer] and study the sciences, I went into elementary education."</blockquote><br><br />Hey everyone - that's my sister. In Newsweek. Being a CEO of <a href="http://www.zareason.com/">ZaReason</a>. Now that is cool.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-32780785922098449242008-05-13T10:53:00.001-05:002008-05-13T10:53:56.370-05:00New Family Homepage<p></p> <p>For those that know me may be interested in the new family website <a href="http://web.mac.com/jfcct42">here</a>.  Have been updating the Movies area fairly regularly because we have <a href="http://www.amazon.com/Video-Ultra-Camcorder-60-Minutes-Black/dp/B000V1PXMI/ref=pd_bbs_sr_1?ie=UTF8&s=electronics&qid=1210693504&sr=8-1">his</a> and <a href="http://www.amazon.com/Flip-Video-Ultra-Camcorder-Minutes/dp/B000V1PXMS/ref=pd_bbs_sr_3?ie=UTF8&s=electronics&qid=1210693504&sr=8-3">hers</a> new toys.  This video camera solves my two main problems that have prevented any kind of consistent family video:</p> <ol> <li>Size of Camera - just a little bigger than a pack of cards.</li> <li>Battery life - this takes 2 AA batteries. No more looking for the charger that I can't find and then waiting 4 hours to charge a battery. </li> <li>Quality is good enough for what I need.</li> <li>Video is super easy to get moved to your computer so you can make a DVD or a video to post.</li> </ol> Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-17936237058792155322007-11-29T16:53:00.001-05:002007-11-29T16:53:50.587-05:00Panel Discussion by Computer Languages<p><a href="http://davidrupp.blogspot.com/2007/10/last-language-war-language-trolling.html">Hilarious</a>.  I have been using Ruby recently for all of my work with a not for profit organization and I love it.  I think some of the irreverence is captured.  I really like the way David characterized most of the languages. I just wish it could be about 5 times longer.</p> Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-80787604183715444112007-11-19T22:16:00.000-05:002007-11-19T22:39:17.468-05:00Two Forces in Enterprise ITA few weeks ago we had an executive summit at Gartner and I was quite pleased with our discussion with Anthony Bradley. His topic for the day focused around Enterprise 2.0 and the challenges and benefits that are being seen across industries. There were two themes that I have been pondering since that meeting.<br /><br />The first issue is around security and the way corporations handle end user desktops. "Legacy Enterprises", with security teams leading the charge, have had a primary concern to prevent anything bad from happening. The natural outcome is to nearly prevent anything at all from happening. The companies that are thriving are the ones that are thinking about the situation in a different way. Instead of the negative, (to prevent bad things) they are looking from the positive context and are trying to encourage good things happening. This means instead of a locked down desktop, where IT spends enormous quantities removing software and turning things off in the operating systems, IT focuses on providing a place and a way for the business to do great things. If bad things do happen, they can be treated as precedents and, usually are bad employee behavior. Employees can be managed rather than forcing the issue with hardened systems and hand tied behind the users back.<br /><br />The second issue hits right in the jaw of much of Enterprise Architecture. The premise of much of process driven Enterprise Architecture can include the Business Analysis, Business Process Modeling and subsequent refinements of model until you get to code and to working systems. These systems are typically "hard-coded" to business processes. Think a wizard implemented to handle stockroom ordering where each step is hard coded and tied in the models back to the business process. Anthony pointed out that much of what Enterprise 2.0 does is to recognize that <span style="font-weight:bold;">this does not work </span>in an environment where very little is static and stable. This leads to systems that meet the outdated requirements defined years before hand. If IT is to be relevant in the future of the corporation then we have to figure out how to stop doing this. The business knows their process. When IT models it we don't add value. What is needed is to have IT provide a container or an environment whereby the business can execute <span style="font-weight:bold;">their </span>business process. If those processes change we don't need to replace the application or the environment. <br /><br />Needless to say I am quite intrigued with these thoughts (and many others that were presented on that day and since) and am curious to see how we can effect changes such as these in our corporate environment.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-73505997401679806262007-11-19T21:13:00.000-05:002007-11-19T21:21:49.755-05:00My sister the wonderful geekI had a lovely surprise this evening, when I saw my sister profiled at linux.com. This story can be seen <a href="http://www.linux.com/feature/121373">here</a>. She is the CEO of <a href="http://www.zareason.com">ZaReason</a> which sells Ubuntu systems for great prices.<br /><br />I was quite chuffed (pleased) with the story and what she is doing. Having a cool sister completely rocks. I remember a lifetime ago on the play ground we would say "my Dad can beat up your Dad". Now I can go to a dinner party and say "my Sister is smarter than your Sister."Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-90292367485441941592007-11-15T00:42:00.000-05:002007-11-15T00:58:32.931-05:00Enterprise Architecture Stories - Nov 14, 07A friend of mine at a large fortune 500 company is part of a global Enterprise Architecture governance board where the group recently decided what to do with LAMP as far as internal platform support. It became apparent, days later, that one of the leads of the community and all of the top tier consultants that support that person didn't know that PHP and LAMP are "related issues". <br /><br />I asked my friend how a governing body can rule on something whose <span style="font-weight:bold;">acronym </span>is a mystery. My friend shrugged and said "meh". You can't make this stuff up.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com2tag:blogger.com,1999:blog-17813271.post-43747875558238499942006-12-28T00:38:00.000-05:002007-01-17T15:13:43.925-05:00Family Christmas Pictures<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.google.com/image/carlsonjf/RZNYPuKNO8I/AAAAAAAAAAg/hIgokXzx25Q/BandW5.jpg?imgmax=512"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://lh3.google.com/image/carlsonjf/RZNYPuKNO8I/AAAAAAAAAAg/hIgokXzx25Q/BandW5.jpg?imgmax=512" alt="" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.google.com/image/carlsonjf/RZNYOOKNO7I/AAAAAAAAAAY/KRWq-EBbF5s/BandW1.jpg?imgmax=512"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://lh5.google.com/image/carlsonjf/RZNYOOKNO7I/AAAAAAAAAAY/KRWq-EBbF5s/BandW1.jpg?imgmax=512" alt="" border="0" /></a><br /><br />We took piles of pictures again this year. We have narrowed it down to these two. We will be sending them out in cards in the next few days. Honest.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-48747127683582244672006-12-27T00:01:00.000-05:002006-12-28T00:41:03.734-05:00Manager Tools PodcastAs someone who likes to pretend he is still an amazing developer (even though most of my time is now spent doing "Architecture" and PowerPoint slides) it is with great trepidation that I look at things with the word "Manager" in them. Well, "Memory | Thread Manager" is okay. But everything else is right out.<br /><br />So, here goes.<br /><br /><span style="font-style: italic;">"Hi, My Name is Jeff and I listened to a podcast called '<span style="font-weight: bold;">Manager Tools</span>' on purpose."</span><br /><br />Whew - I feel better now.<br /><br />This afternoon I stumbled across the Manager Tools Podcast as I was looking for something else on iTunes. I think the only reason I listened to it at all is that the diagram/logo looks hand drawn and very "un-management-like" so I was caught in their net of uncertainty. I wondered - was this a serious podcast or a tounge-in-cheek podcast - how were they using the word <span style="font-style: italic;">tools</span>? Within 5 minutes of listening I was hooked. It is a serious podcast - one with real information presented in an interesting and useful way. At this point, I have listened to 4 of their podcasts and I feel smarter about career related things in general. I even went to their <a href="http://manager-tools.com/">website</a> and looked at the forums. Even more great stuff.<br /><br />If you work at a job on this planet and you have to interact with anyone at all ever, this material is, IMHO, shockingly timely, interesting, copious and useful.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-12377955358348184962006-12-22T01:08:00.000-05:002006-12-28T14:22:30.478-05:00Elders Quorum PartyWe had an Elders Quorum Party this summer. Probably the best one I have even been to. Included below are pictures of the invitation so you can see what it was like:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.google.com/image/carlsonjf/RZQXIeKNPaI/AAAAAAAAAEU/17xXVWoinm4/EQ%20Party%202006%20page%201.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://lh3.google.com/image/carlsonjf/RZQXIeKNPaI/AAAAAAAAAEU/17xXVWoinm4/EQ%20Party%202006%20page%201.jpg" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.google.com/image/carlsonjf/RZQXI-KNPbI/AAAAAAAAAEk/dTwfXuExQ2M/EQ%20Party%202006%20page%202.jpg"><img style="cursor:pointer; cursor:hand;width: 320px;" src="http://lh5.google.com/image/carlsonjf/RZQXI-KNPbI/AAAAAAAAAEk/dTwfXuExQ2M/EQ%20Party%202006%20page%202.jpg" border="0" alt="" /></a><br /><br />Pictures from our EQ Party this summer. Pneumatic Cannons. Big Steaks. Can it get any better than this? For those that know these folks, you should be aware that during the talking of these photos, Matt and Mike are actually shooting at each other.<br /><br /><div style="text-align: center; width: 194px; font-family: arial,sans-serif; font-size: 83%;"><div style="background: transparent url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat scroll left center; height: 194px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://picasaweb.google.com/carlsonjf/EQPartyJuly2006"><img src="http://lh5.google.com/image/carlsonjf/RZNc3eKNO9E/AAAAAAAAAEI/dQs_abFuPBo/s160-c/EQPartyJuly2006.jpg" style="border: medium none ; padding: 0px; margin-top: 16px;" height="160" width="160" /></a></div><a href="http://picasaweb.google.com/carlsonjf/EQPartyJuly2006"><div style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;">EQ Party July 2006</div></a><br /><div style="text-align: left;"><br /></div><br /><div style="color: rgb(128, 128, 128);"></div></div>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com1tag:blogger.com,1999:blog-17813271.post-4856567347134108562006-12-21T13:37:00.000-05:002006-12-21T13:53:40.295-05:00Recommended Humor<a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=182994253&s=143441">"The Areas of My Expertise"</a> by John Hodgman. The subtitle of this book is <span style="font-style: italic;">"WHICH INCLUDE: Matters Historical, Matters Literary, Matters Cryptozoological, Hobo Matters, Food, Drink & Cheese (a Kind of Food), Squirrels & Lobsters & Eels, Haircuts, Utopia, What Will Happen in the Future, and Most Other Subjects". </span>Get it now while it is <span style="font-weight: bold;">free </span>on iTunes. I am listening to it now and am excited to get to the part on "Actuaries and their Tattoos". It is hilarious. And yes, this is the guy who is the PC on the Mac/PC commercials.<br /><br /><a href="http://youtube.com/watch?v=WJV3rl7B4iA">Ask a Ninja podcast episode 17</a> All of these are funny, but this is the Omnibus one where he answers as many questions as possible without killing the listener.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-60795951844232420942006-11-20T00:52:00.000-05:002006-12-28T00:54:13.986-05:00McKay's Funeral<div style="text-align: center; width: 194px; font-family: arial,sans-serif; font-size: 83%;"><div style="background: transparent url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat scroll left center; height: 194px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://picasaweb.google.com/carlsonjf/McKayRollinsFuneral"><img src="http://lh5.google.com/image/carlsonjf/ROqBbqEVABE/AAAAAAAAATk/DybtJHE46kQ/s160-c/McKayRollinsFuneral.jpg" style="border: medium none ; padding: 0px; margin-top: 16px;" height="160" width="160" /></a></div><a href="http://picasaweb.google.com/carlsonjf/McKayRollinsFuneral"><div style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;">McKay Rollins Funeral</div></a><div style="color: rgb(128, 128, 128);"></div></div>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-1166724834709291592006-11-04T13:13:00.000-05:002006-12-21T13:19:27.016-05:00Web Service Development ApproachesAfter writing the last post, I wanted to make my primary point clearer. I think this is probably one of the most important gaps in the SOAP discussion so I put some visio diagrams together to represent the two styles of interface creation. The first and most common style (95% of everything I have ever seen in SOAP based web services follows this approach) is the common auto-WSDL RPC based method. This diagram is very high level and is meant primarily to make a distinction of how the interface (WSDL) is created.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6612/1043755850251952/1600/WSD-RPC.0.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6612/1043755850251952/320/WSD-RPC.0.jpg" alt="" border="0" /></a><br />As we see from the diagram above, we perform the following steps:<br /><ol><li>Determine the need to create a new service.</li><li>Write the Java / C# interface you would like to use (really what is the Java / C# interface you want to write to - it just happens to be distributed and happens to be marshalling everything into weird XML types you dont know anything about).<br /></li><li>Using the tools from your SOAP library, generate the WSDL automatically along with your stubs and skeletons to implement your service and clients.<br /></li><li>Proceed with development.</li></ol>The other approach is to have the architect or developer take control of the data types and interface of the service. The benefits of this are clear to this approach. However the up-front cost is quite large. You need someone who is very good with WSDL and XSD and who can traverse the corporate stores of WSDL and XSD documents looking for similarities and possible reuse. That being said, if you want sustainable and composable SOAP based web services, it seem that this is the only option. <not good=""><br /><br /></not><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6612/1043755850251952/1600/WSD-Document.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6612/1043755850251952/320/WSD-Document.jpg" alt="" border="0" /></a><br />As we can see from this diagram, the team performs the following steps:<br /><ol><li>Determine the need to create a new service.</li><li>Locate or Create appropraite data types to be used in your service (XSD).<br /></li><li>Desgin your service interface and create your WSDL.</li><li>Proceed with development.<br /></li></ol>Viewed from a high level and a large corporate development perspective, auto-WSDL generation is just irresponsible. Have you seen the WSDL that the Microsoft or Axis 1.x tools can auto-generate?Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com2tag:blogger.com,1999:blog-17813271.post-1166724792939649632006-11-01T13:12:00.000-05:002006-12-21T14:02:45.408-05:00SOA, CORBA and Web Services<p><b>Note:</b> At some point I will address the REST based Web Service pattern and it's various incarnations and permutations but until then when I say Web Service here I mean a WS-I Basic Profile 1.1 based Web Service.</p><p>Over the past few months I have been reading everything I could get my hands on as we embark on our SOA journey towards happier customers, mind-numbingly productive developers, un-precedented vendor cooperation, lightning quick business agility and magically lower costs. Somewhere along the way we also thought everyone would get a pony in the deal but we have since found that to be an exaggeration. The three books I have found particularly useful have been:<br /></p><ul><li><a href="http://www.amazon.com/gp/product/0471768944/sr=8-7/qid=1156391077/ref=sr_1_7/104-7399185-0110328?ie=UTF8">Service-Oriented Architecture (SOA): A Planning and Implementation Guide for Business and Technology</a> by Eric Marks and Michael Bell. Get this book if only for the Governance section (chapter 7). There is no peer level of information or thought anywhere on this topic of SOA governance.</li><li><a href="http://www.amazon.com/gp/product/0131858580/sr=8-1/qid=1156391077/ref=sr_1_1/104-7399185-0110328?ie=UTF8" target="_blank">Service-Oriented Architecture (SOA): Concepts, Technology, and Design</a> by Thomas Erl. This is actually my favorite of the whole lot but it is rather a bit too large to put in my bag to carry to and from work. There are many sections in this one that I found to be BIA (best information available). Notably in the analysis and design sections.</li><li><a href="http://www.amazon.com/gp/product/0131428985/sr=1-2/qid=1156391189/ref=sr_1_2/104-7399185-0110328?ie=UTF8&s=books">Service-Oriented Architecture : A Field Guide to Integrating XML and Web Services</a><strong> </strong>by Thomas Erl. This is a pale third of the bunch but it is still better than all of the others that focus on Web Services. The author does go on to the level of annoyance about XML databases. Yawn. If you just cut out that part of the book or give the book to your children one evening and let them color lovely pictures on those bits, then the rest of the book is mainly quite good.<br /></li></ul>Sadly I have read or skimmed every book published and available through Amazon as of today - whether it is specifically about Service Oriented Architecture or Web Services. I say sadly because there are some real poorly done books out there in this area.<br /><br />My background for the past 10 years has been in the CORBA environment so, when I first looked at Web Services I don't remember much but I was apparently seen giggling for a day or two. The WS/RPC model is identical to the CORBA model right down until you start talking about taking a reasonably sized message and bloating it up to monumental size through the dubious use of XML.<br /><br />There is a slight difference though in the <strong>way</strong> you develop CORBA systems and Web Services. In CORBA you develop your interface (IDL), use a tool the generate the stubs and skeletons and then implement the server. With Web Services you typically develop your POJO (or equivalent in whatever language you are using) and then you use a tool to develop your stubs and skeletons <strong>and your interface </strong>(WSDL) and then you implement the server. The whole "XML is great because humans can read it" is IMHO a <b>crock</b> when you start talking about WSDL of any complexity. Give me a complex CORBA IDL any day over a simple WSDL and I can read and comprehend the CORBA IDL in minutes while you are still trying to figure out what name spaces are declared in the WSDL. This is really just a frustration with the hype around SOAP based Web Services. The part of the hype that "SOAP and WSDL is simpler because it is human readable" is just stupid and anyone who repeats this as a primary benefit should be ashamed of themselves and possibly taunted.<br /><br />The interesting distinction between CORBA and SOAP based Web Services boils down to this - <ul><li>In CORBA you write the IDL by hand because frankly it is probably the most important part of the whole system to get right.<br /></li></ul><ul><li>In SOAP based web services the standard way of development seems to be to write something in your language of choice that then in turn can be turned into your interface of dubious quality by a tool from a vendor who really does not have a lot of motivation to make your service accessible from other languages / platforms. Most Web Service developers could not read their WSDL if there was money on the line much less know if there is anything about it that is less than optimal or that might cause problems down the line. </li></ul>Most of the good SOA or Web Services books tell you to use document based web services (originally the Microsoft model) rather than the RPC based web services (originally the IBM model) but none of the tools we have actually go to the logical consequent of <strong>why</strong> you would do document based web services over RPC based web services. To get to the goal of loose coupling you need to define your XML Schema (multiple) and WSDL by hand, then use the tools to create the stubs and skeletons and create the server implementation. You have to control your interface and not have it auto-generated from vendor tools.<br /><br />It seems I am back where I started 10 years ago, coding the service interface by hand without fancy tool support or anything more than some color coding of the dialect in your editor. The main difference is that instead of 25 lines of readable CORBA IDL we are going to have multiple XSD files and a WSDL that will be taller than my oldest child if it were printed out.<br /><br />Oh well - apparently there is no stopping progress. Sometimes progress can look a bit wonky unless your tilt your head way over to the side and squint. Then it looks quite good and new and shiny<br /><br />I do believe there are actual benefits to a well thought out and executed SOA program and SOAP based web services. However, it does get tiring to be continually bombarded with marketing and analyst drivel. It helps if you can find someone who has actually done this stuff and knows the actual costs and actual benefits - they can help cut through an amazing about of falsehood bandied about by those who, decades ago, stopped actually <strong>doing</strong> or <strong>producing</strong> anything real (yes I am pointing my finger at all of the analysts, marketing groups and mere opinion havers).Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-1166724743285745772006-10-15T12:12:00.000-05:002006-12-21T13:18:38.990-05:00TDD training with Mike ClarkA while back we were starting a large J2EE project with some folks that had not spent a lot of time with the Java language. One of the things I wanted to make sure we tried to instill from the very beginning of the development effort was a strong emphasis on unit testing. We wanted to get the best training available that would be pragmatic and usable. I wrote an email to the <a href="http://pragmaticprogrammer.com/">pragmatic guys</a> (Andy Hunt and Dave Thomas) and asked if they had unit testing training for development teams. <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi">Dave</a> pointed me to <a href="http://clarkware.com/index.html">Mike Clark</a>.<br /><br />At the time this name did not ring a bell and I was dubious. I did recognize some of the open source projects he has contributed so we contacted him. He already had a course in place called <a href="http://clarkware.com/courses/TDDWithJUnit.html">Test Driven Development with JUnit</a>. We were thinking that we would want to significantly modify the training, but it turns out that it was just what we needed. We brought him on site and he significantly enhanced our teams ability to deliver high quality code. His content and presentation style was absolutely perfect for what we needed. It's the only 9 hours / day of training I have not snoozed through at least part of.<br /><br />Since then I look for other internal groups that would benefit from his training, that have the budget and the time in their project timelines. I recommend this training to all Java developers who are not solid and consistent with unit testing.<br /><br />If we were doing Ruby on Rails, we would have Mike here for months at a time as most of the stuff Mike does now is in the Ruby and Ruby on Rails comminities. However, he still teaches the TDD / JUnit class for those of us in large enterprises that see J2EE in our future for years to come.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com1tag:blogger.com,1999:blog-17813271.post-1166724614567890852006-09-10T12:10:00.000-05:002006-12-21T13:18:15.096-05:00Some Pictures from 2006Uploaded some photos from the end of the school year 2006 (May) and from our vacation to the beach.<br /><br /><div style="text-align: center; width: 194px; font-family: arial,sans-serif; font-size: 83%;"><div style="background: transparent url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat scroll left center; height: 194px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://picasaweb.google.com/carlsonjf/GirlsOnVactionAndSchool2006"><img src="http://lh5.google.com/carlsonjf/ROZsYwhsABE/AAAAAAAAAB4/AqbBlmgcdF0/GirlsOnVactionAndSchool2006.jpg?crop=1&imgmax=160" style="border: medium none ; padding: 0px; margin-top: 16px;" height="160" width="160" /></a></div><a href="http://picasaweb.google.com/carlsonjf/GirlsOnVactionAndSchool2006"><div style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;">Girls on Vaction and School 2006</div></a><div style="color: rgb(128, 128, 128);">Aug 18, 2006 - 13 Photos</div></div>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-1166724655716268942006-08-21T12:10:00.000-05:002006-12-21T13:17:55.196-05:00Ricky Gervais does training video for Microsoft UKThis 20 minute of UK Microsoft training video with Ricky Gervais' manager character from the Office and Stephen Merchant is hilarious!<br /><embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=959125392868390030&hl=en"><br /></embed>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-1166724501279545522006-08-18T12:07:00.000-05:002006-12-21T13:17:28.730-05:00Is Jonathan Coulton the real Mr. Fancy Pants?In another blog I posted about <a href="http://www.jonathancoulton.com/">Jonathan Coulton</a>. If you have not heard of him, he is a guy who wrote, performed and recorded Code Monkey and he has tons of other great songs - all released under the creative commons license. Check out <a href="http://www.jonathancoulton.com/lyrics/mr-fancy-pants">Mr Fancy Pants</a> and also a <a href="http://www.jonathancoulton.com/songs">list of all his songs</a>. Other songs that made me laugh with deep hysteria include:<br /><ul><li><a href="http://www.jonathancoulton.com/mp3/Creepy%20Doll.mp3">Creepy Doll</a></li><li><a href="http://www.jonathancoulton.com/mp3/Tom%20Cruise%20Crazy.mp3">Tom Cruise Crazy</a></li><li><a href="http://www.jonathancoulton.com/music/thingaweek/ReYourBrains.mp3">Re Your Brains</a></li><li><a href="http://www.jonathancoulton.com/music/thingaweek/ChironBetaPrime.mp3">Chiron Beta Prime</a></li><li><a href="http://www.jonathancoulton.com/mp3/Bozo%27s%20Lament.mp3">Bozos Lament</a></li><li><a href="http://www.jonathancoulton.com/mp3/Skullcrusher%20Mountain%20%28Demo%29.mp3">Skullcrusher Mountain (Demo)</a><br /></li><li><a href="http://www.jonathancoulton.com/mp3/Mandelbrot%20Set%20%28Demo%29.mp3">Mandelbrot Set (Demo)</a><br /></li><li><a href="http://www.jonathancoulton.com/mp3/I%27m%20a%20Mason%20Now.mp3">I'm a Mason Now</a></li><li><a href="http://www.jonathancoulton.com/mp3/A%20Laptop%20Like%20You%20%28Demo%29.mp3">A Laptop Like You (Demo)</a> - if you own a PowerBook, you really need to listen to this song.<br /></li></ul>There are so many other songs that are fantastic. I am really happy I heard <a href="http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3">Code Monkey</a> on the <a href="http://www.javaposse.com/">Java Posse podcast</a> and I took the time to go look and see if the artist had done anything else. I had no idea he had done so much! I highly recommend that you go to his site and donate if you like his music.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0tag:blogger.com,1999:blog-17813271.post-1155613130559789402006-08-14T22:38:00.000-05:002006-08-14T22:38:50.606-05:00Getting Things Done in Windows<p>I had been using the <a href="http://gtdsupport.netcentrics.com/home/" target="_blank">GTD outlook plugin</a> and found this to be helpful in minor ways. It's main fault in my mind is that it takes the GTD model, where the project / task is the center of things and actaully makes email the center of things. It is really a poor system to capture "all items" and there is not an easy way to get the information out and into a trusted system.</p> <p><a href="http://www.downloadsquad.com/">Download Squad</a> just pointed out an <a href="http://www.clearcontext.com/">alternative to the GTD plugin</a> and I am finding it quite interesting and useful. It is not strictly a GTD Outlook plugin but it does seem to add tools that make Outlook a much more powerful system for dealing with and taking advantage of the mountains of email we all get. I am looking forward to using this tool for a few weeks to see if it can help me get and stay organized in my pseudo-GTD life.</p>Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com2tag:blogger.com,1999:blog-17813271.post-1153846360172958922006-07-25T11:47:00.000-05:002006-07-25T12:19:25.403-05:00Code Monkey and other lovely tunesVia the <a href="http://javaposse.com">Java Posse</a> podcast, I heard a great song called <a href="http://www.jonathancoulton.com/2006/04/14/thing-a-week-29-code-monkey/trackback/">Code Monkey</a>. I just wanted to make a general statement that the author and musician, <a href="http://www.jonathancoulton.com/">Jonathan Coulton</a>, is hilarious and he is doing something really interesting. It seems that he is creating a new song each week. He has a podcast called "Thing a Week".<br /><br />Go <a href="http://www.jonathancoulton.com/songs">here </a>to see all of the work he had done and support him. You can hear any song he had done there as well as buy the songs or view the lyrics. All of Jonathan Coulton's music is released under the creative commons license. <br /><br />The<a href="http://jocopro.libsyn.com/"> Jonathan Coulton Project</a> is a group that takes these songs and makes music videos. They seem to be under a similar license. So far there are five videos available in both mp4 and wmv formats.Jeff Carlsonhttp://www.blogger.com/profile/04822866282819707202noreply@blogger.com0