Friday, December 31, 2010

Developing competency using Open Source

Despite the rapid strides made by IT industry, if you ask any project manager to list the top three challenges, competency gap is most likely to be one of them. I summarize the approaches adopted by the industry so far and suggest novel ways in which open source can help.

The industry focused initially on the process competency. This is done through a training program with workouts. The technology competency development is attended more as a by-product of year end performance appraisal mechanism. HR department collates all the needs and does an analysis. It provides a training calendar for the courses that are in demand. Competency needs that are not in great demand are left to Engineering managers. Competency development is not aligned with the business priorities in this approach.

In the next generation approach, the product road maps are developed, the technology competencies required are identified/updated as part of the annual strategic plan.The competency needs are categorized into near term and long term. Near term are handled in a similar manner as described before. Homegrown or commercial competency tools are utilized for planning and tracking. Long term competency needs are addressed by hiring from the external market or encouraging research work in academic institutions or through long term mentoring by experts. As projects do not follow the yearly calendar, new needs of projects are handled in an ad-hoc manner.

In terms of tools, the nature and features of a tool are usually a compromise between the level of detail, ease of use and utility. If a tool is simple with three categories of self assessment (beginner/developing/expert) of the capability in a particular area by the assessee and subsequent ratification by assessor, the tool will be well adopted, but will not be of much use except as a glorified database. If the assessment is made complex, with on line tests or other forms of assessments by panels, the adoption is usually a problem.

In this context, the use of external training and certification has emerged as a successful option for PMP and System Engineering Professionals. The assessee undergoes training, appears for an certification exam. The credential is usually accepted as competency achievement at the middle of the scale. This process tends to measure mostly theoretical knowledge and suffers from the usual demerits of the traditional education system.

The approach I propose offers a better way to develop competency. As per this the assess has to do a self assessment of his competency in an area and identify the gaps. To fill the gaps, he/she is required to work on an open source project, devoting whatever chargeable time available supplemented with non chargeable time. The contribution to open source project i.e code/documentation/training material is tracked through statistics of collaboration/social networking mechanisms. This results in a strong basis for assessing the work of the individual, as the meritocracy of ideas rules in an open environment. The assessee gets an opportunity to develop soft skills and gets mentored as well. However for this to work, the management has to believe in the power of open source and support the initiative and celebrate the successes. Would you like to poke holes in the approach? Welcome! The floor is yours in the form of comments!

Thursday, October 14, 2010

Process for using Open source

Despite the advanced levels of ISO, CMMi definition and deployment in Indian IT organizations, the process for using open source is  still at beginner levels.  In view of the enormous advantages,  open source software  can no longer be ignored by commercial firms. As an example, it may be useful to know that  HP is using  open source in 80% of their products.   As free software  organizations have taken measures against violators, an appropriate process must be put in place and implemented at the earliest.  Process Framework needs to cater to streamline existing usage and  for initiating new usage. I give a simple  process outline below as an initial guidance.

Process for regulating existing usage
  •  If an organization,  has been operational beyond an year and employs developers, it  needs to start with a survey of open source usage as the first step. A survey form can be designed based on the nature of the work and relevant open source resources. A generic form is available for download. Alternately  automatic scanning software OSS Discovery can be used, the results from it can be mapped into the above form for further work.
  • Once the data are captured, analysis of the data is required to develop a plan of action.
  • If the open source is for internal use, the effectiveness can be evaluated.
  • If the open source is embedded in a product, compliance steps based on the license of open source can be implemented.
Process for new use
  • Define a broad approval process  which can encourage use of open source for experimental purposes and regulate use for product development
  • Gather details of the open source alternatives from sources like Oslat and Wikipedia  , issues and  support available.
  • Evaluate  the proposal based on robust evaluation criteria covering both short term and long term issues, benefits.
  • If  proposal is not approved, develop/license a proprietary equivalent.

    Tools to manage use of Open source software
    There are several open source and proprietary solutions to manage open source software in businesses. Links for some of them are given below.
    Free: Fossology(database needs to be built for each enterprise),   OSS Discovery (Supports automatic scanning of machines) 
    Pay: Blackduck software  (allows integration into development process to trigger violations).

    Credit:Process graphic from Wiki Commons

    Sunday, October 3, 2010

    Open source licenses - Guidance for businesses

    When any business is interested in using Open source, the immediate question that comes to mind is about licensing . Specifically, what licensing terms are available and what liabilities are imposed. The reason it is difficult for firms to work with open source is not only the many licenses in the open source world, but that most licensing terms are frozen and are not amenable for negotiation. Thankfully, there are also several licenses which permit commercial usage without any restriction on modifications. Some software is also released under multiple licenses, at least one of which is commercial friendly.

    As the open source has evolved over the last 3 decades, we have several different licenses and existing ones are being updated and new ones are being created, as I write. To get the best benefit out of open source, more awareness of the most popular licenses is needed. Let me assure you that you do not need to be a legal expert to understand the same. An excellent overview is available online as part of the free book "Producing open source software", by Karl Fogel. GPL is the most widely used license and it is always evolving. GPLV3 includes support for the new technlogies like web services, Digital services etc. You can read more about it on the wikipedia

    I provide a simple guidance for firms based on the nature of their use of open source. Please note that I am not a legal expert and legal opinion is to be sought before making final decision.

    Implication of Open source licenses based on type of usage
    Intent behind using Open source Implications with regard to license
    Use open source sw internally and no intention to add/modify (eg: run a web server) No need to worry about open source license, as all of them offer you the freedom to run the software
    Use open source in products sold Provide a way for your customers to get the sourcecode either on a CD, ftp site etc
    Use open source in web services Select open source with license like GPL3, which includes web services in its scope

    If you are part of a propreitary company but yet to venture deep into using open source, you need to do lot of work to work with your legal team, put process in place for regulating use of open source. It is worthwhile to pursue the same, as Open source is a reality that no company can afford to ignore.

    Wednesday, September 1, 2010



    Thanks for stopping by  my new blog.  Let me start with a fresh  story.
    Image from Wiki Commons
    I was trying to reach a phone banking service of a prominent bank regarding a  query in the morning.  When I dialled the number, I was  greeted with  instructions to enter my credit card # and then my T-pin. After  that  a long commentary of  the dues, minimum due on my active as well as inactive credit cards followed. I was eagerly waiting for the menu option to reach a customer service officer. I could never hear  about that option in the instructions.  I  thought that they missed it and kept trying the typical number for assistance (9), only to be greeted with a message  "sorry, I could not understand..", followed by a repeat  of the lengthy message about the options .  I browsed web to  look for alternate contact numbers. I only got  an update about the service desk hours.   This particular information was never reflected in the opening instruction of IVR . This could have saved me half an hour of frustration.

    Later I tried to login to  the website of the company, to send a message. I composed a message and when I tried to submit, I was greeted  with a warning  "Message can not exceed 180 characters".  This led to another frustration of revising the message. I wish that the  UI was  developed in such a way to  warn about the limitation on the message size  or preferably prevent further typing when the message size exceeded the limit.     From the above examples, you can see the amount of time that is wasted, the frustration that is caused to the customers when applications are not engineered properly.

    So, in this first blogpost, and in order to avoid wasting your time or causing frustration,  I would like to  briefly cover the initiative  behind this and  share my expectations  about this blog.

    First briefly about myself. I had  a  25 year career in technology industry, with diverse exposure to  product development  in Control, Aerospace, Defence, Semiconductors, Consumer Electronics, Edutainment and experience in  Public and Private (large MNCs, small startups) companies.  I have performed various roles  from engineer to practice lead in my long career.   My interests have expanded from just embedded product development  to IT and IT impact on society.  Along the way, I took active part in professional societies like IEEE and contributed to  Mozilla, Wikipedia and Ubuntu  .

    I am facinated by technology and its applications in  making life better.  Despite new tools  and processes like CMMi, I  am pained at the slow pace of productivity in  engineering particularly in 'For profit' businesses.   I  am struck by the growth of  free and open source software (FOSS) movement over the years. FOSS  could compete with  proprietary software in many areas.

     I think of how  sharing of  practices from  between these two could help  in improving the engineering excellence.  I   shared a presentation about  how the rigor of project management  can help Wikipedia  in the recent Wikimania conference.  Through this blog, I would like to focus on how emerging practices/tools/software  in open source world can be applied  to  businesses.

    I plan  to cover   technologies/tools/  program management  advances    in my future posts.  I will appreciate your feedback when my post strikes  a chord in you. 

    Meanwhile, if you like to sample my other blogs, do check out Tech4Society  blog focusing on technology application with  large scale social impact and my   Telugu language  blog Teluginux for info on  promoting Telugu in e-world.

    Credits:Snow flake Image from Wiki Commons