This write up is specifically focused on development of custom software products that are core to an established US based business organization.  This is a thought on best strategies for sourcing such development efforts in today’s world.

Core products embody the organization’s “secret sauce”.  Even, if some of them are experimental in nature, they always have the potential of growing and morphing into promising solutions with long term viability.  The subject matter expertise and technology expertise behind such products are critical to the success of the organization, and hence, must be sufficiently available within the company.  All such products should be developed to include the following abilities: usability, scalability, maintainability, supportability, and re-usability.

Custom software development is often not very clearly distinguished from “software integration” and “software customization”.  Software integration involves a solution that is derived from building bridges between existing commercial software packages.  Software customization involves a solution that is derived from customizing (either by code or configuration) of existing commercial software packages.  Custom software development involves building a solution from development tools and frameworks.  Custom development provides the most flexibility to build an optimal solution.  It therefore involves a lot more design work.

Business requirements gathering is effective when done in close proximity to the business. The exception to this are products that are intended for technical audience.  There is a short supply of good software development talent (across all levels) in the US. There is a better supply of entry/junior/mid level software development talent overseas.  The industry-wide trend is moving towards more automated SQA and a majority of big software development shops in the US are doing this successfully overseas.  The published hourly rate of overseas talent is less than the onshore rate.

Given all this background, the best alternative for a green field development project is the following resource allocation model that will utilize the appropriate strengths of different parties involved while keeping the cost low without compromising quality or longevity:

  • full time employees for project manager; business analysts; usability engineer; technical architects; development leads; very few developers (~20%); SQA lead; and release management
  • onshore consulting resource for development lead to coordinate offshore work
  • offshore resources graphic artist, developers(~80%) and SQA engineers

This model provides a long term solution will

  • foster the growth of key talent in-house
  • provide ability to scale the team at a lower cost
  • place adequate responsibility on the vendor
  • avoid tight coupling to a single vendor

Utilizing the same information as above, the best alternative for a maintenance project is the following resource allocation model:

  • full time employees for project manager; business analysts; usability engineer; technical architects; development leads; SQA lead; and release management
  • onshore consulting resource for development lead to coordinate offshore work
  • offshore resources graphic artist, developers and SQA engineers

As the relationship with the vendor evolves, and the overseas teams mature and understand the business, these models could evolve as well.

In mid July 2009, Pizza Hut launched an iPhone application to allow iPhone users to order food from their chain restaurants. Within 2 weeks, about 100,000 copies of the app were downloaded. Cortado’s Corporate Server transforms smart phones into fully-powered workstations by giving users access to the company network and providing classic desktop functions like copy, fax, print, PDF creation, database reporting, etc.  Are smart phones and smart phone applications becoming more than cool personal gadgets with enterprise utility beyond email devices?  Yes.  What opportunities does this open up for an enterprise and what is the appropriate strategy?

The appropriate place to start is by looking at the strengths of this platform.  Mobile applications:

  • provide instant access to online sales channels
  • are well suited quick purchase decisions
  • effectively deliver real time data
  • are best based on single purpose
  • provide access to a different market segment of young and/or technical sophisticated users
  • offer a convenient alternative for current customer loyalty programs

If any of the above strengths could provide your business a competitive advantage, then you should take a hard look at devising a corporate mobile strategy.

How is this different from your web application that can be accessed from a smart phone?  Web applications are:

  • limited in functionality to what is supported by a browser
  • not usually optimized for smart phone screens

There are different smart phones in the market today without a standard platform.  How do you broaden your reach without spending a lot of money?  The 2 viable options are:

  1. Build a web application that is completely optimized for smart phone delivery
  2. Build a solid back-end engine that can service requests from multiple client platforms specific to different smart phones

These are broad guidelines that would help in the formulation of an effective mobile strategy with ROI in mind.

The agile software development methodology is a low ceremony approach that has been, and continues to be implemented successfully by those who understand it well.  There are a lot of key aspects of this approach that are very appropriate from a management perspective as well. Here are the key aspects of the agile manifesto, along with my adaptations of each to strategic technology management roles:

Focus on individuals and interactions

  • Quick, frequent, focused, face to face interactions are very effective in ensuring the continued momentum and progress of key business initiatives. This is most commonly, a daily 15 minute stand up meeting with direct reports. The topic must be, accomplishments yesterday and challenges (that need senior management intervention) today. This will replace the long, drawn out status meetings that quite often get side tracked into non-critical discussions.  This will NOT replace the brainstorming discussions on the next strategic initiatives to be undertaken.  It will also, NOT replace any of the “people focussed” one on one meetings.
  • A new tool or process alone will NOT solve a business problem.  The key solution to any business problem is right people working as a productive team.  The most productive environment for the right people is to make it condusive to what they do best. The environment must be very easy for people to get their work done.
  • Proper adoption of the methodology will allow for changes (see below) without burning out people

Intuitive business processes over documentation

  • As systems departments within an organization, we have a significant responsibility to work with the business to help them create intuitive and efficient business processes given the current technologies. This is in contrast to most traditional environments where systems departments “just implement” a technology solution for a process created by the business (many many years ago, most often).
  • A complete revamp of the entire business operation will take a significant amount of time.  The more practical agile approach is to revamp the processes one segment at a time.
  • All strategic initiatives must be broken into smaller pieces that can be delivered in a short time (agile cycles are typically 6 weeks long).  This approach will incrementally deliver results towards a big initiative.  Such incremental approach allows the business to touch and feel the improvements and provide feedback before it is too late.  Feedback can also be incorporated into the next deliverable.

Customer collaboration

  • Systems leadership must have a tight partnership with the business leadership and have their full buy in to this process.

Responding to change

  • The biggest benefit of the iterative implemetation process is to make changes by moving priorities very easily from one iteration to the other.  If one of the improvements could not be accomodated in one iteration, it could be added to the next one which is just a short duration away.

Here is a short list of some of the reasons why microblogging provides opportunities for the enterprise:

  • Brevity & simplicity
  • Ease of archival, presentation & searchability
  • Non-interruptive
  • Informative to the reader
  • Timely
  • Ease of access from mobile/stationary devices

OraTweet is an example of corporate adoption of the microblogging concept for intra company communication.  I am not completely certain on the various uses of OraTweet.  But, some solutions that could result from intracompany microblog are:

  • Time reporting
  • Status recording
  • Project tracking
  • Employee performance tracking

A major byproduct of this will be a significant reduction in email traffic.

Some solutions for company to user base communication could be:

  • Product launch tracking
  • Product promotion announcements

Some solutions for user base to company communication could be:

  • Product feedback
  • Word of mouth marketing

There are a number of products in the market place that offer flexible options for licensing or using in an ASP mode.  In addition, there are open source soutions to use for implementation on your own.  Or, if you want something that is not out there, you can roll your own from scratch.  This blog is proof that it would not take much to roll your own.

Let us not get bogged down by seeing how twitter is being used.  Instead, let us look at how we can benefit from its power.