Section 3.2. Open Source Skill Levels


3.2. Open Source Skill Levels

It is impossible to capture precisely and on a simple scale a detailed assessment of an IT department's open source skills. What's more, the skills required for any particular implementation can vary widely, depending on the maturity of the open source project. The goal of this model, then, is not to create an authoritative aptitude test, but rather, to help an IT department understand what skills are required to use open source projects in different situations.

The Open Source Skills and Risk Tolerance model will serve four purposes:

  • It is a guide to self-assessment that can combat the frequent over-optimism of IT departments and technologists in general. All technologists feel in their hearts like highly skilled innovators. The descriptions presented of the specific skills an IT department has to have at each level can assist in making a sober judgment about what sort of open source is appropriate.

  • It gives the authors a quick way to talk about what sort of skill level will be needed in the later chapters that review specific open source projects.

  • In understanding the skills required at each level, an IT department will be able to create an organized plan for creating and improving institutional skills so that the cost of using open source drops and the potential value created from using open source grows.

  • If an IT department chooses to use consultants to help in evaluating and implementing open source, the model provides a framework for evaluating the skills of a consultant or consulting firm, or other service providers.

3.2.1. Skill Levels Defined

The skill levels presented here are intended to imitate the stages of technology adoption made famous by Geoffrey Moore in his book, Crossing the Chasm. In the book, Moore presents a model for how technology is adopted based on a diffusion model that was first created to explain the adoption of technology in agriculture.

In Moore's model, users of technology are split into the categories shown in Figure 3-1. Note how the size of the area under the bell curve illustrates the number of people in each category.

Figure 3-1. Geoffrey Moore's categories for technology adoption


Moore's analysis is that between the early adopters and the early majority exists a chasm that companies selling technology have to cross over. The difficulty in crossing the chasm is that the way technology is adopted by innovators and early adopters is completely different from the way the early majority and late majority adopt technology.

Moore has written several books explaining and expanding on this analysis, but here are his views in simplified form:

  • Innovators and early adopters have a high tolerance for risk and for the defects of new technology, because they are highly skilled. Innovators and early adopters are attracted primarily to technology because of the power of its raw functionality.

  • The early and late majority have low tolerance for risk and are interested not in raw functionality but in the acquisition of technology to solve specific business problems.

  • Most high-technology companies start out selling to innovators and early adopters, emphasizing functional strengths and how innovative their technology is. This approach turns off the early and late majority. To "cross the chasm," companies must learn how to change their tune and package their product to solve specific business problems in a predictable, low-risk fashion.

Much the same chasm exists in open source technology. But unlike commercial technology, few open source developers are attempting to push their projects across the chasm. This is changing as open source is used as a business model for consulting firms, and open source developers start to understand the benefits of wider adoption. (Chapters 6 and 7 address some of these issues.)

Open source projects do not have marketing departments, sales staff, and product managers thinking about how to gain a wider audience. They have developers creating great technology to meet their own goals. For open source projects to cross the chasm, they must be either pulled across by IT departments that realize the benefits of increasing institutional skills to unlock the value of open source, or pushed by a person, group, or organization that is interested in wider adoption.

This does not mean that to use open source an IT department has to become an innovator such as Google, Amazon.com, or Ticketmaster. It does mean that an IT department has to develop enough skill to recognize and implement mature open source that is ready to cross the chasm.

This chapter will explain the kind of skills needed, using levels that are parallel to those in Moore's analysis:

  • Beginner (late majority/traditionalist)

  • Intermediate (early majority)

  • Advanced (early adopter)

  • Expert (innovator)

Each skill level enables an IT department to handle open source of different degrees of maturity.

To be precise about our definition, each level of expertise will be described along each of the following dimensions:


Open source development tools

What knowledge of open source development tools will be required?


Hosting

What hosting capabilities will be needed?


System administration

What system administration skills will be required?


Operations

What operations capabilities and skills will be needed?


Open source infrastructure

What open source infrastructureprograms such as Apache, MySQL, etc.--must be understood?


Programming languages

What programming language skills will be required?


Open source community skills

What sort of skills for getting help through open source community channels will be needed?

The following definitions summarize the skills at each level, and how this enables open source to be employed.

3.2.2. Beginner

The beginner level is defined by the minimum amount of skill needed to use the most mature open source products and infrastructure. IT departments at the beginner level are defined by the following abilities:


Open source development tools

These users understand at a superficial level the packaging and development tools involved in downloading and unpacking the binary versions appropriate for an existing operating system.


Hosting

They use a hosting operation for servers and networks provided to them by the IT department.


System administration

Beginners perform basic system administration involved in installing and executing the operating-system-level configuration of the open source software, such as specifying where log files will be written, what ports the software will use, and other such fundamental settings.


Operations

These users gain basic operational skills to monitor servers and determine the use of resources by the open source program, such as whether log files are filling up, whether software is starting and/or stopping, and whether the software is running.


Open source infrastructure

They understand the functionality of the open source project they intend to use, and they perform basic program configuration. If multiple open source projects are working together, they understand the connections between the programs so that they can configure them properly.


Open source community skills

They use open source community assets such as mailing lists and bulletin boards in a way that elicits a positive response from the community.

The beginner level for an IT department goes far beyond the skills and knowledge required just to get an open source project running. For the most part, it is possible to get an open source program running with very little knowledge. But for an IT department the minimum knowledge is of greater scope because the program must be operating in a stable manner.

To an IT department at the beginner level, then, open source is a black box with a few simple knobs that control its functionality. If the black box plays a helpful role as is, it might be appropriate for use in a production environment. All of the normal operational and performance testing can take place on such a product without the IT department having to know much about its internal workings.

Stable infrastructure such as the Linux operating system, Apache Web Server, and MySQL database, or products such as the Mozilla browser, can be used by beginners. Toolkits and frameworks that require more configuration and programming are not appropriate for beginners.

3.2.3. Intermediate

At the intermediate level, open source is still a fundamentally black box, but one with many more dimensions of configurability. Those with intermediate skill levels should be able to grasp not only advanced configurations of open source, but also basic uses of programming languages. The intermediate skill level is defined by the following abilities:


Open source development tools

These skills are the same as those at the beginner level, except compilation might be required or other packaging tools might be needed to put templates and simple programs into production.


Hosting

These skills are the same as those at the beginner level.


System administration

These skills are the same as those at the beginner level, but these users also can handle any additional configuration needed when using templates.


Operations

These skills are the same as those at the beginner level, but these users also are capable of monitoring the operations of templates or simple programs added to configure open source projects.


Open source infrastructure

Intermediate-level users must be able to understand all the configurations possible for an open source project or group of projects working together. They must be able to read the programming language of the project to understand how configuration parameters are used, and they must have ready knowledge of certain common open source infrastructures, such as the Apache Web Server or MySQL database. They must be able to compile simple templates or entry-level programs into executable programs, or promote the templates and programs into production. Templates are reusable structures designed for easy configuration.


Programming languages

These users must have a basic ability to read the programming languages of the open source projects in use. They also must be able to write simple code for templates or other such elements used to configure and control the behavior of open source programs, frameworks, and toolkits.


Open source community skills

Building on the beginners' understanding of how to interact with an open source community, users at the intermediate level must be able to find and engage other users and developers who are interested in using the open source software in the same way. They can find these other users, because the intermediate users ask and answer questions in an intelligent way that helps others traveling the same path.

Much more of the world of open source is available to users at the intermediate level. Toolkits and frameworks can be employed, because the intermediate user can write simple templates or other entry-level programs. While the intermediate user is not going to push any open source project in a new direction, she will be able to adapt open source projects that are relevant to the needs of her organization. If an open source project has add-on components, the intermediate user has the skill to use those components. An intermediate-level user is akin to a superuser of a desktop program.

At the intermediate level, programs such as simple content management frameworks, weblog publishing systems, or Wiki implementations become useful, because their behavior is controlled by templates and other configuration mechanisms that are easy to use. Such programs can be agents of huge productivity and cost savings that can affect thousands of users. The mature implementations run in a stable manner, without much care and feeding. The most mature operational infrastructuresspam management, intrusion detection, email list managerscan also be deployed.

A danger that users experience at the intermediate level concerns getting too far ahead of their skill set. Of course, this is a danger at all skill levels, but one that intermediates are especially prone to because the excitement of expanding knowledge is so seductive. It is important to make sure that any open source project used is adequately tested and that provisions are made to handle failures through either failover or some other means that informs the system's users that a problem exists. The most common mistake at this level is to push open source too far into mission-critical systems without adequate analysis of how to provide operational support.

If there is a chasm in open source, beginners and intermediate-level users are on one side, the side that represents the majority, and advanced and expert users are on the other side, in the domain of the innovators and early adopters.

3.2.4. Advanced

At the advanced skill level, open source projects are no longer a black box. Advanced users have the ability to look inside the open source project and understand how it works in great detail, and how it can be pushed to the limit and fully exploited through integration with other technology. Advanced users are capable of performance-tuning open source projects, which opens the door to high-performance applications. The advanced skill level is defined by the following capabilities:


Open source development tools

While beginner and intermediate-level users depend on precompiled binary versions, or perhaps can run a script to perform a simple compilation, advanced users are capable of recompiling an entire open source project and handling all the difficulties that might arise. For simple projects, this is trivial. But for larger projects, such as the Linux kernel, more knowledge is required. Advanced users have ready knowledge of development tools used in all the platforms in which they have expertise.


Hosting

Advanced users can specify the machines and the configuration needed to run open source projects.


System administration

These users understand the way an open source project consumes operating system and network resources and can configure the open source project, operating system, infrastructure, and network to achieve maximum performance.


Operations

They can harness all the tools of the operating system to examine and diagnose the resource usage of an open source program and are thus able to analyze and diagnose performance problems. Advanced users create monitoring and failover systems for open source projects to make them as stable and easy to operate as possible.


Open source infrastructure

Advanced users know, inside and out, the open source infrastructure of the projects they have deployed. They understand which toolkits and frameworks were used in constructing the projects, and how they were used. Advanced users are able to change the projects to integrate common IT infrastructure such as single sign-on or SNMP monitoring hooks inside the applications. Integration with other applications can also be added if needed.


Programming languages

These users have excellent coding skills. They can read code and understand a program well enough to fix simple bugs or to adjust the code's behavior. They can write code to support any desired integration, or rewrite code and redesign parts of an application to improve performance. Advanced users can choose to not wait for releases, and are able to apply patches for fixing bugs or introducing enhancements into their implementation.


Open source community skills

Advanced users are significant players in open source communities. They might be part of the core development team committed to the master open source repository. They might play a leading role in implementing important features. They might be active on projects in which they are participants, and are able to ask penetrating questions about other projects in a manner that catches the attention of the core group of other projects. Advanced-level users have huge networks of experts of all sorts and can assemble, in a matter of hours, information on advanced topics that would take intermediate- or beginner-level users weeks to collect.

People at an advanced skill level are extremely powerful forces in an organization. They enable any and all open source projects to be put to use according to the highest enterprise-grade operational standards.

Among the things advanced skill levels make possible are recompiling the Linux kernel with advanced intrusion protection features; integrating into open source projects parts of the IT infrastructure, such as single sign-on, logging, business activity monitoring, failover, and so forth; solving performance problems by changing the code; and extending an open source project in simple ways.

The danger of having a member of an IT department with advanced skills is that the technology that is created can easily creep ahead of the institutional skill set of the IT department and can result in a serious key-person problem. Advanced-level use of open source must be accompanied by documentation and training so that staff at lower levels can support what has been done. Skill building must be a part of rising to the advanced level if an IT department expects to stay at an advanced level. Of course, managing creative technologists can be a challenge, but one that is usually worth the reward because talented technologists tend to like to work with other talented technologists.

While an advanced-level skill is wonderful to have in-house, it is increasingly possible to rent this level of skill for open source projects from consulting firms and other service providers. The emerging models for third-party support of open source are explored in Chapter 6.

3.2.5. Expert

Both the companies and the individuals who are the stars of the open source world operate at an expert level. Experts are active leaders who create new open source projects and lead projects in new directions. Experts improve the work of others by providing direction and an inspiring example. People we think of as hackers in the most positive sense of the word are experts. If it can be done with open source, experts can do it. The expert skill level is defined by the following abilities:


Open source development tools

Expert users can create reusable packages for organizations. Needless to say, they are experts at using a wide range of open source development tools.


Hosting

They can understand the entire application, from the user interface to the hardware implementation, and they insist that projects be written to optimize performance at all levels. For hosting, they are likely to be extremely well-educated consumers and will probably improve the performance of any hosting organization with their suggestions.


System administration

Experts are demanding customers for system administration staff and will likely push the team to analyze the configuration more carefully to optimize performance.


Operations

Experts love data and will push an operations team to make sure that appropriate data is collected so that application performance can be analyzed and improved. Experts love to anticipate problems so that they can be dealt with automatically, and they love to challenge a data center's operations staff to higher levels of performance.


Open source infrastructure

Experts can create open source infrastructure. One or two expert-level players have been the driving force behind each major innovation or platform in open source. When experts see an unfulfilled need, they frequently become obsessed by it and work fiendishly to fill it. Experts have a thorough knowledge of open source infrastructure and can quickly become skilled in virtually any area of open source.


Programming languages

Experts are virtuoso coders and can create mountains of code in days that would take people with less skill weeks or months to create. Experts can easily extend the functionality of an open source project, solve performance problems, or fix difficult bugs.


Open source community skills

Experts can lead the creation of open source projects or act as the driving force for moving a project in a new direction. Experts inspire other technologists to buy into their vision, and in doing so they create the kernels of what can become much larger open source communities. Experts command the respect of their peers and are frequently able to get significant help from other members of the community when they face problems. Experts are also frequently generous with their time and are helpful to others who share their goals and ethics, if approached properly.

Richard Stallman (GNU Emacs, Free Software Foundation), Linus Torvalds (Linux), Larry Wall (Perl), Brian Bellendorf (Apache), Greg Stein (Apache, Subversion), and hundreds of others are the experts who created open source as we know it today. Institutions also have become players at the expert level. For instance, IBM created and released the Eclipse platform to the open source community. Sun picked up and carried on StarOffice. MySQL created the leading open source database.

Experts are stars. Experts are the favorite teacher we all want to make happy. That said, IT departments can be extremely successful without ever becoming an expert institution or interacting with an expert-level player.

Any individual cannot be advanced and expert in more than a few projects. There is too much to know. Institutions have to choose what they will be experts in. Luckily, open source expertise is increasingly for sale. The open source world is changing rapidly, and for the most popular open source projects it is becoming possible to buy expertise from consulting firms and various service providers.

As we will explain in Chapter 5, the biggest payoff for an IT department is probably to build an intermediate level of institutional skills, and then to rent advanced and expert skills selectively to help solve difficult problems or accelerate skills development.



Open Source for the Enterprise
Open Source for the Enterprise
ISBN: 596101198
EAN: N/A
Year: 2003
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net