Showing posts with label Computers and Internet. Show all posts
Showing posts with label Computers and Internet. Show all posts

Friday, November 19, 2010

BIG Announcement: This Blog has Moved!!!

announcement

Hark!! What’s the fanfare all about?

The trumpets are announcing that Victor’s blog has moved to VictorFont.com!!! That’s right, my own domain!

You may have noticed I’ve been a little light with my writing lately. It’s taken several weeks to get the server up and all of my content transferred over. And that’s not all! I’ve also completely made over my family’s site: FontLife.com and got my wife’s blog site up and running at SusanFont.com. I’ve been a real busy beaver. Having my own server gives me much more creative freedom. I’ve already implemented a lot of new features on my blog and even created my own WordPress template. If you stick with me, you’ll see many more improvements and a few surprises in the months ahead. I’m planning two more sites. One is for mobile users, but more on that later.

I want to thank you all for the encouragement you’ve given me since I started writing seriously. Here are some interesting stats. Since January, when I started this blog, there have been 5,217 visitors to this site. October was the busiest month with 2,778 readers. The busiest day was Tuesday, October 5th when I posted the article about my favorite Android apps. That day there were 426 readers!

Your emails and comments are the greatest blessing of all. You’ve left 48 comments on my 80 posts. I can’t count the number of emails I’ve received. But even when I haven’t got something quite right, I am always thankful when someone steers me in the right direction. Feedback is a gift and none of this is possible without you.

So please remember to update your bookmarks. If you are a subscriber to this site, you information has already been transferred over. You don’t need to do anything. Once again the new address is http://www.victorfont.com. New multimedia posts will start showing up later today.

Monday, November 1, 2010

A Simple Yet Advanced Lesson in Android Programming—Changing TabWidget Tab Colors

Sometimes it’s the little problems in life that can be so challenging, but when solved are the most rewarding. As such is my experience with changing the colors on the Android TabWidget object. I spent several days and nights searching for documentation, reading the responses to questions other developers have posted, trying different things to get this simple problem solved and finally the “AHA!” moment came last night during my sleep. I woke up this Sunday morning at 6 AM with the solution on my mind. So for about an hour and half before going to church, I solved one of the greatest programming challenges I’ve faced in many years—how to change the tab colors on the Android TabWidget and keep the dividers in their proper place.

Some of you might have this figured out already, but from the great number of unanswered questions on the net, I’ll assume most haven’t. There’s so little documentation for some of these more esoteric Android features. The books I’ve read are good to get someone started with Android, some are even helpful. But I haven’t found one yet that teaches the common tasks programmers are likely to do when they’re coding.

The answer to my question was right in front of me the entire time. I found the solution in the Android SDK. I’m coding my app for Froyo or higher. The minimum SDK version for this solutions is 8. I have not tested to see if it works on the previous SDK versions. You’re on your own for that.

To illustrate what I’ve done, take a look at the two emulator screen captures below.

grey_tabs
Fig 1. Standard Grey Tabs

blue_tabs

           Fig 2. Modified Blue Tabs

The goal is to allow users to choose between a dark (Fig. 1) and light (Fig. 2) color scheme. The choice is made in a CheckBoxPreference object through the Preferences framework.

App-prefs

As soon as a user selects or deselects the Light Colors checkbox, the tab screen changes color immediately upon returning to it from Preferences.

orange_stripeIt’s really quite easy to control the tab colors. What’s not so easy is to control the orange bars that display to the left and right of a tab when it is pressed. Actually, they can be changed but it’s not recommended to do so because you have to access them through the internal Android API (com.android.internal). Doing anything through the internal API is risky. You’ll never know how the internals will change over time which can cause your application to break and security risks are inherent.

To modify the tab colors, first copy tab_indicator_v4.xml or tab_indicator.xml from android-sdk-windows\platforms\android-8\data\res\drawable to the res\drawable folder in your project. If you don’t have a res\drawable folder, create it and then copy the file from the SDK. The content of the file is:

<!-- Copyright (C) 2008 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
     implied. See the License for the specific language governing
     permissions and limitations under the License.
-->

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/tab_unselected_v4" />
    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/tab_selected_v4" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/tab_focus" />
    <item android:state_focused="true" android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/tab_focus" />

    <!-- Pressed -->
    <item android:state_pressed="true"
        android:drawable="@drawable/tab_press" />
</selector>

The @drawables in this file control the appearance of the tabs in their various states, i.e. pressed, focused, selected, etc. These drawables are .png graphics located in your project’s drawables-hdpi directory. You can get the graphics referenced in this file from the drawables-hdpi directory for the platform of your choice in the Android SDK. You assign this file as the background resource for your tabwidget.

I created two versions of this .XML file. The first is for the dark theme, the other for the light theme. The only difference is the name of the @drawables graphics I’m using in each. To make the blue selected and unselected .png graphics I made copies of tab_selected_v4.9.png and tab_unselected_v4.9.png from the SDK. Then I used the color replacement tool in Photoshop to create the new images.

The following Java example is a custom method I wrote for my app’s tab activity to set the background resource to either file based on the user preference IsLightColors.

protected void setTabColors() {

   /** * Before we do anything, determine saved value of
         IsLightColors */

    MyApp app = (MyApp) this.getApplication();
   
IsLightColors = app.RetrieveBoolean(getString
       (R.string.LightColorsKey));

    /** set the color scheme based on IsLightColors user pref
    */
    View myLayout = findViewById(R.id.main_layout);
    if (IsLightColors) {
       myLayout.setBackgroundColor(Color.WHITE);

        for (int i = 0; i < tabHost.getTabWidget()
           .getChildCount(); i++) {
           tabHost.getTabWidget().getChildAt(i)
     .setBackgroundResource(R.drawable.tab_indicator_v4_light);
        }
    } else {
       myLayout.setBackgroundColor(Color.BLACK);

       for (int i = 0; i < tabHost.getTabWidget()
           .getChildCount(); i++) {
           tabHost.getTabWidget().getChildAt(i)
     .setBackgroundResource(R.drawable.tab_indicator_v4);
       }

   }
}

This code snippet references app.RetrieveBoolean. You won’t find this method in Android. This is another custom method I wrote for an app-level extension library. Using this method, we obtain the value of IsLightColors from the Preferences framework and the if statement does the rest!

Now before you point out any coding inefficiencies like the duplicate code blocks you see in the if-else construct, please note that I’m all for writing functional code in the smallest chucks possible. Code efficiency must be a priority especially when writing for small, portable, memory challenged devices. setTabColors() refactored for efficiency looks like this:

    protected void setTabColors() {
       

/* * Before we do anything, determine saved value of IsLightColors */
        MyApp app = (MyApp) this.getApplication();
        IsLightColors = app.RetrieveBoolean(getString(R.string.LightColorsKey));
       
  // set the color scheme based on IsLightColors user prefs
        int tab_indicator = IsLightColors ? R.drawable.tab_indicator_v4_light : R.drawable.tab_indicator_v4;
        int layoutColor = IsLightColors ? Color.WHITE : Color.BLACK;

        View myLayout = findViewById(R.id.main_layout);
        myLayout.setBackgroundColor(layoutColor);
       
// set the background resource for each
        for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
                tabHost.getTabWidget().getChildAt(i).setBackgroundResource(tab_indicator);
        }       

    }

}

Notice the if statement is gone and there is no duplicate code. Writing more efficiently means greater speed in execution. I certainly hope this has shed some light on the tab color issue and helped you in your quest to customize your tabs.

Friday, October 15, 2010

Use Word/Tag Cloud Technology to Determine Your Resume Keywords

Search Engine Optimization (SEO) experts make a ton of money teaching people how to achieve a higher ranking in search results. It doesn’t matter if the results are from a Google search or for a jobs database for a position to which you just applied. They all promise to help you move to the top of the list. The problem with such promises is that there is only one slot at the top of any list. We all can’t be on top, but we can definitely improve in our rankings.

For example, if you search my full name in Google, “Victor M. Font Jr.,” I come up in the 1st through 4th and 7th places. If you search a partial variant of my name (i.e. “Victor Font”), I come up in the 4th and 9th positions. That’s not too bad considering most people don’t read past the first or second page of Google search results. In both examples, I am on the first page.

In this time of high unemployment and stiff competition for open positions, if my name came up in a recruiter’s search like it does on Google, I’d be pretty pleased. And I’m confident that you would be just as pleased with rankings like that in a recruiter’s candidate search, wouldn’t you? Of course you would and so would I.

Since I’ve been seeking my next role, I’ve received more spam from SEO experts promising to help me move to the top of search lists using a technique called “keyword optimization.” All of them ask for money to teach the technique or perform the task themselves to optimize your resume with the right keywords. Whatever you do, don’t buy into this service. It’s a bunch of malarkey that optimizing your resume keywords one time for a fee will consistently bring you to the top positions in a search result. In fact, it’s a pet peeve of mine that so many out there are willing to take advantage of the unemployed to line their own pockets with green. So I’m going to teach you one technique, that I use myself in this article. Best of all, you’re learning this for free!

To understand keyword optimization, it’s first important to recognize how jobs are posted and recruiters search for candidates. I’ve spent the better part of my IT career supporting Human Resources and HR systems including job posting and recruiting applications. I’ve also hired a lot of people over the years and the process is simple. As the hiring manager, I write the job descriptions and send them over to the HR talent acquisition team. A job board administrator modifies my job description to add the requisite HR, benefits and legal information and then posts the position on Dice or Monster.com. Then I wait.

The job is assigned to a talent acquisition specialist who is an expert at picking top talent to invite for interviews. But with hundreds, if not thousands of resumes competing for the eyes of this one talent acquisition specialist for this one job, how do you move yourself to or near the top of the list, especially since the recruiter is searching for resumes that match the keywords found in the job description? The answer is keyword optimization. To be effective, keyword optimization needs to be done for every job to which you apply. This means slightly changing your resume for every job to which you apply. It takes work, but it can produce results!

I know! You’ve probably spent a long time getting your resume just right so it speaks of your accomplishments, what you did and what your results were. And it took hours of wordsmithing to say exactly what you mean in your objective or professional summary so you can market yourself effectively. But do you know what? The computer you enter your details into when you apply for a position doesn’t care a hill of beans about the hard work you put into your resume. All it cares about is mapping the resume’s keywords to the job description. And when the talent acquisition specialist searches for resumes based on the job description’s keywords, if your resume matches, you get on the list. If your resume doesn’t match, you’ll probably never hear from the company again.

When you look at a job description, you can probably pick out a lot of keywords, many of which may already be on your resume. But how do you know what the right keywords are? How do you know that you’ve chosen the right keywords for your resume that match the major keywords of the job description. This is where Word or Tag Cloud analysis can help you dramatically. I’m not going to tell you what tool to use, but if you do a search in Google for “word cloud tools,” you’ll find a lot of them, many of them free.

The first thing to do is analyze the job description. In the following example, I’ve created a Word Cloud for the job description for a “Systems Administrator Level – 3” position posted on Dice.com.

 

WordCloud

 

Now let’s do the analysis part. Looking at the word cloud, what keywords jump out at you? The words that jump out at me are “system,” “installation,” “experience,” “administration," etc.. Why? The more important the keyword to the context of the job description, the larger its size in the word cloud. In fact, if you look closely you’ll notice the word “administration” appears in the cloud twice, once with a lower case “a” and once with an uppercase “A.” What I should have done was convert the entire job description to either upper or lower case so the word cloud tool would have analyzed each word only once. It would have produced much more accurate results.

If you were applying for this position and you were to create a word cloud of your resume, would the same keywords jump out at you? If not, they won’t match a computer search either. You won’t be on the top of the heap and may not even be called for an interview even though you may be the most eminently qualified individual to have applied for the position. Computer searches are cold hearted and never take the person into account.

Before you apply for the position, modify your resume so the keywords of the job description stand out in your resume. Wordsmith your accomplishments or summary objective. Make sure the keywords sound natural in the context in which you are using them. But whatever you do, don’t resort to a just creating a list of keywords anywhere on your resume so a computer will pick up on it. This is lazy and the talent acquisition specialists will recognize this.

Wednesday, October 13, 2010

Motorola Acknowledges Droid X Froyo 2.2 Bugs—Fixes Coming

Matt, the Droid X forums manager inn the Motorola support forums, posted this blog article yesterday acknowledging some of the issues with the Droid X Froyo 2.2 release:

If you have already upgraded to 2.2 for Droid X, you have found some new capabilities. Unfortunately, some owners also found new issues.  Here are some of the known issues raised by forums members, with some information about each. It is not intended to be a complete list at this time -- there are many more fixes and improvements in the works. I’ll update this list as information becomes available.

  • Stuck on Moto logo after reboot – this was tough on a few owners. Very sorry about that. A fix has been developed for this and should eliminate the problem. It will be distributed in a future software release. If you are still experiencing this issue, click here.
  • Random rebooting – while there always seem to be new conditions that can cause an electronic device to panic, we do have improvements coming that address and eliminate identified panic states. They will be distributed in a future software release.
  • Wi-Fi connection and stability – improvements in Wi-Fi have been developed, to address several problem areas. They will be distributed in a future software release.
  • Battery Manager “force close” errors – under some circumstances, pressing the battery icon under Menu > Settings > Battery Manager results in a forced close error. A fix has been developed for this and should eliminate the problem. It will be distributed in a future software release.
  • Media won’t play – includes “sorry the player does not support this type of audio file," custom ringtone stop working, video won’t play, etc., until after a reboot. We believe we have identified the cause of these errors. A fix has been developed for this and should eliminate the problem. It will be distributed in a future software release.
  • Music files cutting off the final four seconds or so – a solution has been developed. It will be distributed in a future software release.

At this time I don't have information about when the next software update will be available -- when I have it, I'll share it here.

https://supportforums.motorola.com/thread/38876

Monday, October 11, 2010

Setting Up an Android Development Environment

My HP DV8T laptop is now setup as an Android application development environment. It was very easy to do so and everything worked the first time. I was able to create, test and debug the infamous “Hello World" app within 5 minutes of having completed the environment. The instructions I am providing here are for the Windows platform only. If you want to program in Linux or on a MAC, please visit the Android Developer Site for those platforms’ details.

To get going, you only need four things, two of which are required and two are optional:

  1. Java Development Kit (JDK) version 5 or 6
  2. Android SDK
  3. Optional: Eclipse Version 3.4 or 3.5
  4. Optional: Android Development Tools (ADT) Plugin

If you are new to programming, the term “SDK” means “Software Development Kit.” SDKs are sometimes called “devkits.” Typically, a SDK is a set of tools that allows for the creation of an application for a specific software package, software framework, hardware platform, computer system, video game console, operating system or similar platform.

Java JDK

The Java Development Kit is available at Oracle's Java Download site. Simply download either the 32-bit or 64-bit version of the JDK depending on your OS version and run the program to install.

Eclipse

Eclipse is a very popular and free integrated development environment (IDE) available from Eclipse.org. An IDE provides comprehensive facilities to computer programmers for software development. An IDE normally consists of: a source code editor, a compiler and/or an interpreter, build automation tools and a debugger. For developing Android applications, it’s recommended that you install one of these packages:

  • Eclipse IDE for Java EE Developers
  • Eclipse IDE for Java Developers
  • Eclipse for RCP/Plug-in Developers
  • Eclipse Classic (versions 3.5.1 and higher)

There’s one BIG caveat to installing Eclipse. The Android Development Tools Plugin has known incompatibilities with the current version of Eclipse (3.6). If you are installing a fresh environment, it is recommended that you install version 3.5.x. I decided to install the 3.5.2 classic version and it was a painfully slow download. The package is a 168mb .zip file that took two days to download. The download kept timing out and I had to restart it many, many times. I’m very grateful that each time I restarted the download, it picked up again from where it had previously stalled. Unzip the Eclipse .zip file to the location of your choice and create a shortcut to the Eclipse executable and you’re ready to go. There is no Eclipse installer to run.

Android Development Kit

The Android Development Kit (ADK) is another .zip file like Eclipse. Once it’s downloaded, unzip the file to the location of your choice. Again, like Eclipse, there is no windows installer to run. It’s important to note that what you have just downloaded is the ADK starter package only. You haven’t downloaded any of the real ADK SDKs yet. To download the actual SDK and Google application programming interfaces (APIs), run the SDK Manager program located in the directory in which you unzipped the ADK starter package.

When you run the SDK Manager, you’ll be presented with a list of available SDK and API packages. I installed the Android 2.1 and 2.2 SDKs, samples for the two SDKs, APIs 7 and 8, documentation for API 8, USB Driver package and Market Licensing package. Once selected for download, the items download and install automatically. Google has done a great job making the install as easy as possible for developers.

After the SDKs are downloaded and installed, create at least one virtual device with the SDK Manager. The virtual device is a SDK platform specific emulator you can use later for testing your applications.

Android Development Tools Plugin

The Android Development Tools Plugin is installed from within Eclipse itself. To install the ADT, follow these directions from the Android Developer web site:

  1. Start Eclipse, then select Help > Install New Software.
  2. In the Available Software dialog, click Add....
  3. In the Add Site dialog that appears, enter a name for the remote site (for example, "Android Plugin") in the "Name" field.

    In the "Location" field, enter this URL:

    https://dl-ssl.google.com/android/eclipse/

    Note: If you have trouble acquiring the plugin, you can try using "http" in the URL, instead of "https" (https is preferred for security reasons).

    Click OK.

  4. Back in the Available Software view, you should now see "Developer Tools" added to the list. Select the checkbox next to Developer Tools, which will automatically select the nested tools Android DDMS and Android Development Tools. Click Next.
  5. In the resulting Install Details dialog, the Android DDMS and Android Development Tools features are listed. Click Next to read and accept the license agreement and install any dependencies, then click Finish.
  6. Restart Eclipse.

Hang in there, we’re almost done. There’s one step left and you’ll be on your way to developing your first Android application. Now that the ADT is installed, it needs to be configured to work with the Android SDK. To configure the ADT, you must point it to the Android SDK directory. From within Eclipse:

  1. Select Window > Preferences... to open the Preferences panel
  2. Select Android from the left panel.
  3. For the SDK Location in the main panel, click Browse... and locate your downloaded SDK directory.
  4. Click Apply, then OK.

Android Market Developer Account

Once you start writing your own Android applications, you might just be the one to make a fortune with “the killer app” that everyone else dreams of writing. To sell on the Android Market, you must have an Android Market Developer account. Google charges $25.00 USD to open an Android Market account. They also make it very easy to accept payments through the Google checkout system once you have an Android Market account by offering you to open a Google checkout merchant account. As with any merchant account, Google charges a transaction fee on each of your sales. The normal transaction fees are based on a sliding scale determined by the amount of your monthly sales. For example, if you sell less than $1,000 per month, you pay 2.9% + $.30 for each sale. But for anything sold through the Android Market, the fee structure is vastly different.

As of the time of this writing, the transaction fee for anything sold through the Android Market is 30%. Yes, that’s right! Google charges a whopping 30% fee on anything you sell through the Android Market and of course, you are responsible for collecting and paying any applicable sales taxes. If only I had the foresight to buy Google stock back in the day!

Thursday, October 7, 2010

Reinventing Yourself as an Android App Developer

I’ve spent a large portion of my professional life as a software developer. I’ve written applications for video stores, doctors, lawyers, insurance companies, banks, and some of the world’s largest corporate entities both as a consultant and full-time employee. For the last eight years, I’ve worked purely in corporate management, but to keep my development skills somewhat honed, I’ve taught myself .NET, specifically C#. My personal web sites are all C# .NET. Over the years, I’ve written applications in C, C++, xBase, Smalltalk, Turbo Pascal, Java, Perl and PHP, just to name a few of the languages in which I’m conversant. I never went to school to learn how to be a programmer, yet it’s been a great source of my success, satisfaction and income over the years.

The first language I ever learned was basic. I had been given a Timex Sinclair 1000 as a Christmas present. In 1982, computers were vastly different than they are today. My Droid X has more processing power than my old Timex did. It hooked up to a TV as a monitor and it stored data on an audio cassette. Primitive as it was, for me it was the beginning of a life-long learning experience. Using that computer, I learned how to write software and I started getting my software review articles published in a variety of magazines. It was definitely a launching pad for my IT career.

I’ve never been afraid to try new things and learning new languages generally comes very easily to me. After all, how many different ways are their to write loops and branches. And of course, there’s always pointers and garbage collection to contend with! But object-oriented is object-oriented. I believe that if you know the basics, it’s a rather trivial matter to apply them to different languages. But rest assured, I  didn’t always have the confidence in my abilities as I have today. If anyone should receive credit for building the confidence I have as a developer, it is Lynn Lehman.

Lynn was a manager I reported to for a time when I was a contractor at JP Morgan Bank on Wall Street. I didn’t care for Lynn very much. I think I rubbed him the wrong way and it showed. I thought he was arrogant, condescending and held a superior attitude over others. (These are exactly the same adjectives people used to describe me in my first corporate 360 evaluation after I became a manager at Warner-Lambert.)

Lynn called me into his office one day and asked me to write an application in Lotus Notes. At that point I had never even seen Lotus Notes, let alone know its programming language well enough to write an application. Lynn wanted an issues tracking database. The foreign exchange currency trading system we just spent 2.5 years developing had rolled into production. Now the development team was transitioning into maintenance mode and Lynn wanted an application to track issues and bugs. He wanted it done in Lotus Notes.

My initial reaction was to protest and say no because I didn’t know Lotus Notes. Lynn just looked at me and very calmly asked me, “Are you a professional programmer or not?” After pausing to recover from this lightening strike, I said, “Yes I am.” Then he said, “So write me a program in Lotus Notes. I want it complete in 6 weeks.” I delivered the fully functioning and tested application in 4 weeks.

A May 2004 article in USA Today called Madonna “The Mother of Reinvention.” This was because she was travelling the world at that time on her “Reinvention Tour.” With today’s high unemployment and significant competition for jobs, many people today are  reinventing themselves, perhaps transitioning into completely different careers than they did before.

So far this year, I’ve written my first book and became a registered facilitator for the Lead Like Jesus servant leadership encounter workshop. As I continue to seek gainful full-time employment, I’ve decided to reinvent my developer skills somewhat and perhaps create an income stream in the process. I’m going to reinvent myself as an Android app developer in addition to all the other irons I have in the fire right now.

How am I going to do it? Well, I’m going to take baby steps at first. It’s been a while since I’ve written any production-level code. Finding my next job and continuing my networking activities are still priority #1. The first step though is setting up one of my computers as a development environment. I’m going to use my HP DV8T laptop for this. In my next post, I’ll share how to setup the development environment.

Tuesday, October 5, 2010

Top 20 Favorite Android Applications

Never have I been more pleased with a cell phone than I am with my Droid X. I don’t know if it’s the sophistication of the hardware, the capabilities of the Android operating system or the enormous amount of apps that are available in the market place. But whatever “IT” is, I am enthralled.

I’ve spent more time in the past two weeks browsing forums, reading reviews, and trying out specific apps to make the phone work the way I want it to work. I’ve found many lists for what certain writers consider to be the “best” or “essential” or their “favorite” droid apps. I was pleased to see that many people agree with the choices I’ve made independently of these lists, but then again, there are some apps that I love that nobody else seems to know much about. And I know, I’m only beginning to scratch the surface. So let me share with you what I subjectively consider to be favorite android applications. All of them are either completely free or have free versions available that can be upgraded to “Pro” versions.

  1. Astro File Manager by Metago: Rated by many websites as the best file manager available for Android, Astro allows you to manage files on your SD Card. You can execute functions such as copy, delete, move or rename; send files as attachments or manage running applications. Modules are available to Bluetooth OBEX FTP and SMB (Windows) networking features.
  2. Compass by Catch.com: Displays a compass, location and geo-tagged notes.
  3. Congress by Sunlight Foundation: Everything you ever wanted to know about Congress. Find your representatives using your location, get their contact information, see how they vote, follow bills through the process and read the newest laws.
  4. Dial Zero by Next Mobile Web: Tired of wading through endless interactive voice prompts when trying to reach a real person in customer service? Not anymore!. Dial Zero provides direct customer service numbers to over 600 companies. 
  5. DroidLight: A flashlight app from Motorola that allows you to turn the camera’s LED flash on and off like a flashlight. The Droid X’s twin LEDs are very bright. The flashlight app helps you to easily find the keyhole in the dark.
  6. Google Goggles by Google Inc.: This is an amazing app that you need to use to believe! Take a picture of an object with your cell phone, Goggles attempts to recognize the object and return relevant search results.
  7. Google Shopper by Google Inc.: Shopper uses the camera to recognize cover art, barcodes and can perform voice and text searches to find local and online prices, reviews, specs and more.
  8. Google Sky Map by Google Inc.: Turns your Android based phone into a mobile planetarium. Hold the phone up to the sky and it uses your location to display the constellations you are seeing.
  9. Google Translate by Google Inc.: Instantly translate text between 50 languages. Can use speech to text for recording and text to speech for playback.
  10. Handcent SMS by handcent_admin: Full featured SMS/MMS replacement app for Android phones. Overcomes the weaknesses of the built-in app. Includes group sending options.
  11. Key Ring by Mobestream Media: Tired of all the little membership reward cards cluttering your key ring? Scan them into this app and make room in your pocket. Display the barcode on your phone at checkout and have the clerk scan the phone instead. I’m still on the fence about this one. I’ve used this at two different stores and the scanner was unable to read the barcode on the phone. presumably due to the reflective nature of the phone.
  12. Kindle Book Reader: Free app from Amazon.com that is preloaded on the Droid X. I was pleasantly surprised to see there are over 3,000 free books available for the Kindle Reade, most of them classics and all either in the public domain or offered free by their authors.
  13. KJV BibleReader by Olive Tree: Nary a day goes by where I don’t do at least some devotional reading. The Olive Tree KJV BibleReader is a free download and includes the King James Version. Makes searching for specific passages easy. Tap “Library” to browse the store and download many free books and study guides.
  14. Lookout Mobile Security by Lookout, Inc.: Provides antivirus, system backup and phone finder features for free. The phone finder is really cool. If the phone is lost of stolen, you can locate it on the map. If you’ve misplaced the phone around the house as I often do, you can send a blaring siren signal to the phone. Siren works even if the phone is silenced.
  15. Mileage by Evan Charlton: A very simple app, Mileage lets you track your vehicle’s fuel consumption history and calculates lots of useful stats.
  16. Note Everything by SoftXPerience: This is the most comprehensive note taking application I’ve found for Android. Create Textnotes, Paintnotes, Voicenotes, Photonotes, Checklists, Durable Checklists (ToDo lists), Gallerynotes, Notes from barcodes, Reminders or Notes from Google docs. Stick notes to the status bar and automatically back them up on the SD Card.  Great support and frequent updates.
  17. Ringdroid by Ringdroid Team: Creates ringtones from your own music tracks or record a new one directly from the phone.
  18. Scanner Radio by Gordon Edwards: As a former professional paramedic, I still enjoy listening to emergency calls from time to time. Scanner Radio allows us to listen to live emergency audio from over 2,300 police and fire scanners, railroad communications and weather radio broadcasts from around the world.
  19. Shop Savvy by Big in Japan, Inc.: If there’s only one shopping application for you to get, this is the one. Shop Savvy uses your location to comparison shop products in your area or online. Supports QR Codes.
  20. TuneWiki Social Media Player by TuneWiki: Shows subtitled lyrics as you listen to music, watch music videos, or stream songs through SHOUTcast radio. Integrates with Facebook and Twitter.

Monday, September 27, 2010

QR Codes Are Here To Stay

Perhaps you’ve been browsing on a web page or in a magazine and noticed an image like the following:

testimony_sm

Have you ever seen anything like this before? Do you even know what it is?

This is a QR Code®, destined to become as ubiquitous as the standard barcode we see on virtually all products we purchase today. A QR Code is a matrix barcode or two-dimensional code, readable by QR scanners, mobile phones with a camera and smartphones. The code consists of black modules arranged in a square pattern on a white background. The information encoded can be text, URL or other data. It is two-dimensional because it carries meaningful information in both the vertical and horizontal directions.

QR Codes were invented in Japan and released in 1994 by Denso-Wave, a Toyota subsidiary. “QR” means Quick Response. Their creator intended the code contents to be read and decoded at high speed. Originally designed for tracking parts in vehicle manufacturing, today they are used in a much broader context, including both commercial and convenience applications. It is also the foundation of the modern practice of “Mobile Tagging.” Mobile Tagging is the process of providing data to mobile phones when the QR Code is “read” by the phone’s camera.

In the not too distant future, you’re going to see QR Codes in magazines, on signs, the sides of buses, on business cards, on billboards or on just about any other object where information can be distributed. For example, the image below is a photo of a billboard found in Tokyo, Japan displaying a company’s website URL.

Japan-qr-code-billboard

QR Codes are poised to revolutionize certain industries dependant on hand scanners. Their application is limited only by the imagination. I once worked for a major auto parts distributor. The powers that be debated endlessly about distributing barcode scanners to their drivers to track deliveries. The commercially available scanners cost upward of $900 each! Now imagine having to distribute $900 scanners to drivers just to read a barcode printed on a delivery receipt. If the company has 3,500 drivers, the cost will exceed $3.1 million dollars! Since QR Codes can be read by virtually any cell phone that has a camera and there are many, many barcode reader apps available for phones at no cost, the impact to a business’s bottom line can be significant. All drivers are issued cell phones as part of their normal equipment. Place a free app on the phone and use QR Codes instead of specialized bar codes, and you’ve saved your company millions in capital spending.

QR Codes are here to stay. If you want to learn more about the technology, visit QRcode.com. You can also visit the website by scanning the following QR Code with your camera:

Denso

If you’d like to play with QR Codes yourself, here’s a link to a handy QR Code generator: QR Code Generator. And again, if you prefer to scan the URL with your mobile phone camera,  here’s the QR Code for the URL:

qrcode_generator

Friday, September 24, 2010

Do Cell Carriers Need To End “ForceWare” Practices?

You’ve no doubt heard the terms software, freeware, shareware, vaporware, shovelware and bloatware. Today, I want to introduce you to a new term I coined to describe the practice of cell phone carriers who embed unwanted and uninstallable software into their cell phone ROMS. The new term is “ForceWare.”

I am really enjoying my Droid X from Verizon Wireless. It’s an incredibly capable Smartphone. It has Wi-Fi, Bluetooth, GPS, and a compass. It runs on a flavor of Linux known as Android. You can print from it and take photos or stunning high definition video on its 8 megapixel camera. It’s a music player and you can watch television on it. And with the Swype keyboard, I can type faster on it than on my desktop or laptop. It certainly is a technological marvel and a credit to human ingenuity.

The greatest problem I see on this phone and other phones running Android, is the inclusion of ForceWare. ForceWare is a regular topic of discussion on the Verizon Wireless Community forums, often resulting in very long and angrily toned threads. There’s even a petition circulating on the Motorola Support forums demanding an end to the practice. (I’ve never heard anyone ever say they like MotoBlur!)

But what are cell phone carriers supposed to do? They are in the business of generating revenue for their shareholders, aren’t they? Isn’t that the purpose of any business, to generate revenue? The carriers highly supplement the cost of these new Smartphones when you agree to a multi-year contract. They have to recover the revenue somehow, don’t they?

This is where ForceWare comes in. It’s part of the cell carriers’ revenue model. Third party companies pay dearly for the right to include their revenue generating apps in the Smartphone ROM image. The Driod X comes with applications for Blockbuster and CityID, both useless in my opinion. It also has the VZ Navigator app which essentially does the same thing as Google Maps except Google’s app and service is free. The problem with the ForceWare is that you can’t remove these apps unless the phone is “rooted” which voids the warranty, could brick the phone on subsequent OS updates; and loses the support of the manufacturer. “Rooting” is the practice of hacking the phone to give yourself root access to Android.

The arguments against ForceWare remind me of the lawsuits brought against Microsoft and their practice of forcing end users to make use of their software by embedding it into the Windows OS. In Microsoft’s case, it was determined that their practice resulted in unfair competitive practices and they were ordered to allow third party apps top be installed and used as the default apps for browsing and media.

Does ForceWare result in unfair competitive practices? I don’t think so. Even though we’re forced to keep the apps on our phones and we have to periodically endure annoying nag screens, we are not forced to use it or prevented from installing third party apps that do the same things for free. I sincerely doubt the carriers are going to change their practices any time soon unless they are challenged in court in which case the challengers are likely to lose. But until if and when they do, we’re going to continue to see ForceWare on our Smartphones and hear the complaints of unhappy end users.

Friday, September 17, 2010

Warning – Serious Uninstall Bug with Broadcom Bluetooth Software

My laptop just got wiped clean! I used the laptop to write my book. It’s gone too. I am so grateful that I backed it up to at least two places.

How did the laptop get whacked? I updated my Broadcom (Widcomm) bluetooth software to a newer version. The install program of the new version runs the uninstall program from the previous version to clean out old files. Unfortunately, the uninstall program doesn’t stop with just the bluetooth software. It wipes out everything on your hard drive. All applications, all data, all documents, the registry, etc. are wiped clean by the widcomm uninstall. This is without a doubt the single worst software bug I’ve ever encountered. Apparently, it’s a known issue that Broadcom has not addressed. Here’s a link to a thread I found on social.answers.microsoft.com.

I was able to boot from my system recovery disk and am running the standard Windows system restore process. It’s been running for about an hour so far. If it doesn’t work, I’ll let you know.

Thursday, August 26, 2010

The Project Management Method and the SDLC

Many people are confused over the difference between a project management method and the System Development Life Cycle. Some believe a project management method is a subset of the SDLC and some believe the inverse, that the SDLC is a subset of a project management method. The truth lies somewhere in between. In terms of importance to a project, the SDLC and a project management method are co-equals which complement each other. Together they harmonize to form a complete methodology for delivering high quality products to our customers that meet or exceed their expectations. Neither can stand on its own to deliver high value to the business. They each have different roles in support of business initiatives. Throughout the life cycle both of these methods work together to achieve business goals, drive the value equation and progress organizational maturity. Though their activities differ greatly, they interrelate and harmonize to produce superior results.

A project management method provides detailed instructions for the discipline of planning, organizing, controlling, reporting and managing project resources to successfully complete project goals and objectives. It includes all of the activities for managing a project. A project is temporal in nature. It has a defined beginning and end. The project management method begins with project inception and closes when its product is delivered. When a project is over, the project manager moves onto something new.

The SDLC provides a framework that describes the activities performed during each phase of a systems development project. The SDLC is about quality, consistency and product delivery. It is about the realization of a product’s requirements. Products are of a more permanent nature than a project because products continue to exist long after the project that delivered it has closed. Therefore, the SDLC’s framework provides guidelines for supporting the product post production. Guidelines include practices for knowledge transfer, training, document turnover, maintenance and on-going support. When a product is to be retired, the project management method takes over to sunset the system. It is a full circle in a system’s life.

Project management is often expressed in terms of the constraints of scope, time and cost. This is also known as the project management triangle. Each side of the triangle represents a constraint. No side can be changed without affecting the others. At one time, “quality” or “performance” was considered a component of scope. The model has since been refined to delineate quality as a fourth constraint.

Time is the period available to complete a project. Cost is the project’s budget. Scope is what must be done to complete the project's deliverables. The three constraints often compete with each other: scope creep means increased time and higher cost, a tight time frame may mean higher costs and less scope, and a tight budget may mean less time and reduced scope. Quality may be at risk if there are changes to any of the constraints.

To demonstrate the complementary nature of the SDLC to project management, I’ve contrived the SDLC triangle. Earlier I said the SDLC is about quality, consistency and product delivery. Quality, consistency and product delivery are the outputs of a defined, managed, measurable, repeatable and reusable set of processes and practices. The processes and practices form the core framework of the SDLC. Where a project is defined by its constraints, the SDLC is defined by its freedoms and empowerment. The SDLC empowers a project team to choose from among several approved pathways to deliver the highest quality products possible in the shortest amount of time and at the lowest possible cost.

Scope is a constraint that SDLC processes liberate by managing scope creep. Scope creep is a project killer. Let’s be clear, project scope will change during the course of a project. That’s because business priorities are fluid and may drive changes in projects so that evolving current needs are met. It’s how we manage scope that’s important. We’ll never be able to eliminate scope creep, but we can manage it effectively so it doesn’t become the constraint that kills our project. In many ways, managing scope creep begins with the project’s business analyst.

Consistency of process helps keep the cost constraint under control by practicing repeatable, measurable and defined algorithms. Let’s be pragmatic. Whenever we practice something, we get good at it. It doesn’t matter if we’re talking about music and the arts or sports or anything else. The old adage is “Practice makes perfect.” If we do something the same way over and over again, not only will we get good at it; we’ll find ways to improve what we are doing so we can do it faster, better and cheaper.

The schedule constraint is complemented by the SDLC’s timely delivery of a quality product that meets or exceeds customers’ expectations. If we manage scope creep effectively and are consistent in our ability to repeat and improve our processes, not only will we deliver a product on time, there may even be enough wiggle room in the schedule to address lower priority items or deliver the product ahead of the due date.

The complementary relationship between the SDLC and a project management method cannot be denied. They do not compete against each other.

Monday, August 23, 2010

IT Governance and the SDLC – Part 2: Upfront Requirements Elicitation

When discussing investment opportunities at governance meetings, senior managers invariably ask: “How much will the project cost us?” In the early phases of opportunity talks many IT leaders respond with the “SWAG” (Scientific Widely Aimed Guess) based on experiential supposition. Later, after governance approves a deeper investigation into the cost, IT leadership returns to governance with a slightly more predictable estimate known as a ROM or Rough Order of Magnitude, based on nothing more than executive level discussions, the research they’ve done from talking to vendors and presuming what resources will be needed. They don’t even have enough information at this point to distribute a formal Request for Information (RFI). Returning to governance, they supply a statement of work documenting what they believe is required, a Return on Investment (ROI) calculation based on the ROM, resource plan and projected schedule. If all goes well, governance is convinced of the projected derived business value and ROI and approves the project—all based on conjecture.

Nobody up to this point has gathered any of the actual requirements from the business users. The discussions thus far have all been very high level. This is highly ineffective IT Governance in action. You may also say this is IT Governance inaction. Ineffectual governance processes often lead down the path of conducting requirements elicitation and analysis early in the project lifecycle but only after the project is approved and funded. This is always a bad decision and one that leads to more problems for IT leadership down the line.

When Business Analysts start the requirements elicitation process after the project approval and kick-off, it doesn’t take too long to discover the original investment estimates were way too low. Now that the true business requirements are known, the project team realizes the scope to deliver the necessary functionality to the business is much broader than they first thought. As the project proceeds several months down the road, IT leadership goes back to governance and asks for more money to complete what they started and explain why the original timeline has to be extended. Governance either reluctantly responds to the increase in funding or trashes the project altogether. Whatever the case, IT leadership loses credibility with senior management.

Do you think this scenario is farfetched? It’s not. I’ve worked in organizations that have followed this exact process and have witnessed it time and time again. Senior leadership’s loss of trust and credibility in the IT organization is always the result. It is a difficult if not nearly impossible obstacle to overcome. Trust and credibility can be regained over time, but it takes a lot more than continuing with the same processes that got you into trouble in the first place. It often requires replacing the senior IT staff and embarking upon a long journey of IT business process transformation.

The truth is that questions surrounding IT investment and prioritization cannot be fully answered until at least one practice area of the SDLC[1] is executed and at least partially concluded. That area is performing the processes and practices governing requirements elicitation and analysis. This may also be known as a feasibility study. The question that now comes into play is “How deeply must I capture the requirements at this phase?”

The answer is variable depending on the project, but as a general rule of thumb, if we apply the Pareto principle to investment value and requirements, the resulting theorem says, “80% of the business value of an investment comes from 20% of the requirements.” This tells us that we don’t have to capture all of the requirements in the initial pass. We only need to capture the major requirements in a quantity sufficient to extrapolate a fairly accurate resource allocation and cost projection. A common practice is to pad IT project cost estimates with an additional 25% contingency anyway. By executing the requirements elicitation upfront, before project approval, you’ll provide much more accurate cost estimates, lower your contingency padding and reduce the chance of project overruns.


[1] Systems Development Life Cycle.

Friday, August 20, 2010

IT Governance and the SDLC – Part 1

What has the SDLC got to do with IT Governance?

It has long been the tradition of board-level executives to defer all key IT decisions to the company’s IT professionals. The truth is that many board-level executives don’t understand IT well enough to manage IT effectively; and IT professionals don’t understand business initiatives well enough to decide how to invest in them. Deferring key decisions to the IT staff often leads to disconnects between the board’s strategic goals and real business initiatives and the investments IT makes. It leads to frustration at all levels.

IT governance is a business-driven function which focuses on the investment and prioritization of IT systems, their performance, risk management and enhancing a company’s competitiveness. It’s about ensuring IT investments harmonize with the enterprise’s strategic priorities. It’s about IT demonstrating to senior leadership they are receiving acceptable value in return for making IT investments.

In June of 2005, I attended a summer session on IT Governance and Leadership at the MIT Sloan School of Management Center for Information Systems Research (CISR) in Cambridge Massachusetts. The course was facilitated by Peter Weill and Jeanne W. Ross. Peter is the director of CISR and Jeanne is a Principal Research Scientist. Together they authored the book “IT Governance” published in 2000 by Harvard Business School Press. The book is about “How Top Performers Manage IT Decision Rights for Superior Results.” It is written for “concerned officers of the enterprise (CEO, CFO, COO, and other senior managers) looking for practical guidelines to improve their returns from IT investments.”

According to Weill and Ross, “Top-performing enterprises succeed where others fail by implementing effective IT governance to support their strategies. For example, firms with above-average IT governance following a specific strategy (for example, customer intimacy) had more than 20 percent higher profits than firms with poor governance following the same strategy.”

All companies have some sort of IT governance. Effective IT governance includes well defined and documented processes for work uptake, decision making, budgeting and estimating resources, approvals, IT value realization, project reporting and change management. Many IT governance committees are comprised of the senior most leaders from all strategic areas of the business, not just IT leaders. With a finite enterprise budget, there is competition for capital project dollars. There must be a governance process in place to assure that the right projects are getting the right amount of investment at the right time to improve bottom line profitability and shareholder value.

Weill and Ross assert that effective IT governance answers three questions:

  1. What decisions must be made?
  2. Who should make these decisions?
  3. How will we make and monitor these decisions?

To further explain the first question, they say, “Every enterprise must address five interrelated IT decisions: IT principles, IT architecture, IT infrastructure, business application needs, and IT investment and prioritization.”

The SDLC figures prominently in executing the answers to all of the interrelated decisions above with the lone exception of IT principles. IT principles are subordinate to corporate principles established at the enterprise level. They support or enable strategic company business goals, guide the development and implementation of the SDLC and steer the decision making process in the other four areas. We’ll explore the linkage between IT Governance and the SDLC further in my next post.

Tuesday, August 17, 2010

Taking AIM at Organizational Change Management – Part 2: Cultural Fit

To fully realize a change management strategy, make sure the change fits your culture. You’ll also need detailed reinforcement and communication plans. Cultural fit is as individual as companies themselves. Every organization has its own variety of cultures and sub-cultures. Most businesses establish a target company-wide culture through their mission statement, vision, values and leader behaviors. Senior management demonstrates the cultural norms as they interpret these tenets. How these creeds flow down and become the organization’s cultural norms may differ from group to group within a company just as strategic goals start at the top and evolve to fit each group’s contribution to the overall strategy. There is no one-size fits all approach to cultural fit. There are tactics however that can guide your moves.

First, define the cultural dimensions of each group impacted by your change. For the SDLC, this is your entire IT organization, senior management and your business users and customers. The SDLC represents a broad sweeping change. It is important to first focus on the “low hanging fruit.” Exploit the aspects of the change that produce the highest yield and lowest risk. Take advantage of any opportunity to lead with results rather than rhetoric. Altogether avoid or reduce the initiatives that are more about image and not reality.

Each of your target groups need to have sponsors who are capable of identifying the cultural characteristics that support the change as well as the values, behaviors and “unwritten rules” that resist the change. Positively reinforce and emphasize the behaviors that support the change. Provide high visibility rewards and recognition for attaining the desired state.

Regardless of how effective your positive reinforcement is, you will face cultural resistance. Someone once asked me, “Why is it necessary to have a company-wide SDLC? We all do things now that are effective for us, why change?” This individual was a member of one of the working teams building and vetting the SDLC processes. His question caught me off guard. He didn’t understand the big picture even though he was serving as a change agent and involved with the very construction of the SDLC. As I thought things through, I realized this question is a direct result of my failure to effectively communicate the vision to the change agents.

For each major source of cultural resistance, you need to discover the answers to these three questions:

  1. What are the values, behaviors and “unwritten rules” that are motivating the resistance?
  2. What is it about the culture that reinforces the “unwritten rules?”
  3. What is it about our system that rewards the “bad” behaviors?

Armed with this intelligence, you can then work to define and implement specific changes that reduce or eliminate the cultural dimensions that reinforce change adversity and execute those that reward the new behaviors. Develop a positive reinforcement plan that is stronger than the motivation to keep the status quo. It requires significantly more sponsorship attention, discipline and stamina to inspire a group to move from “discomfort and resistance” to “opportunity and need.” The sponsors must “walk the talk” and visibly display the new behaviors even if they are individually painful.

Consider offering financial rewards as part of your positive reinforcement plan such as a salary increase, bonus, prize or perk for demonstrating the new behaviors. Apply the positive rewards immediately after observing the performance of the new behaviors. Celebrate early successes and wins. Do whatever you can to make it more difficult to continue to operate in the old state.

Build an effective communication plan that explains the objectives and rationale, the time frame and the cost of not changing. Implement the communication plan early and communicate often. Send out frequent progress updates. Focus the organization’s attention forward and generate an excitement about the new changes to the SDLC. Commission surveys or walk around the floor to learn if people understand the message. Are they getting it? Keep your communications credible, comprehensive and clear.

We’ve only touched upon a few aspects of organizational change management. There are a lot of moving parts to any organizational change, but especially so when rolling out a SDLC. An organizational change management strategy is much broader than the few examples I’ve presented here, but for a SDLC implementation, it is absolutely essential.

Monday, August 16, 2010

Taking AIM at Organizational Change Management – Part 1

I am a student of the AIM Methodology of organizational change management. AIM is an acronym for the Accelerated Implementation Methodology, a proprietary approach developed and perfected by Implementation Management Associates, Inc. (http://www.imaworldwide.com). Pfizer included me in a pilot AIM training program after their Learning and Organizational Development group decided to deploy the methodology to the Research and Development Division. I became a vocal advocate and champion of the process, even sending one of my direct reports to school to become an instructor

Don’t confuse this AIM with the other popular AIM, Oracle’s Application Implementation Methodology. Oracle’s AIM is essentially a legacy SDLC for the Oracle applications platform. The two AIMs couldn’t be more different. Also, don’t confuse organizational change management with project change management. Change management in a project context is very different from organizational change management. Project change management is a process by which changes to projects are formally introduced, vetted, approved, tabled or denied. An organizational change management method is not typically part of a SDLC or project management method although elements of organizational change management, such as communications plans, may be.

Organizational change management is about people’s behavior. Organizations are comprised of people and their behaviors formulate the accomplishments of the organization. Organizational change management explores behaviors to achieve greater results in performance which in turn drive bottom line value.

Just as IT system development methods share commonalities, so do change management methods. Regardless of the method you choose to follow, the core fundamentals of organizational change management are the same and must be observed if you want to achieve success.

Change management starts at the very top of the organizational structure. For IT, this starts with the CIO or CTO as he or she defines the strategic vision and goals. The CIO’s goals are aligned with the overall strategic goals of the organization as determined by the Board of Directors and the CEO with his/her senior staff. To successfully deploy an organizational change such as implementing a SDLC, it must be a strategic goal of the senior most leaders. As strategic goals cascade throughout the organization, it creates alignment with a clear and common language and understanding for the change.

Once goals are defined and distributed, assessing the organization’s readiness for change is the next step. How do you do that? Surveys are a good method. The goal of an organizational readiness survey is to uncover the barriers that exist within your organization’s climate, both current and historical. Barriers that may have impeded the progress of previous changes must be discussed to capture lessons learned. You’ll also want to uncover implementation strengths. What has gone right in the past that we can do again?

Identifying the approach you’ll take to implementing change follows the readiness assessment. You really only have two choices here. You can force your hand and generate compliance using the hammer approach or you can choose to build commitment and buy-in by managing the transition. On the surface, you may think the hammer approach is a little heavy handed and it may not be a good fit with your personal values. There are reasons where the hammer approach is the right approach. What if the change is due to regulatory, HR or safety compliance?

The second approach, transition management, requires more time to adapt a change. The organization becomes increasingly focused and the additional time allows for course correction along the way before implementation. You’ll gain greater buy-in, produce less waste and achieve greater precision in your implementations. Transition management is particularly effective when implementing changes in customer service, quality assurance and developmental paradigms such as the SDLC.

Organizational change will not happen efficiently without the right sponsorship. We’ve already talked about strategic goals cascading from the top down. Sponsorship is making certain the right people are doing the right things at the right times to demonstrate their commitment and ownership of the change. You’ll need an Executive Sponsor who has sufficient authority to authorize the change and commit the resources to make it happen. Then you’ll need Champions who can influence the organization’s commitments levels and Change Agents who’ll plan and execute the implementation.

Tomorrow, we’ll take a look deeper look at one of the most significant key success metrics of organizational change management: cultural fit. So stay tuned for Part 2.

Friday, August 13, 2010

Smart Executives Invest in IT During Economic Downturns

Whenever there is a downturn in the economy, two corporate groups that seem to bear the brunt of fiscal conservatism are Human Resources and Information Technology. Unless you are actually in the business of IT to generate revenue, in the corporate world, both of these departments are cost centers. Although they are both productivity enhancement enablers, it is often argued that they produce little to no direct bottom line value through their work.

In stark contrast to traditional business management theory, Dr. Howard Rubin[1] said in a presentation given at an October 2009 Gartner Symposium, “The most opportunistic time for technology investment is during an economic downturn; it is the only area in which investment can change the operating profile of an organization—doing so effectively can create an insurmountable competitive gap. Bad IT economics will put you on the wrong side of this gap and may even be creating advantage for your competitors.”

To gain competitive advantage during an economic downturn, smart executives invest in IT if they have the confidence in the IT organization to deliver that which is promised; quality products that meet or exceed customer expectations, on time delivery and well managed budgets. For IT organizations to be successful today and tomorrow, they must evolve into values-based cultures that drive high performance, low turnover, and increased productivity without impeding creativity and innovation. The organization must embrace defined, managed, measurable, repeatable and reusable practices that form the blueprint for their overall systems delivery strategy. The blueprint feeds the continuous improvement cycle. It’s said in the Six Sigma world, “If you can’t measure it, why are you doing it?”

This is where an effective SDLC helps. The SDLC provides a framework that describes the activities performed during each phase of a systems development project; activities that are defined, managed, measurable, repeatable and reusable, just what the doctor ordered. It endorses standards and practices to ensure consistency across projects and tasks undertaken by different groups within IT such as Telecom, Data Center, System Administration, Quality Assurance, Network, Applications Development and others.

Let me point out that I’m being very careful not to use the word “software” when discussing the SDLC. I use the term “system” to emphasize the SDLC’s broader impact across all of IT. Undoubtedly, a major focus of any SDLC is software, but when you think of all the projects that are undertaken in an IT organization, every project team has a responsibility to:

  • Elicit and analyze requirements
  • Develop systems specifications
  • Define success metrics
  • Produce clear, consistent and unambiguous artifacts
  • Deliver products that comply with the highest quality standards that meet or exceed customer expectations
  • Transfer knowledge to operational support and maintenance personnel, sometimes to outsourced, off-shore locations
  • Train end users and support resources
  • Offer post deployment support and maintenance

Are these statements true or false? If true, then consistent reusable processes and practices across the entire IT organization are critical for an organization’s absolute success.


[1] Gartner Senior Advisor, Founder Rubin Worldwide, MIT CISR Associate, howard.rubin@rubinworldwide.com

Tuesday, August 10, 2010

When Outsourcing, Multi-cultural Training Means the Difference between Success and Failure

In a May 2004 study entitled “Leading Causes of Outsourcing Failures,” the Outsourcing Center[1] surveyed 305 buyers and providers in North America, Europe, Asia and India to assess their experiences and opinions about outsourcing failures. One-third of respondents were buyers, two-thirds were providers. They concluded that 25% of the reasons for outsourced project failures are due to poor communication (16%) and cultural fit (9%). If you believed 25% of your outsourcing projects would fail because either you or your provider didn’t understand each other, even though you both speak the same language, or innocently offended each other because you didn’t understand each other’s cultural mores, you would do something about it wouldn’t you?

Multi-cultural or cross-cultural training is a key success factor when considering outsourcing. Gerard (Geert) Hendrik Hofstede is an influential Dutch sociologist whose life’s work includes the study of the interactions between national cultures and organizational cultures. Hofstede defines five dimensions of culture in his study of national work related values which are:

  • Individualism vs. Collectivism: measure of how greatly members of the culture define themselves apart from their group memberships
  • Long vs. Short Term Orientation: A society's “time horizon” or the importance attached to the future vs. the past and present
  • Masculinity vs. Femininity: the value placed on traditionally male or female values
  • Small vs. Large Power Distance (PDI Scale): A measure of how widely the less powerful members of society expect and accept that power is distributed unequally
  • Weak vs. Strong Uncertainty Avoidance: A metric of how extensively members of a society are anxious about the unknown and try to cope with anxiety by minimizing uncertainty

Having an understanding of the Hofstede PDI scale provides insight into one of the foremost causes of cross-cultural communication failures—the difference between high context and low context communication. The low context communicator expects straightforward conversation. If there is a problem, s/he expects a straightforward answer with specifics. In high context countries, subordinates acknowledge the power of others based on their formal hierarchical positions. The subordinates offer their superiors great respect. Out of respect, the high context communicator doesn’t directly inform their superior of project issues due to the concern that the superior may suffer an offense. Neither person is doing anything wrong. They are merely observing the cultural norms of their respective countries.

Effective cross-cultural training solves the issues that resulted in the 2004 survey’s 25% of project failures. Preparing employees to work outside of their native country or to work with offshore outsourcers is extremely important for outsourced project success. Basic multi-cultural training includes:

  • Action plan for living abroad
  • Communication characteristics and role
  • Doing business in the country
  • Eating and drinking
  • Education, studies and professional training
  • Introduction to culture and history
  • Laws, norms, taboos and values of the society
  • Leisure activities and customs
  • Social contacts, friends and acquaintances
  • Relations at work and management
  • Women’s life and role in society

Without understanding those cultural norms, communication breakdowns lead to project failures. One of the greatest mistakes any IT organization can make is to enter into an outsourcing agreement without first subjecting its key players to basic multi-cultural training.

 


[1] The Outsourcing Center is a wholly owned subsidiary of the Everest Partners, L.P.; Two Galleria Tower, 13455 Noel Road, Suite 2100; Dallas, TX 75240; PH: 214-451-3000 FAX: 214-451-3001; http://www.outsourcing-center.com/

Wednesday, June 23, 2010

Excellent Book Reviews So Far

Writing and publishing a book can be a long, drawn out process. One of the steps that must be performed before the book goes to press is the “peer” review. A little over a month ago, I sent the book out to five people to look it over and comment on the content. So far, we’ve had two of the five send the reviews back. Here’s what they said:

"This book is a great roadmap to anyone developing a System Development Life Cycle. It's contains a wealth of research, comparative analysis and valuable lessons learned from someone who's been there, done that. The information compiled here by the author will save you time and money. I especially liked the Handy Desk Reference loaded with useful charts and graphs" —David Nilsson, Architect Principal Leader, Computer Sciences Corporation

“The author has truly ‘hit the nail on the head.’ Whether you are an academic student who is aspiring to be an IT professional one day, a trainee that has just started career, a business & quality analyst and manager that has years of IT SDLC project experience—a must read for an IT professional at all levels of IT journey” —Sekhar Bommana PMP, ITIL, VP – Strategic Solutions & CoEs, Infomerica, Inc.

I’m anxious to learn what the others think as well. I’ll keep you posted.

Friday, June 4, 2010

The SDLC is Not Just for Software

There was a recent question posed on LinkedIn about what the acronym SDLC means when you see it in a job posting. The question was asked by a person identifying themselves as a job-seeking business analyst. I followed the thread with amusement as the many responses were posted, none of which answered the question adequately. Of course, I couldn’t resist putting in my two cents only to have someone snidely remark, “It’s good to hear from a self-proclaimed expert on the SDLC.” The commentator then went on to offer badly formed advice. It is very amusing!

The truth is the SDLC is not just about software. While software is a major focus of any SDLC, it is not the only focus.  That’s why I prefer to define the acronym SDLC as System or Solution Development Life Cycle and not Software Development Life Cycle. To do otherwise is a misnomer. Need proof?

Think about all the projects an IT organization takes on. It doesn’t matter if the project is in telecom, infrastructure, application development or even outside of IT as in opening and outfitting a Greenfield location. True or False? All of these projects have certain process commonalities that can be governed by an effective SDLC. Every project needs to:

  1. Elicit and analyze requirements
  2. Develop design specifications
  3. Define success metrics
  4. Produce clear, consistent and unambiguous artifacts
  5. Deliver products that comply with the highest quality standards that meet or exceed customer expectations
  6. Transfer knowledge to operational support and maintenance personnel, sometimes to outsourced, off-shore locations
  7. Train end users and support resources
  8. Offer post deployment support and maintenance

All of these development aspects are governed by a well-defined and effective SDLC. It doesn’t take a giant leap if faith to conclude that the SDLC is not just about software.

Friday, May 21, 2010

The Three-Legged Stool of IT Business Value

Once during a meeting I attended while visiting an affiliate organization in the San Francisco area, the CEO shared his vision of business success as a three-legged stool of margin, sales and net profit. If any of the three legs of this stool are out of balance, revenues suffer and shareholder value declines. In “Principles for Maturing Your System Development Life Cycle: The Ultimate Guide to the SDLC,” I present my own theory of a similar three-legged stool that applies to the business value IT provides to an organization. In my thesis, the three-legged stool of IT business value is comprised of IT Governance, the Program/Project Management Method and the SDLC. The three are inextricably linked and together form a trilogy that are foundational to IT success and the business value IT provides.

Three-Legged Stool of IT Business Value 
In the corporate world, a truly effective IT group can help increase revenues, develop and hold market share, gather mission-critical employees, view mission-critical processes and plan niche creation strategies. An ineffective IT Governance crushes an organization. It leaves senior leaders with a bad taste in their mouth. They lose confidence and trust in the IT group to deliver what they’ve promised. A poor project management method leads to project failures, cost overruns and delays. An immature SDLC results in poorer quality products, increased defects and lower customer satisfaction. All three must work in concert and all three must be effective to produce the desired results. Effectiveness is measurable and can be continuously improved. If any one component is out of balance, our projects may topple and fall; and like Humpty-Dumpty, we may not be able to put all the pieces back together again.