Linux Certification for the Software Professional
Within the Linux community is a growing discussion concerning the need for certification. Although certification may not be appropriate for today's Linux enthusiasts, it will be essential in the future as Linux software is brought into corporate and government environments. Certification programs and open source software will become significant as more and more independent professional programmers integrate Linux and Linux-based software into standard contract programming. Use of the certification process to develop minimal standards that are acceptable to the Linux community will also smooth the coming transition to state board licensure of the Professional Software Engineer.
When comparing diverse professions such as law, civil engineering, accountancy, clinical medicine, clinical psychology, and even hairdressing, one notices they all have a requirement of certification or licensure for the practicing professional. Computer professionals, on the other hand, do not have such a requirement.
The main reason for the lack of required credentials is probably that the computer discipline is only about twenty-five years old and, therefore, it has yet to come of age in industry or academia. As evidence of this field's youthfulness, traditional engineers often dismiss computer science as pseudo-engineering. Programmers stress the art (as opposed to science) of programming and the art of system administration. Computer science degree programs have been placed in university liberal arts, business or engineering schools. Meanwhile, computer scientists themselves cannot agree on even a short list of essential degree requirements for the Bachelor of Science in Computer Science (BSCS).
In spite of this awkwardness and uncertainty, our profession is doing well. BSCS graduates command high initial salaries that match or exceed other engineering disciplines. Computers control much of the country's infrastructure and this control is dramatically demonstrated by the manpower and resources currently employed to address the year 2000 problem.
In other words, the debate over certification in general and Linux certification in particular represents the growing pains of a relatively new profession and society's need to understand what a software engineer does. To make matters worse, the U.S. Department of Labor predicts that the computer industry will have 300,000 more programmer positions than programmers over the next few years and universities will not be able to fill the predicted demand. In fact, overall enrollment in computer science programs has decreased slightly in the last year (see http://stats.bls.gov/oco/ocos110.htm).
The role of certification, therefore, is to provide a method by which employers can specify and expect a given level of computer system expertise from employees without requiring them to have an advanced computer science degree. In a secondary role, certification acts as a supplement to a college or university degree by providing professional development through continuing education.
It is now time for the Linux community to shape the future of the software engineering profession by agreeing upon minimal industry requirements that will be codified into certification and licensure requirements.
A Linux system and its array of development tools and applications represent a central core (or “common body”) of knowledge for today's professional software engineer. Linux “empowers” the software professional with a set of tools that allows one individual to quickly provide sophisticated, flexible and reliable system solutions on a variety of computing platforms. These sophisticated solutions would otherwise require teams of programmers working months to integrate proprietary and incompatible software modules.
Second, a fundamental concern of corporate and government managers is the cost of operations—and Linux dramatically reduces this cost. The reduction is not so much from the idea of free software, but more a result of increased programmer productivity through complete control over the system. Another aspect of reduced cost is that the entire Linux community, including business and government, is continually debugging and improving the program base, making the system even more cost effective with each new distribution.
A third reason for a Linux certificate comes from state licensing boards. Licensing is a governmental action that seeks to safeguard the health, safety, welfare and property of its citizens and businesses through regulation of the offer of services, review of performance and use of the title “Engineer”.
On February 18, 1998, the Texas Board of Professional Engineers stated its intention to recognize software engineering as a legitimate sub-discipline. On June 17, 1998, the Texas Board approved a license for the Professional Software Engineer, and on August 3, 1998, began licensing software engineers through a waiver process (http://www.main.org/peboard/).
Given how Linux is used, this is a significant move by the Texas Board of Professional Engineers. Linux system software allows the independent software professional to provide a competitive bid, program the application and deliver a software product quickly. The professional programmer knows that Linux is a complete and open source software system that will simplify the solution of any development problem. In other words, from embedded systems through advanced networked clusters, Linux has already handled many programming and integration issues. The software developer is free to configure Linux in any way that best suits the required solution. Hence, Linux is an integral part of the software engineering process and as State Board licensure continues to grow, Linux must be a part of the licensing process.
Finally, given the predicted demand for software professionals, a Linux certificate will provide a valuable aid to employers in discovering productive software professionals.
Certification is an assessment of an individual's knowledge and skills in a given area of expertise. Currently, more than 170 certificates are offered and many of these have overlapping areas of expertise. These certificates are generally centered around a vendor's hardware or software product.
The certificate provider typically defines core knowledge and develops texts, study guides and other course material that cover the defined expertise. Students enroll in the certificate program and purchase the appropriate texts and study guides. Supporting materials such as video and/or audio tape lectures are sometimes offered for an additional fee.
Core knowledge is usually divided into four to six areas, with separate tests for each area. The goal of such test taking is not to compare one person's test performance to another's, but to determine whether an individual meets or exceeds the minimal requirements of the vendor training program. A typical student (given family and job obligations) takes the tests over a six- to twelve-month period.
Once the candidate earns a passing grade on all of the required tests, a certificate is issued authorizing the software professional to list the certificate with their name. The certificate provider usually offers “perks” that include a technical hot line or exclusive forum with other certificate holders, a WWW database listing of member skills and services, plaques, photo ID badges and logos for business cards and letterheads. The cost of obtaining these certificates can range from $2,000 to $10,000 US.
Certificates assure employers that the holder has a specific set of skills and a minimal level of competence. Company management, in turn, exploits certification by advertising the employee's skills to their customers and billing customers more per hour than for non-certified employees.
Certification typically gives an employee more job options and yields better pay. Certification in a high-demand area can lead to a wage increase of $5 to $10 US per hour (that's $10,000 to $20,000 US per year) over non-certified computer professionals.
Many corporate managers consider certification an investment in human resources and, as a result, they pay for or otherwise assist with certification costs. The consensus among managers is that certification leads to improved employee service, reduced problem-solving time, easier assimilation of new technology and higher overall employee productivity.
Several issues have come together that indicate it is time for us to offer a Linux community-based certificate. First, there is a clear consensus among the Linux community that Linux should continue to grow, receive wide acceptance among programmers and should offer an alternative to traditional software products. However, the growth of Linux functionality and acceptance is not a simple straight line on a graph. Over the last two years and especially within the last year, Linux distributions have reached a “critical mass” of stability, reliability and completeness that will accelerate the growth of Linux over the next few years. Second, the expected rapid growth of Linux will create a need for business and government managers to have an additional metric in the selection of new employees as well as an additional metric for employee merit pay increase and employee promotions. Third, as other State Boards of Professional Engineers see what has been established in the State of Texas, it will be only a matter of time before licensing software engineers is common. Consequently, a Linux certificate will act as a conduit to build a community consensus on certification and licensing.
Hence, now is the time for a Linux certificate and it is Sair, Inc.'s intention to act as a conduit for the Linux certificate by describing our certification process in detail, soliciting critical analysis, debating the specifics and creating a Board of Advisors. The Board of Advisors will consist of respected Linux community members given the responsibility of ensuring that the certificate meets minimal community standards and covers material representative of how Linux is used in business, government and independent programmer shops. Furthermore, the Board will recommend actions to advance Linux in the computer industry.
A component of this advancement will be combining the accumulated certificate knowledge with activism to ensure that the Linux community is represented at the State Board licensing level.
The proposed Linux certificate will cover four areas: installation, networking, shells and commands, and security. In the future, and depending on the directions Linux takes in business, a Linux kernel certificate that covers the details of kernel development, maintenance and embedded systems will be considered. There will be tests for each of the four areas and candidates can take them one at a time or in clusters. Hands-on demonstrations may be an essential component of some tests.
A working draft of a comprehensive outline of the proposed certificate material is at http://www.linuxcertification.org/. Although the outline may be missing a given topic or detail, a surprising amount of information must still be covered. Given the large amount of Linux system information that exists, we have yet to define the exact breadth versus depth of the exam. For example, it is assumed in the study guides that the student already understands basic operating system concepts such as memory and process management, interprocess communication, file management, device drivers, system abstractions, network layers and so on. A separate section devoted to these concepts may have to be developed in the future.
Candidates will need additional background study material to support the “narrow” study guides. Currently, we are employing existing Linux texts to provide background and related details for the Linux certificate topics. In the future, we will integrate other on-line documents into the study guide through either cross reference or additional independent study guides. This means that, at least initially, the Linux student will require a larger textbook library than that required for other certificates. (See the web site for a suggested reading list of background texts.)
Existing study guides (with background text references) are being refined and more are being developed. They can be reached from the “study guide” hyperlinks in the working draft outline, for example at http://www.linuxcertification.org/introqa.html. These guides are in the form of essay questions followed by answers.
Members of the Linux community would clearly like to take certification exams on the Web. (See http://www.linuxjournal.com/HyperNews/get/certification.html.) Unfortunately, no straightforward method exists for user validation (fraud prevention) over the Web. Assuming the Linux certification process becomes a self-sustaining enterprise, we will be developing fraud-proof technology for web-based exams. Until that time, we will use traditional testing methods and environments. Initial tests will be based upon “book knowledge”, while advanced tests may include hands-on demonstrations. Assuming enough interest, book knowledge tests can be given in commercial testing centers such as Sylvan Prometric. Testing on advanced material and hands-on demonstrations will be made available as the need arises.
These items need to be completed:
Solicit community comments. (Initial outline at http://www.linuxcertification.org/.)
Complete development of study guides, using selected background texts and on-line material as reference. (Initial study guides are hyperlinked at http://www.linuxcertification.org/.)
Use community comments and Board recommendations to improve study guides.
Upon completion of the first study guide, accept candidates for the certificate.
Based upon interest, schedule tests while study guides for each area are developed.
Upon completion of all study guides, schedule final tests and begin awarding certificates.
Begin active consulting with State Boards concerning Linux and its relationship to licensing.
Develop continuing education credits and courses.
In planning for the future, we are developing a Linux Certificate now. We want the certificate to be truly representative of the Linux community, and your comments are essential in helping us achieve that representation. We believe certification has significant mutual benefits for employers and employees and will become a key tool for managers as Linux software is brought into corporate and government environments.
As more and more independent professional programmers integrate Linux software into their standard contract programming, we will be promoting Linux as core knowledge in the State Board of Professional Engineers licensure process.
Dr. P. Tobin Maginnis (firstname.lastname@example.org) is an Associate Professor of Computer Science at the University of Mississippi and the President of Sair, Inc. His areas of specialization are operating systems, networking, distributed operating systems and multimedia. See http://www.cs.olemiss.edu/~ptm/ for more information. As President of Sair, Inc., Dr. Maginnis supervises a programming shop that provides custom programmed software solutions to clients in the Chicago area. See http://www.sairinc.com/ for more information.