Welcome to a site focused on increasing business value through the effective use of technology. I’m an IT professional based in Houston, Texas with more than 25 years of experience in the management and architecture of large scale technology solutions across a variety of industries. Although my experience and focus has been on technology, my educational background is in Economics and Business and I have degrees and certifications on both sides of the business and technology continuum.
One of my primary interests is in increasing the throughput between business ideas and succesful technology implementations. I draw upon a range of practical industry standard approaches such as Agile, Lean, and the Unified Process as well as years of experience applying these techniques in a wide variety of settings.
One of the things I enjoy most about the IT industry is the rapid pace of change and its inexorable movement towards increasing throughput. I see Information Technology moving into a new phase of its evolution. The days of having one centralized IT organization responsible for supporting business development initiatives AND maintaining and supporting existing systems and their infrastructure are over. A more effective model finely tuned for a dynamic business environment operating in a flat world of globally interconnected markets and people will focus on a more responsive and adaptive model. Organizations with IT organizations managing classic ‘feeds and speeds’ will increasingly turn to the services of outsourced service providers and leverage applications and computing capacity through a cloud of web based solutions that can increase or decrease capacity based on need. A new business technology organization focused on business outcomes embedded within business units will emerge overseen by a Chief Business Acceleration Officer with visibility across all of an organizations’ value chain. Interested… read more on my sponsored blog at ITToolbox and explore the articles and templates available on my site.
As many who follow my blog entries and have read my articles know, I use the Unified Process as framework to manage projects and programs. While the phases of the UP (Inception, Elaboration, Construction and Transition) are powerful ways to manage the risk and narrow the ‘cone of uncertainty‘ of a project, I find the disciplines within the Unified Process as useful containers for ensuring roles are established and that artifacts are being developed that will support the project.
However, beyond the phases and disciplines I find most of the artifacts and activities as too abstract for effective application in most real world projects. Instead, I mix in a series of techniques that I have applied successfully and found round out the details of each of the disciplines with RUP.
The Requirements Discipline
- Requirements Drive Development: A Use Case-driven Process
As stated in previous posts and in articles like Real World Development Practices: RUP and XP , I apply much of Craig Larman’s UP style and its emphasis on rightsized, “essential” use cases, which then collectively act as a lynch pin that links together the disparate disciplines of Business Modeling, Requirements, Analysis and Design, Implementation, Test and Project Management. Furthermore, achieving success with use cases is more difficult than it first appears, and many pitfalls in usage await the inexperienced practitioner. Consistent application of the techniques espoused by Alistair Cockburn’s de facto standard for specifying use cases and structuring them in relation to goals, which provides a repeatable, traceable discipline for use case development and maintenance.
- Executable Requirements: Aligning Requirements and Development
These days I particularly like the idea of ‘Executable Requirements’ (XR) to capture requirements. This approach has the benefit of not only enabling the Pull method described above but they also ensure that software developed matches the specifications provideds. XR bsaically provides a mechanism where a requirement is captured in a ‘pass/fail’ style using an Excel or HTML table to define the requirements. The power of this approach is that it not only moves requirements out of the fuzzy, prose style that can plague use cases (and which is why use cases have so many sections) but also allow a team to automate a series of tests that demonstrate that a requirement has been ‘fulfilled’. For those of us with a testing orientation we can immediately see the opportunity to regress through all of our tests every iteration and ensure that new changes don’t break old functionality. There’s a lot to this subject and something that I’ll update on more in the future but there are some good reference sources for this such as the Fitnesse wiki and Ward Cunningham’s Functional Integration Testing (FIT) Framework.
- Managing Risk and Non-functional Requirements (ATAM, EVO)
Addressing Non-Functional or Supplementary Specifications is often a neglected component of software development. Notable references in this area are Tom Gilb’s iterative EVO method, which emphasizes full and careful definition of non-functional requirements (which Gilb calls “attributes” leveraging his Planguage approach) and SEI’s ATAM (Architecture Tradeoff Analysis Method) methodology. Documentation of all significant architectural decisions – a component of the ATAM approach – as a key mechanism for reasoning about and justifying choices between architectural options. This fits well with leveraging risk analysis as a major driver of iteration plans.
- Early, Continuous Delivery of Business Value: Complementing the Risk Driver
The agile methods complement UP by providing an important emphasis, not only on risk reduction, but also on the early and continuous delivery of business value. Hence, a full iterative development discipline has two drivers: delivery of useful functionality and management of risks. The use case-driven approach, when combined with non-functional drivers and the dispatching of work into developer tasks provides tangible evidence of progress to the business at each iteration’s end. (See some of the XP, EVO, and FDD links for further details.)
The Analysis Discipline
- From Use Cases to Developer Tasks
The Larman method takes analysts and designers through a series of simple intermediate steps leading up to operation contracts on a system or service level interface. In accordance with Agile Modeling [below], intermediate artifacts need neither be formally developed nor maintained if the ceremony level of the process does not warrant it. I also believe strongly in a “pull”-driven approach to developer task definition, a key element in Lean Programming.
- Applying Analysis Patterns to Streamline Design
I encourage analysts to leverage Martin Fowler’s Analysis Patterns, rather than reinvent the wheel. This emphasis provides synergy with the product line process mentioned later, and also opens the analysis up to alignment with standardized vertical models such as well defined reference models (e.g. Insurance Application Architecture). Another useful source of such patterns is Penker and Eriksson’s book.
With the increasing interest in Agile techniques such as Scrum and XP, I often come across clients and project managers assuming that these approaches alone are sufficient to ensure the success of their projects. In actuality, the Agile Principles are really a value system that help contribute to effective behaviors on a project. None of the agile techniques recommend dispensing with the well defined practices that govern effective project implementations such as risk, scope and change management (amongst others). In fact most of the Agile techniques found in current literature are intended to work within existing frameworks and metamodels, without which your projects won’t succeed.
When I develop project plans and teach project management approaches, I frequently turn to the Metamodel offered by the Unified Process. What I like specifically about the Unified Process is that it breaks a project into four phases (Inception, Elaboration, Construction and Transition) that have clear entry and exit criteria that are easy to manage against. In addition the phases are well defined and relatively intuitive to most people (Inception involves scoping and structuring the project, Elaboration focuses on de-risking the project and developing an Architecture, Construction emphasizes the rapid development phsae of the project and Transition focuses on readying the application for deployment).
The UP also contains a number of useful ‘disciplines’ which reflect major workstreams in a project lifecycle. Business Modeling, Requirements, Analysis and Design, Implementation, Test and Deployment ebb and flow across the project lifecycle while Project Management, Configuration/Change Management and the Environment disciplines are focused on supporting the lifecycle in its entirety (these latter are found in the IBM version of the Unified Process called the Rational Unified Process.
The popularity of the Unified Process is reflected in its evolution into a number of forms including the Agile Unified Process, Enterprise Unified Process and even the Oracle Unified Process. IBM recently released an open source version called OpenUP which is based on its popular Eclipse Process Framework.
Over time I’ve come across a number of agile/lean techniques that support the disciplines I mentioned above and enhance these disciplines to make them more effective. Over the next few postings I’ll offer a walk through on a discipline by discipline basis on each of these techniques.
Creating a project status report is as much art as it is science. A good status report contains critical project information that senior leaders and stakeholders can review to understand overall project health and progress. The status report should also not take hours of time for a project manager to complete. I’ve used many status reports over the years. I developed this template based on not only classic PMP status indicators (like schedule, budget, scope) but financial metrics and project reference information (such as project code). All of the core project status information is included ‘above the fold’ for easy reference when the document is opened. However, from experience attaching a document to an email reduces the likelihood of it getting read by about 50%. To address this I copy and paste the dashboard information of the status report and paste it in the body of the email. That way even a busy executive can quickly scan key project vitals through the preview feature of their standard mail program.
If you’ve been working in the software development industry for the last five years you’ll have heard the increasing clamor to use offshore development resources. Most of the initial interest on offshore was focused on the significant cost savings that it could offer, however, recently these claims have been enhanced with promises of increased quality thanks to the high CMM certifications of many offshore development organizations. This article is a short primer on some real world experiences that might help you if you’re either thinking of following this approach or you’re in the midst of an offshore software development project.
Read the Article
This artifact is not so much a template as an example of how to develop and implement an Enterprise Architecture. This reflects work I created approximately fifteen years ago with several specific goals in mind. The first was to implement a consistent mechanism for managing IT investments across a dynamic, rapid growth business environment. Secondly, I wanted to develop the site in such a way that maintaining its content would be relatively straightforward, primarily leveraging network file storage to reference standards and guidelines. Finally, I wanted to ensure a visual metaphor that would be salient to business and IT stakeholders and impress upon them the solid foundation an Enterprise Architecture provides.
There is a high emphasis on aligning technology processes and the overall architecture with business goals and strategies. It has very much of a Zachman Framework feel which I was very influenced by at the time. The entire site emphasizes the importance of aligning IT with Business Goals and priorities which since it was developed before the PMP and ITIL shows some of the prescience that the framework provides.
This is a complete website which was designed to allow easy navigation of important IS reference material with a minimum of maintenance and support. Documentation is included on both the Java applets used for mouseovers on images and the menu applet within the site. The rest of the material consists of templates and examples which could be of considerable value to someone responsible for managing the creation of a similar set of material. This artifact is probably more relevant for someone managing IT assets and resources across a medium sized organization (500 – 5,000 users).
The Weighted Criteria Assessment Matrix is a tool designed to aid decision making involving a large number of criteria or decision points. This tool is primarily used for technology decisions but can easily be modified for any multi-criteria decision. As the name suggests, these criteria are ‘weighted’ based on their importance to the decision. The goal is to provide an objective assessment of a decision (which can be a product selection or an architecture decision). Any number of products or decisions can be compared simply by “copy and pasting” one of the existing columns into a new column. This template includes an instructions tab which provides more details.
The Iteration Route Map is a tool that identifies what functionality will be delivered in each iteration of a project. As the name suggests it acts as a map that project stakeholders can reference in order to anticipate how the application will develop throughout its lifecycle. The Iteration Route Map is primarily used by the architect and development team to manage analysis and design and implementation activities throughout the project but every team member and stakeholder will find value in reviewing it once completed. The template comes with instructions and examples.
One of the reasons social media has exploded in popularity and use is the profound effect it has on improving communication. The heart of successful projects is the communication amongst teams and stakeholders, so it only makes sense for project managers to look for ways to leverage social collaboration tools. This presentation provides an inventory of available tools like Twitter and Wikis to help strengthen communication mechanisms in your project and provides real world examples of how to get the most out of these tools.