Delivering Business Value Through Technology

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 20 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.

A Unified Approach to Agility

A Unified Approach to Agility

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.

Leveraging Offshore Software Development Centers (Article)

Introduction

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 quick 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 development project.

Get Real

Regardless of some of the promises you might have heard, offshore development will only help your project save about 15-25% of its costs. Why? Because the most logical piece of a project that can be outsourced is the ‘commodity’ oriented programming component. Unfortunately, programming represents only 30-50% of a software development project’s total costs. The rest is taken up by project management, requirements/analysis and design, testing and ancillary activities (like configuration management and environment preparation). Unless the project has very well defined requirements and has been well designed (which places many mainframe development projects into this category), you won’t see the 100-200% returns many offshore development organizations are touting. However, the opportunity to save up to 25% of your project costs can be quite significant, particularly these days.

If your system is a high novelty system you won’t be able to avoid the need for proper requirements gathering and analysis and design. Unfortunately, this process needs direct access to users and business stakeholders which requires an onsite presence. Before embarking on an offshore development project, you need to understand where your organization’s capabilities reside. If requirements gathering and analysis and design are skills that are readily available and which have hardened processes you are probably in a good position to capitalize on offshore development. If not, then spend the time necessary to develop processes and skills to support these important workflows. It’s easy to lose the benefits of cheaper offshore resources by inefficient re-work if requirements are not adequately documented or communicated.

Communicate, Communicate, Communicate

If you thought your current projects are challenged by lack of communications you might want to re-assess your capacity to support an offshore development project. Regularly scheduled conference calls, e-mails and chat sessions are a must for managing these projects. Not only are these sessions for sharing information and establishing a clear perspective on the status of the project but they are also important for avoiding any of the miscommunication which can plague an offshore development project.

I would strongly encourage defining a communication strategy for your offshore development project. This should document a number of important communication techniques such as the frequency of scheduled conference calls with the entire team, the use of chat tools, whether or not video conferencing will be supported, application sharing tools, how to use e-mail and the use of a repository to manage project artifacts:

Conference Calls

It is important to have regularly scheduled conference calls with the whole project team. The calls should be conducted by the onsite and offsite project leads although everyone should have an opportunity to participate. Calls should be carefully managed to ensure they start and end on time. Detailed issues should be assigned to individuals to be followed-up offline. Issues and tasks should be documented and entered into a tool which can be accessed by the entire project team at any time. It might be necessary to have a variety of project conference calls for different teams based on the size of the project (some involving the business owner/customer and others with only the project participants).

Chat Tools

Tools like MSN Messenger and Yahoo are indispensable to managing offshore projects. However, it is important that everyone have an assigned ID, that these IDs are communicated throughout the team and that project members follow some form of ‘etiquette’ (since not all issues can be resolved by instant messages!).

Video Conferencing

If you have access to good video conferencing facilities I would recommend using them, however, these require high bandwidth and more sophisticated equipment than the $100 webcams that are becoming increasingly popular. Video Conferencing due to its cost and the challenges of setting it up is probably best for formal status updates which should only occur every week.

Application Sharing

One area that can greatly aid collaborative development with an offshore team is exploring some of the application sharing tools that are available. These tools allow teams to ‘whiteboard’ different solutions and to work on a common document together (such as a use case or architecture diagram). These tools are very useful in place of the brainstorming that onsite teams often are involved in.

E-mail Usage

E-mail is an important mechanism for sharing information between onsite and offsite teams. However, it should not be used to replace other components of your communication strategy, particular a document repository. All too often, e-mail is used as a mechanism to share artifacts, the risk is that these artifacts can be difficult to track and manage. It can also be difficult to ensure that everyone has the most current version of an artifact. For offshore development projects this becomes a critical risk. To address this, guidelines should be drafted for the project where documents are transmitted via e-mail only in unique circumstances. Otherwise, all documents should be placed in a repository and notifications of these deposits provided through e-mail with a link to the back to the repository. Using e-mail for short, focused forms of documented communication is the best way to use this technology for project communication purposes.

Document Repository

A commonly accessible document repository is an important tool for facilitating communication within an offshore project. A good document repository should be accessible 24/7 (remember your offshore team will need access to information primarily during the night). It should also support versioning of artifacts and provide a check-in/check-out feature (all things that a Configuration Manager will be familiar with!). I would also encourage you to keep the interface and any document properties fields as simple as possible. Many document repositories have rich interfaces which can cause unnecessary delays in loading pages particularly from offsite locations if there are any bottlenecks in network speed, also adding too much detail about the properties of a document being uploaded to a repository (such as document class, sub-class, status etc.) can also be needlessly demanding for the real needs that a repository serves (namely providing a common location for all project related material).

Tool Selection

Tools are an important mechanism to support most of the communication needs identified above but they can also be important in managing more discreet elements of an offshore project, such as requirements management, source code and defect tracking. Selecting the appropriate tools for your offshore development project should align with your enterprise tool requirements but the tools you use are going to be an important component of your offshore development strategy. Regardless of the tools you select it is important to validate that there are no barriers for their use in your offshore environment. Tools need to have the ability to synchronize easily through either the internet or a VPN. Ensure that there are no barriers to using the tools like operating system or browser differences between your onsite and offsite locations. Agree on the use of tools before the project and test them to make sure they work as required. If you don’t have any tools to manage your development effort you might want to consider this before embarking on an offshore development project.

Culture

Regardless of where you decide to outsource your development efforts (India, Pakistan, China or elsewhere) it is important to recognize that there are differences between your culture and the culture you are dealing with. Although this is a difficult area (fraught with all sorts of ‘political correctness issues’) some things you want to document prior to the start of your project include:

Holidays

Make sure that national or other holidays are documented at the start of the project. These holidays can have a significant impact on a project, particularly since most holidays don’t align well between countries. For example, November can have a lot of holidays between the US (Thanksgiving) and India (Deepavalli) which can significantly reduce project productivity.

Infrastructure

Many areas where offshore development is conducted can be prone to infrastructure challenges. Although most industrialized countries are not familiar with these issues, brown-outs and entire city power failures can and do occur in offshore development environments. When selecting an offshore development partner ask about about how they are supported for power outages (back-up generators etc.) and whether they operate in a high-priority area for phone and electrical services.

Language

It can take sometime to get familiar with the accents of individuals from different states or counties let alone different countries. Usually this process requires time and practice so expect to see improvements throughout the lifecycle of the project. Also remember that verbal communication can be more effective than written communication since writing skills in the software development industry are typically pretty weak anyway and are only exacerbated when you involve writing in a second language. I try and have a quick review of any significant correspondence before it is issued to customers or business stakeholders. This quality assurance function should be formally embedded in your project in some capacity simply to avoid any confusion (or possibly hurt feelings) caused by a language challenge barrier.

The CMM Conundrum

Increasingly, many offshore development organizations are touting their CCM level 5 certifications as a way to differentiate themselves in the offshore market. There are two things about these certifications that I have observed. The first is that it’s not entirely clear how these certifications are assessed and how credible these assessment truly are. A number of offshore organizations that I have seen with CCM Level 5 certifications did not have any true standardized processes and certainly none that could lead to consistent and repeatable software development results. However, this leads to my second observation which is that there is a difference between an organization’s CMM certification and a project’s CMM level certification. Although your offshore development partner might be a CMM level 5 certified organization this does not necessarily translate to your individual project. Ask how your offshore development partner will support your project with its CMM processes, ask if any of their projects have been assessed using the CMM process.

Also be aware that while a high CMM certification might give you greater comfort you are dealing with a credible and quality oriented offshore development partner, you need to also be aware that this can come at the expense of flexibility and agility. This might be fine for a mission critical system but you might want to think about whether something so important is the right candidate for an offshore development project. The most important thing to be focus on is how your offshore development partner adjusts to deviations from its CMM processes. How these difference are managed can influence how well your own organizational processes can work with them.

The Final Analysis

Offshore development does work and it does save you money. However, there are many things to be aware as we have seen before embarking on your first offshore development project. I would recommend two things to organizations considering this approach to their software development needs. The first would be to conduct an internal readiness assessment to see if your existing processes, infrastructure and tools can support an offshore development initiative. The second thing would be to trial offshore development with small and relatively low risk, internal application. These two steps can help you move through the learning curve with a lower degree of risk than betting the farm on a large engagement.

Leveraging Offshore Software Development Centers

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

Enterprise Architecture

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).

Weighted Criteria Assessment Matrix

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.

Project Status Template

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.

Project Iteration Routemap

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.

Leveraging Social Collaboration Tools for Effective Project Management

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.

Crowdsourcing your PMO Governance Model

Crowdsourcing is a relatively new term that describes the act of taking a task traditionally performed by an employee and outsourcing it to an undefined, generally large group of people or community.  In this presentation, that was part of the 2009 PMO Symposium, an innovative approach to developing an organization’s PMO Governance model was offered that leveraged crowdsourcing and Wikis to create a self-sustaining governance model that was easily scalable and adapted readily to changing organizational needs.