Blog Home  Home Add to any service  
Beckshome.com: Thomas Beck's Blog - BSCoE
Musings about technology and things tangentially related
 
 Friday, March 09, 2007

One of the most common misunderstandings or missteps in following a particular software process is to follow that process in a blind, one-size-fits all fashion. This is especially true if you are mandated organizationally to use a particular software process. Just as the founding fathers could not have foreseen the challenges of the modern world when authoring the Constitution, there is no way that the creators of a generic software process could understand the nuances of every particular project where their process would be used.

 

Processes need to be malleable so that they don’t incite the “baby with the bathwater” response in which the entire process is tossed aside because it proves too inflexible. Good processes can and should be customized. There are several methods that can be used to achieve this end. One of my favorite articles on this topic is an oldie from Per Kroll (“Dr. Process”), entitled How Can We Customize the RUP? In this article, Per lays out 3 basic methods that can be used to customize the RUP:

 

  1. Make comprehensive changes to the RUP with the Process Workbench (Heavy)
  2. Produce a custom RUP configuration using RUP builder (Lighter)
  3. Create your own development case and place it in the project-specific Web site. (BINGO)

First reading this article caused me to re-examine the development case, an often overlooked project artifact. I fell in love with the idea of the development case but the RUP and online examples I could find at the time didn’t live up to my expectations. Between online examples, my ideas, and a great section on the development case in the book Software Development for Small Teams: A RUP-Centric Approach, I pulled together a template that I’ve carried with me, more or less unchanged, until this very day. I’ve included a copy of this template for you to download. The version that is included in Pennsylvania’s BSCoE Software Engineering Process (SEP) is very similar in many ways. You can find that version in the center ring of the online SEP.

 

 

The beauty of the development case is that: (1) it’s very lightweight, just a Word file; (2) it works equally well with a commercial process tool or with no process tool; (3) facilitating a meeting to walk through a development case forces people to communicate about what will and won’t work for them and to make decisions that often have very beneficial impacts for their projects. The best part of the development case is that it works very much like object-oriented inheritance. Customizations from higher levels in an organization can trickle down to lower layers of an organization with customizations and/or additions being provided at every layer where this is required to add value.

Friday, March 09, 2007 12:52:01 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 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    |   |  Trackback
 Tuesday, August 29, 2006
In addition to the technical assets (Java Framework) that I’ve mentioned in previous blog postings, BSCoE also makes a set of software process assets available. These software process assets are arranged into disciplines and collected under the umbrella of BSCoE’s Software Engineering Process (SEP). The BSCoE SEP is available online to the general public in either a browsable or downloadable format.

The SEP is based roughly upon the Rational Unified Process (RUP) and Microsoft Solutions Framework (MSF). Those looking at the sample assets will notice the similarities with the standard RUP templates. The process component of the SEP is specifically vague, leaving decisions such as formality versus agility, process activities, and roles to the projects employing the SEP. In particular, projects have several options for SEP customization including document-driven (RUP-style development case), local modifications to the process, or modifications with intent to contribute back changes to BSCoE for inclusion in the master SEP distribution. The SEP is conceptually similar in some ways to Ivar Jacobson’s new Essential Unified Process (EssUP). However, whereas the EssUP variability comes through the selection of practices, SEP’s variability comes through the selection of artifacts. 

For those of you thinking of creating your own software processes, I can only recommend the experience. Using the RUP and the Rational Method Composer or the MSF and the new Team System templates, although educational, is not an easy process. This is especially true if you intend to employ lightweight, agile processes on your projects. In this case, modifying the base processes from the RUP or MSF is tantamount to carving a chess piece from a sculpture sized block of marble.

Fortunately, as always, there are many that have gone before us in this endeavor. The sources highlighted below were of great help to us in the creation of our process and are highly recommended whether you require guidance or are just looking to better understand software engineering processes in general:

  • Scott Ambler’s Writings – This guy is truly the best place to start when you’re looking for anything process related. All roads will eventually lead through his work. Particularly interesting are Scott’s Agile Unified Process and his Enterprise Unified Process. The former is a lightweight version of the RUP focusing on test driven development, agile modeling, agile database techniques, and refactoring. The latter is an extension to the RUP covering enterprise disciplines not mentioned in conjunction with many software processes such as portfolio management, enterprise architecture, strategic reuse, and software process improvement. In addition, it adds two new phases to the RUP, production and retirement.
  • Philippe Kruchten’s Books – The two Addison-Wesley Professional books Rational Unified Process Made Easy and Rational Unified Process: An Introduction are seminal works on the RUP. Often overlooked is Software Engineering Processes: With the UPEDU, a book that runs through an educational version of the Unified Process with some pretty decent explanations and online examples.
  • Craig Larman’s Books – Craig’s books, although not focused on process engineering or the intricacies of processes, convey an awful lot of information in real world contexts. Agile and Iterative Development: A Manager’s Guides is one of the best ways for non-techie types to get their arms around lower ceremony development processes. Applying UML and Patterns focuses on modeling and design patterns but does so in the context of a process using the Unified Process infused with Agile methods, making it a source of great contextual information.

In addition, we have been picking up reference artifacts along the way to illustrate best practices and real world examples. One of the artifacts that I fell in love with was the Yummy SAD, available online as HTML and downloadable in document format via FTP. This is one of the most generic, understandable, and widely-applicable examples of a software architecture document (SAD) that I have come across. One of the big selling points of the Yummy SAD is that aside from just being an artifact, it also comes with an approach to architectural decomposition. In particular, it espouses an architecturally significant use case / quality attributes based approach to documenting and realizing your architecture. Explaining software architecture in this fashion has helped me clarify the relevance and importance of the SAD on more than one occasion.

Please feel free to share any best practice artifact references or software process tips that you might help accumulated over the years in the comments section below.

Tuesday, August 29, 2006 8:34:52 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Friday, July 28, 2006

Pennsylvania’s Office of Information Technology (OIT) issued the Keystone Technology Plan to serve as the information technology blueprint through the year 2009. The plan’s phased approach is quite interesting, with the following phases taking center stage:

  • Yesterday: Enterprise Planning and Governance
  • Today :Shared Infrastructure Services
  • Tomorrow: Business Centric Services

BSCoE plays a prominent role in OIT’s vision and is mentioned as a driver of infrastructure today and key player in the creation of business-centric services in the future.


Although I was notified of this release through offline communications channels, I also stumbled upon a Technorati link to a Pennsylvania-specific technology blog – PATechSpot. The folks running this blog seem to have a pretty good handle on technology happenings in the Commonwealth. It’s definitely a site worth adding to my blogroll.

Friday, July 28, 2006 9:08:12 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Thursday, July 06, 2006

The BSCoE4J Java application development framework was released today to the Commonwealth and is now available for download. The framework contains both abstract and concrete components that support the creation, manipulation, and persistence of domain objects. It interfaces well with, and is meant by no means to supplant, well-understood open source frameworks that address presentation layer, persistence layer, or domain object creation and discovery challenges.

 

 

The addition of the BSCoE4J Framework as the third core BSCoE assets rounds off the BSCoE offering for custom enterprise application development. BSCoE4J joins the BSCoE.NET Framework and the BSCoE Software Engineering Process (SEP), forming a comprehensive set of tools for Commonwealth applications looking to do development in either Java or .NET.

Thursday, July 06, 2006 8:09:29 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
 Thursday, June 29, 2006

The BSCoE project recently received a Computerworld Honors Program laureate honoring the project for its use of information technology to benefit society. It looks like the official case studies and pictures of the award ceremonies have been posted online. You can find the BSCoE case study here. I’ve also included a couple of interesting photos from the Computerworld ceremonies including the snapshot of our client receiving the award.

      
Thursday, June 29, 2006 3:02:10 PM (Eastern Standard Time, UTC-05:00)  #    Comments    |  Trackback
 Saturday, June 24, 2006

The official press release just came out announcing that the Commonwealth of Pennsylvania will be using LogicLibrary’s Logidex product as its asset metadata repository. This is quite an exciting development since it will afford BSCoE the opportunity to automate many of the asset cataloging, management, and approval functions that would have otherwise been manual processes.

 

As a card holding member of the tool skeptics club, I admit to being plesantly surprised and impressed by all of the product demos that I’ve seen and the technical expertise displayed by LogicLibrary’s product technicians. Logidex has a number of extremely interesting features that I have seen in no other product, let alone product suite, including:

 

  • Visualization of the enterprise architectural layers with the Federal Enterprise Architecture (FEA) included out of the box and support for the integration of other popular models such as the Zachman framework. This allows users to navigate the layers of the enterprise architecture and examine the assets associated with each of the layers. 
  • Cataloging the contents of multiple disparate version control systems and presenting them as a “virtual repository”. This repository includes UDDI discovery of Web services and baseline .NET and Java assets from Microsoft’s Enterprise Library and Sun’s core J2EE patterns, respectively.

         

 

  • Providing a configurable workflow for the review and approval of software assets as well as notifications to asset consumers of changes to existing assets.
  • Exposing core Logidex business services as Web services, lowering the barriers to integration with existing solutions, portals, etc. LogicLibrary eats their own dog food in this sense, by having their IDE plug-ins for Visual Studio and Eclipse consume these same Web services.

All in all, quite an interesting tool from some industry visionaries, including those responsible for IBM’s ill-fated San Francisco project. Like many large software packages, it’s hard to get a sense of how the software works since you can get trial software. Microsoft and LogicLibrary offer a limited trial version available on the MSDN lab. If you’re interested, I encourage you to check it out. Also, sharing of any experiences with this toolset, positive or otherwise, would be greatly appreciated.

Saturday, June 24, 2006 6:37:40 AM (Eastern Standard Time, UTC-05:00)  #    Comments    |   |  Trackback
Copyright © 2008 Thomas Beck. Some rights reserved.

Creative Commons License