Blog Home  Home Add to any service  
Beckshome.com: Thomas Beck's Blog - Tuesday, October 24, 2006
Musings about technology and things tangentially related
 
# Sunday, October 22, 2006

I’ve recently been re-reading Scott Ambler’s excellent work on the Enterprise Unified Process and focusing my attention on the strategic reuse discipline, in particular. Dealing with this on a day-in, day-out basis, I’m trying to apply this particularly to the business domain that I work in, state government. I like the way that Scott went about illustrating the enterprise management disciplines with the traditional RUP workflow maps. Above and beyond this, he borrows from an earlier article of his, A Realistic Look at Object-Oriented Reuse, to create a couple of diagrams that really hit home. I’ve taken the opportunity to adopt these diagrams to enterprise work being done in state government. The adopted diagram can be found below.

Reuse.png (79.92 KB)

The comments to the right of the chart demonstrate that there are three coarsely delineated segments of reuse:

  1. Areas where domain-specific reuse is occurring now. Unfortunately, these areas fall towards the lower end of the benefit spectrum. In this segment, wholesale cross-state system transfers are particularly widespread. In many cases, the cost of the system being transferred is negligible or nonexistent due to federal funding rules. However, it is rare when these systems can be transferred without acquiring the knowledge of the people that created them. In many cases, this is an acceptable trade off because the domain in questions is inhospitable to other solutions and orthogonal to the domain for which they were originally created. Make no mistake, however, this is more a reuse of human resources and knowledge capital than it is of system elements.
  2. Areas where domain-specific reuse is not warranted. In the center of the above chart lie frameworks and artifacts. With industry standard processes such as the RUP, MSF, and a variety of Agile processes, there is little need to create domain-specific processes or artifacts. The same holds true for frameworks, where Sun, Microsoft, and a variety of vendors and open source options are likely to be much more stable and better supported than any inhouse created options. This should not preclude you, however, from customizing these processes and frameworks and, as necessary, extending them to meet your exact needs.
  3. Areas where domain-specific reuse should be occurring. These are the higher-order levels of reuse. This includes domain-specific analysis patterns for state government as well as a variety of architected solutions. These solutions may include COTS products such as the one from Curam Software, solutions targeted as cross-cutting domains such as licensing, and leveraging emerging data exchange standards to encourage the sharing of knowledge and data between business partners and communities of practice.
Sunday, October 22, 2006 10:03:51 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   e-Government | Software Engineering  | 
# Monday, October 16, 2006
On September 26th, President Bush signed into law the Federal Funding Accountability and Transparency Act of 2006. The represents the first piece of legislation sponsored by upstart Illinois senator Barack Obama to make it into law. Being touted as the “Google for Government”, the law directs the Office of Management and Budget (OMB) to oversee the creation of a single comprehensive searchable Web site that would include information on all federal grants, contracts, and other funding awarded to public and private organizations. As the President mentioned at the signing, the federal government issues more than $400 billion in grants, and more than $300 billion in contracts to corporations, associations, and state and local governments. These range from reputable grants to operate state Medicaid systems to questionable allocation of funds such as the hundreds of millions of dollars allocated to build a bridge to a virtually uninhabited island in Alaska, the so called “bridge to nowhere”. Although at way to high a level to be a true comparison, the Death and Taxes graph provides a good representation of what we might end up seeing.



With an estimated start-up cost of about $5 million per year for the first two years and ongoing costs of $2 million per year, the Web site to support the law will be relatively inexpensive (in the grand scheme of things) for the Federal government. What is the impact going to be on local and state governments? From the bill’s text (more information), it would appear that the costs of reporting direct and sub-award data are to be factored into existing grants as indirect costs, since these costs would result from complying with conditions for federal assistance. Whether or not the states choose to follow suit and drive out more accountability from their grantees and contractors remains to be seen. This type of “trickle down transparency” would certainly be good for the taxpayer though and would demand a level of accountability previously unheard of at the state and local levels.
Monday, October 16, 2006 9:19:16 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   e-Government  | 
# Sunday, October 15, 2006

I’m often asked about tools and technologies that I use on a daily basis. Like everyone else out there, I lead a pretty busy life and I’m always trying to find ways to be more efficient or to use tools that better support the way I work and live. Below you can find a list of the tools and technologies that make my life easier in some way or the other. I’ve cataloged these tools using some general categories to help delineate functionality. As much as possible, I tried to avoid the mundane things and concentrate on smaller niche tools or new technologies that you might not have heard of or actively use and which might enable you to tweak a bit more efficiency or productivity out of your day. Enjoy and please feel free to add comments citing tools that you believe might be of interest to others.

Digital Media

  • Wall Street Journal on Audible.com – The Journal is the way that I get my news every day. No commercial interruptions, no funding drives, no annoyances. The MP3 version shows up at around 6:00 am every morning and is ready for download to my iPod. The daily read is about an hour long and includes selected articles unabridged and read in their entirety.

  • IT Conversations - Some really great Podcasts by leading edge thinkers in the IT industry. The material is first rate strategic thinking and helps keep me centered on larger issues even when my day-to-day concerns are often much more pragmatic.

  • TiVo, TiVo Central, and TiVoToGo – Yeah, almost everyone offers DVRs these days but TiVo was not only the original, it has remained the most fully featured. With TiVo Central, you can schedule your recordings from a Web browser so that you can make sure to record that show you forgot to schedule last night. With TiVoToGo, you can transfer TiVo recordings to your PC, laptop, or most recently to a number of mobile video devices, such as the video iPod. There’s nothing like watching Lost or 24 on the walk into work in the morning.

  • Video iPod and the Transpod – The video iPod is truly an amazing thing. All that storage, all those songs, and a phenomenal little viewing screen. The Transpod lets me take my music on the road with me and will continue to get good use until I get my next car, which will definitely have some type of interface for the iPod.

  • Handy Backup – I’ve never had a hard drive with critical personal files crash on me. Statistically speaking, though, it’s only a matter of time before this happens. I therefore use the Handy Backup tool to do incremental and occasional full backups to an offsite FTP server. The disk space, you ask – MediaMax Streamload - $4.99/month for 100GB storage.

  • Turbine Video Encoder – Used for taking my AVI videos and converting them to the industry standard Flash format for video distribution. This is the same process that YouTube does except that it’s not them doing it, it’s me.

  • Audacity – An open source sound recorder and editor that’s great for recording, editing, and publishing audio in MP3 format. I’ve use this for all of my GeoGlue recordings.

  • Afterdark CD Series – With different techno flavors representing a variety of US and international cities, the Afterdark collection contains enough funky grooves to get you through days of work without ever hearing the same song twice.

Web-Based

  • Firefox – Once you go to Firefox, you won’t go back to Internet Explorer. Firefox is benefiting from fresh ideas in a market where others had long since capitulated to Microsoft’s dominance and meaningless updates. Microsoft’s newest version of Internet Explorer, with tabbed browsing, integrated search, and customization is a blatant rip off of Firefox. Thanks but no thanks.

  • Netvibes, RSS, and Delicious – Earlier this year, I switched from my home page of over 3 years – Google and moved to Netvibes, a Web 2.0 home page. While Google, Yahoo, and Microsoft struggled to catch up with their home grown portal offerings. Netvibes and its brethren (such as Pageflakes) have created vibrant ecosystems with all of the portal services that you might need and open APIs to create your own services should you see fit. Two of the most useful services are the RSS and del.icio.us modules. Having access to all of your blogs and favorite links from one well organized home page will contribute a lot to your efficiency.

  • Safari and Books 24x7 – As an addict to technical books, these two sites were godsends in so many ways. With enterprise subscriptions, the entire array of Apress, O’Reilly, Addison Wesley Professional, and Wrox technical books amongst others are at your fingertips. If you buy and read a lot of technical books and can handle the digital media, this is definitely something for you. If the subscriptions seem a bit too pricey, a Professional membership to the Association of Computing Machinery (ACM) will get you entry grade access to both of these collections.

Software Engineering

  • Visual Studio Professional and NetBeans - On a day-to-day basis there’s really no other way to do professional .NET and Java development than with a professional IDE. For .NET Visual Studio professional has all of the tools that you need and avoids the overbearing Team System overhead that you might not. With Java, I’m doing my work right now in NetBeans although I’m working with a bunch of different IDEs to determine which I like best. Oracle JDeveloper and MyEclipse are a close second and third, respectively.

  • Enterprise Architect – UML modeling, team-based modeling, round trip code-model synchronization and design tool extraordinaire. Enterprise Architect does it all and does it all well. All of this for $200 per license. EA is arguably one of the best buys in the industry and one tool that you’ll never catch me without.

  • TestDriven.NET – A must have for any .NET developer, in my mind. TestDriven allows you to run a variety of unit test suites (NUnit, MbUnit, and Team System) directly from the Visual Studio IDE. One of the killer features is the ability to run the tests with the debugger. Recent features include the addition of menu items leveraging NCover for code coverage and Lutz Roeder’s Reflector for disassembly and dependency analysis amongst libraries.

  • WebHost4Life and eApps – I host a variety of content online and have found these two hosts to be the best over time. WebHost4Life provides reliable .NET hosting using .NET 1.1/2.0, full SQL Server 2000/2005 functionality (with full Enterprise Manager access), registering of COM/COM+ components, and set up of SharePoint sites. eApps provides Java and Ruby on Rails hosting. Java hosting includes JBoss/Hibernate, OpenLDAP, and Subversion repository creation.

Knowledge and Document Management

  • OpenOffice – Although I’m still locked into Office at work, OpenOffice provides a free alternative from my home computers. With support of the new Oasis standard OpenDoc format, reading from and saving to Microsoft compatible (e.g. Word, Excel, Powerpoint) files, built in PDF creation, and conversion of Powerpoints to Flash, OpenOffice meets all of my home document management needs.

  • Subversion and TortoiseSVN – A great example of truly open source software beating out best of breed commercial competitors. Subversion is an open source revision control system that is replacing CVS as the repository of choice for managing open source and commercial code alike. Running on top of Apache, Subversion communicates very efficiently via http and is thus a great choice for distributed development. With widespread plugin support, including the Windows Explorer-based Tortoise SVN, Subversion is a great choice not only for managing source code but for managing changes to any documents that might be accessed by a variety of users.

  • The Brain – Although there is a lot of mind mapping software out there, the Brain is by far my favorite. It’s a great way to organize disparate thoughts; allowing me to capture hundreds of thoughts, focus on the ones at hand and drill down through the whirling nodes of radial visualization with a few clicks to get to any of those hundreds of thoughts or ideas. Check this one out online.

  • Win2PDF Pro – I distribute almost all my Web-based documents as PDF. Win2PDF Pro is much cheaper than a full version of Acrobat and it let’s me create PDF from most common programs. The pro package includes password protection, encryption, PDF hyperlinks and other niceties.

  • Camtasia – Useful for illustrating the use of particular software or techniques. On-screen activities are captured and may then be edited down and described with the addition of narrative audio tracks.

  • Whiteboard Photo Image – I am a big advocate of using whiteboards as a documentation and facilitation tool. To avoid recreating the informal images on these whiteboards, I suggest the use of digital cameras to capture what’s on the whiteboards and the use of software like whiteboard photo image to make these images a bit more true-to-life of the sketches that were originally created. The tool also does a great job with sketches, CRC cards, user stories, or anything else which starts out as paper but which you might wish to give a bit more permanence.

Sunday, October 15, 2006 4:08:02 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]   General Technology | Java - .NET - RoR | Product Reviews  | 
# Tuesday, October 10, 2006

It’s been a while since I’ve posted my last entry. To get myself back in the groove of things, I thought that it might be nice to post something lighthearted and entertaining that your average tech weenie would enjoy. Now I don’t know if you follow the gurus of the technology world but my research has turned up a set of long lost brothers amongst the talking (or blogging) heads. Check out the two pictures below. The one on the left is Bruce Schneier, cryptography and computer security wunderkind and designer of several cryptographic algorithms, including Blowfish and Twofish. The one on the right is Martin Fowler, refactoring, pattern, and agile god.

I couldn’t believe it myself when I first saw this but a side-by-side of these two gentlemen makes things perfectly clear. There’s got to be some common lineage here. It’s crazy to think about what our world might have been blessed with were these two great minds not separated at birth. Agile cryptography? Algorithmic refactoring?

Tuesday, October 10, 2006 9:48:03 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   Miscellaneous | Software Engineering  | 
# Tuesday, September 19, 2006

I enjoyed Harry Piereson’s well thought-out response to David Chappel’s entry on SOA and the Reality of Reuse. I couldn't have said it better myself, though that won’t stop me from trying. The way I see it, David brings to light the fact that the emperor has no clothes and then Harry tells you why the emperor is naked. The focus on business context in Harry’s entry really caused me to think about why business logic reuse fails.

The use of the word “context” stirred up in my mind the classic black box, gray box, white box argument. We can expect Java buttons or .NET Windows objects to behave in a low context, black box manner. From contextual business objects, we can at best expect gray box behavior; although white box is much more realistic. I guess in the box world, the opacity of the box is tantamount to the amount of context that can get through.

This said, in business object environments that demand high opacity/context, can and should we strive for reuse? I think the answer is still a resounding “yes”. We just need to do it in a realistic manner. So what does this mean? If our experience has shown that neither objects nor Web services are the appropriate level of abstraction for business logic reuse, where do we turn?

In my mind, analysis patterns provide the answer to this question. Analysis patterns are the long lost stepbrother of the popular design patterns. Martin Fowler does a great job of categorizing common analysis patterns in his book of the same name. However, it is Eric Evan’s Domain Driven Design book that provides the real insight into the process that will lead to analysis pattern identification.

The true beauty of analysis patterns is that they not only work within their target domain; they have the uncanny ability to shed new light on similar situations across domains. I can well imagine that the case transfer pattlet we created applies not only to the state government business domain for which it was intended, but also fairly well to the transfer of cases in the legal system domain.

In such high context, business rule driven transactions such as case transfers, I would never aspire to build a reusable object or service. Letting the analysis pattern speak for itself, I feel as if I’ve gotten all of the reuse capability I need to at that level. Attempting to create a standard programmatic solution that incorporates all the complexities of the pattlet’s context is likely to cause more problems than it solves. As caretakers of the business logic we need to understand the negative impacts of overengineering a solution and learn to use the right colored box for the job.

Tuesday, September 19, 2006 8:50:44 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   Software Engineering  | 
# Sunday, September 17, 2006

Programming Atlas, by Christopher Wentz, has not yet officially been released but I’ve had the chance to read it and keep up with progress through the O’Reilly Rough Cuts program. With its last update happening over a month ago, I anticipate that its now press ready and that a review of the book would be appropriate at this time.

Even though Atlas has not yet been officially released, this book is already a late comer to the market. It’s been beaten to market by a variety of AJAX texts that included some coverage of Atlas and at least one dedicated Atlas book from Apress. With all the press around Ajax and the huge Microsoft ASP.NET programmers market, putting out a book in the Atlas category is an opportunity that won’t be ignored by the major publishing houses. After trying out Atlas for a while during its Community Technology Preview (CTP) release and seeing the fairly extensive documentation and examples released by both Microsoft and the community, I tend to think that it’s an opportunity that they might best have chosen to ignore just the same.

Working through Christopher’s book, things appeared to be clustered into several sections. Although this is not officially the way the book is broken down, it makes the most sense from a reviewing standpoint:

  • Introductory Chapters – Introduction to Atlas, AJAX, JavaScript, and client-side controls. This material takes up the first eight chapters (i.e. half) of the book and the information contained within can largely be garnered elsewhere including articles, books, and the Atlas documentation. If you’re not entirely new to AJAX, this section of materials is skimmable or skippable entirely.
  • Server-Side Chapters – These chapters cover using server data, custom data sources, Web services, and cross-domain calls using a server proxy. This is by far the best original material in the book and is well worth a read.
  • Atlas Implementation Chapters – This section covers the broadest array of topics. Some of it, such as extending controls and using Atlas with Web parts, is very interesting material. Other sections, such as Map mashups (using MapPoint, blah!), and the Atlas control toolkit (great tools, no value added above and beyond MS materials).
  • “Other” Chapters – Certainly not what I bought the book for. Using Atlas with PHP, other AJAX tool coverage, although interesting, was put at the tail end of the book for a reason. This material could just have well been made into appendixes or omitted entirely.

All in all, Christopher’s writing style is good and he gives adequate coverage to the breadth of Atlas topics. This book might make for a good desk reference but is a tedious end-to-end read. Stick to the documentation or go for more pragmatic materials such as O’Reilly’s other offering in this area, Getting Started with Atlas, from their shortcuts series.

Sunday, September 17, 2006 8:58:33 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   Java - .NET - RoR | Product Reviews  | 
# Wednesday, September 13, 2006

Following up on a long-standing desire to get domain knowledge out of our heads and onto paper, a colleague and I engaged in writing our first state government pattlet. We spent about two weeks of our spare time putting together an abstract approach to case transfer based upon our varied experiences. We finally have a draft version which we feel comfortable sharing online.


As far as I know, this is a first-of-its-kind endeavor for state government. We drew heavily on Fowler’s Analysis Patterns: Reusable Object Models as background material for documenting the patterns. The underlying analysis, design, and approach are all original, though. Please understand that the pattlet is not perfect. We’ve marked it as a 0.1 version to reflect its state and we intend to update it over the next couple of weeks.

We would really appreciate your feedback on the pattlet. Specifically, we’re looking to understand if there are important case transfer nuances which we missed, flaws in the analysis and design, or significant domain details which might shed new light on how to approach this problem. I know that most people feel very comfortable with email but I ask you to please consider using the comments section on this page. That way, everyone can benefit from your insights.

Note that the pattlet is licensed under the Creative Commons “Attribution Share-Alike” license. This license falls along the lines of common open source software licenses, allowing you to modify and re-disseminate this as you see fit, so long as you attribute the original work to us and any new work goes out under the same license as the original. We plan on distributing future pattlets under the same license. It seems to be a happy compromise between rights and reuse.

Right now, we are only giving access to the final product in PDF format but we have kicked around the idea of hosting sample code, pattern documents, and design models on a Subversion share. Let us know if this would be interesting or if we’d just be wasting our time in this endeavor. Finally, you can find the pattlet by clicking on the link below.

Case Transfer.pdf (164.24 KB)
Wednesday, September 13, 2006 10:16:07 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   e-Government | Java - .NET - RoR | Publications | Software Engineering  | 
# Tuesday, September 12, 2006

The nominations for the 2006 NASCIO state government recognition awards are now available online. There is some really interesting and innovative stuff in here. 



BSCoE can be found under Cross Boundary Collaboration and Partnerships and JNET, which I’ve blogged about in the past, can be found under Data, Information, and Knowledge Management. Happy reading.
Tuesday, September 12, 2006 10:35:37 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]   BSCoE | e-Government  | 
Copyright © 2008 Thomas Beck. Some rights reserved.

Creative Commons License