Newsletters - Summer 2007

The future is still bright...  

For Employers and Job Seekers
by John W. Stout

The general news about the employment climate in Michigan is pretty gloomy. The unemployment rate in July—the most recent month for which data was available—was 7.2%. Compare that with the national unemployment rate of 4.6% in August.

These statistics paint a picture of a glut of job seekers, but that picture is painted with too broad a brush. The IT job market is becoming a job-seeker’s market. Earlier in the year, the National Association of Computer Consultant Businesses stated IT employment was at historic high levels and that unemployment rates for many types of IT workers are well below those of the general workforce.

Given this current market, some insight and tips for both employers and employees:

Employers

If you are looking for middle or senior managers, now is a great time to hire. Many companies have re-worked their management structures to reduce payroll expenditures. There are great people looking for work, many of whom are willing to negotiate salaries to get back to work. Sensitivity to "over qualification" makes some hiring managers reject veteran candidates out of nervousness that they will leave as soon as a better opportunity comes along. If a candidate has a history of sticking with jobs for the long haul, such sensitivities can be cast aside fairly safely. There isn’t a surge of managerial hiring looming on the horizon, so candidates are likely to hang onto a good job once hired.

Similarly, many companies lay off their quality assurance and documentation personnel first and add them back in last. Many of the QA personnel we talk with are considering roles far more junior than the roles they lost. It’s a great time to add these personnel back if you RIF’ed them (reduction in force...new verb) some time back.

On the other hand, if you are looking for relatively senior technical personnel such as developers, engineers, architects or DBAs, you are facing a shortage of qualified people. Three factors have had a tremendous bearing on this scene. First, a surprising number of technology workers have left Michigan to states with apparently rosier employment outlooks. Second, companies have been adding jobs for technology workers. The pace has been steady, resulting in a gradual reduction in the labor pool. Finally, fewer and fewer computer science graduates means fewer and fewer new candidates jumping in the pool. Cope with this by offering better salaries/benefits or longer contracts than you have been accustomed to since 2000.

Employees

Starting in 2000 and 2001, many technology workers lost their jobs to down-sizing or business closures. With the genuine glut of workers competing for the same positions, many people took what they could get—and held onto it. Salary cuts, high levels of uncompensated overtime, benefit reductions, etc., were all accepted for the sake of having a job.

If you are a software developer, engineer, architect, etc., and you have held onto a job that under employs or underpays you, now is a good time to revisit your options. Researching competitive wages to find out if you are compensated fairly is a good place to start. If you are not, it is a good time to approach your employer with the facts and to ask for review.

Or, if you are in a situation of underemployment, it is a good time to find out if you can be tracked for advancement with your current employer.

You can always reactivate your job search. Take your time. Get accurate knowledge of salary ranges for your skills and seniority. Brush up your skills by study or certification so that you interview well. And before you accept an offer, do copious research into the fiscal health of a potential employer.

Summary

If you want to hire now is a good time to give a call. If you are looking to be hired, please send us your resume!

John W. Stout is the founder and president of Stout Systems. He has nearly thirty years' experience in the software industry. He is also sought after as a technology speaker, presenting sessions at developer conferences and user groups. E-mail .


Which Database Should I Buy?
by K. Alan Robbins

Which database should I buy? A question often asked of Stout Systems, because we are not affiliated with any vendor and have worked with a wide variety of technologies. Choosing a database vendor for a new development activity, or migrating one database to another, is a decision of critical importance to a project. This article discusses the database market in general, with a more focused discussion around the four database engines most commonly considered.

The total revenue for relational database management systems was $15.2 billion dollars in 2006 (Source: Gartner Group Press Release, June 18, 2007). An unbiased analysis of who sells the most new database product is all but impossible to come by. The $15.2 billion figure includes service revenue to existing clients as well as new sales. IBM’s market share is inflated by large annual service contracts from the Fortune 500, many of whom are running legacy VM and DB2 databases on zSeries hardware. The same situation is true for Oracle Corporation, which receives considerable support revenue from its established user base. Both Oracle and IBM charge annually for patches and bug fixes; Microsoft does not.

Company

Revenue (millions)

Market Share

Oracle

$7,168

47%

IBM

$3,204

21%

Microsoft

$2,654

17%

Teradata

$494

3.2%

Sybase

$487

3.2%

Other Vendors

$1026

7.9%

Total

$15,213

Of the major players, Oracle and Microsoft have shown the most growth in the last two years, with Oracle’s market share growing by 14.9% and Microsoft’s growing by 28%.

When our clients contemplate new solutions, the choices most often discussed are Oracle, SQL Server, PostgreSQL and MySQL.

PostgreSQL and MySql are available as open source products (GNU GPL3 licensing) or with commercial GPL licenses that include support. Oracle is purchased directly from Oracle Corporation. SQL Server is purchased through an authorized Microsoft reseller. Oracle and SQL server come in a variety of versions from basic to "enterprise."

PostgreSQL (slang "post grez") runs on Windows, Solaris and various Linux distributions. It is an outgrowth of a database project at the University of California Berkeley and was the core of Michael Stonebraker’s Illustra startup. The latest version, 8.3, is available in beta form with release scheduled for November 2007. It adds full text search, a finished PL/pgSQL script debugger, and clustering code (ripped from Skype) to better accommodate load balancing and implement a limited form of parallelism. PostgreSQL is available with commercial support through EnterpriseDB, a startup company that employs Bruce Momjian, one of the key PostgreSQL developers.

On the negative side, PostgreSQL does not support replication out of the box, does not support partitioning of tables or indexes to any great extent, and does not include the sophisticated backup and restore functionality that comes with commercial database solutions. One must put together the development toolkit from a smorgasbord of open source options—some good and some bad. Development resources are always a concern.

From the developer’s perspective, PL/pgSQL bears remarkable similarity to PL/SQL. It is difficult to find unbiased performance benchmarks for any RDBMS, but the general sense is that PostgreSQL performance on Linux trails Oracle, which is not surprising given the cost deltas between the two products.

MySQL is an open source database engine that was originally developed for the Python programming language and is currently owned by MySQL AB. MySQL gets a lot of attention, but those who have lived with it humorously refer to it as "the best write once read many relational databases ever built." MySQL can be used successfully as a traditional read/write/update OLTP database for a small number of users. Under heavy load, however, MySQL is apt to crash unexpectedly on you.

If your requirements call for a replicated, read-only often reloaded instance, like you might deploy in a DMZ to be available over the World Wide Web, MySQL running on Linux is a very attractive option in terms of price/performance. Many users choose php for Web development in this environment. You can’t beat the price!

Comparing Oracle and SQL Server is in many ways similar to arguing theology; there are very strong feelings on both sides with strong emotional attachments to one or the other. Both vendors offer innumerable white papers "proving" that one is far superior to the other.

Oracle 11g was just formally released. It features a native PL/SQL compiler (no doubt to counter SQL Server’s new found ability to execute compiled .NET code). It also includes more sophisticated caching, fine grained dependency, virtual columns and more advanced partitioning. SQL Server 2008 is in the public beta phase. It features a new declarative management framework that allows the developer to define business entities (i.e. object models) as opposed to tables and columns and to query them using language integrated queries (LINQ), a form of structured query language that runs against an in-memory data structure. SQL Server 2008 continues to push the disconnected record set paradigm, adding the ability to replicate subsets of data to an occasionally connected client. Both vendors continue to enhance their business intelligence (BI) and data mining capabilities.

In general terms Oracle costs more, and for the extra investment you get a solution that runs a larger database (100GB and up) and scales up more easily. Oracle has been on the 64 bit UNIX platforms (R9000/AIX, Sun/Solaris, others) since these product’s inception. Microsoft is just getting its feet wet on the Itanium. It is generally easier to manage a single, large database server than a cluster.

Oracle runs on Windows, but is more suited to a UNIX variant. Oracle is developed on UNIX first and subsequently ported to Windows. SQL Server only runs on Windows (no surprise there) with a special "Data Center" edition of Windows Server specifically optimized to host a large SQL Server instance.

Oracle supports shared disk cluster scalability (RAC) with grids of four to eight servers. Microsoft counters with a federated approach, but there is really no comparison with respect to the ability to support automatic fail over and share memory between nodes. On the other hand, implementing and supporting Oracle RAC is notoriously difficult, requiring high end switches for server interconnects. If you prefer several commodity servers to one large, potential single point of failure server, and replicated instances don’t serve your needs, RAC is your best choice—but it should not be implemented as a cost saving measure. Both databases do simple replication schemes with ease.

Oracle does much better with repetitive, dynamic SQL, assuming that the SQL is executed multiple times within the same session. Oracle has the edge when accessing hierarchical data. The out of the box distribution for SQL Server includes a complete, highly integrated development environment that validates Microsoft’s reputation for the best developer toolkits. You get business intelligence tools, a report writer, a graphical data transformation package builder, and a high degree of integration with Microsoft’s .NET development platform. With Oracle you get the database and a mediocre set of Java based database administration tools. Oracle users usually source development tools from other vendors such as Quest Software. Both databases let you do everything from the command line, the preferred method of administration for seasoned professionals.

For the database developer, SQL Server has much better error messages. The friendly online development community contains a wealth of beginner to advanced level assistance. Oracle online resources contain a substantial depth of information, but are not nearly as beginner friendly. Both vendors have barely adequate documentation. Microsoft gives you a great basic reference that is difficult to navigate. Oracle gives you good navigation but no examples and obtuse reference maps that represent command syntax. In both cases using Google to find answers yields faster results that are right most of the time. SQL Server’s procedural language, T/SQL, is more BASIC like; PL/SQL looks more like C.

SQL server is ridiculously easy to install out of the box, and if you do no tuning whatsoever it will run acceptably. Oracle is fairly easy to install, but you must perform some configuration tasks in order to obtain reasonable performance. Once properly installed and configured, Oracle doesn’t get sick very often but when it does it really helps to know what you’re doing.

When dealing with the support teams for either product, the level of support received is directly related to the cost of the maintenance contract, both are poor to fair at the lowest level and absolutely superb at the highest level.

So which one should you choose? If you anticipate terabyte sized databases, with a room full of dedicated high priced database gurus, then Oracle is where you should start your vendor selection process along with DB2 and Teradata.

Less than 100GB database size the decision is considerably more difficult.

• Microsoft is the clear winner if you want an out of the box, single source, and highly integrated end to end development stack.

• If you’re a UNIX shop, you’ll probably choose Oracle or PostgreSQL.

• If you’re a Microsoft shop, you’ll probably choose SQL Server.

• If your requirements demand the features Oracle offers, albeit at a higher price, the decision will be obvious.

• PostgreSQL is certainly something to watch and consider if you are willing to live in an open source world and have development resources that are willing to learn it.

• MySQL is a niche product that works extremely well in the right situation.

K. Alan Robbins is a Senior Software Architect with Stout Systems. He has been architecting successful solutions for customers of all sizes for over 25 years, as well as managing teams of developers. When not writing code or project plans he is an active amateur radio operator and boater. Email .


Recent News

Stout Systems welcomes new employee Brian Skory (Technical Staffing Consultant).


 


Current Job Opportunities

View Our Candidates

Subscribe to Our Newsletter

Stout Systems, P.O. Box 2934, Ann Arbor, MI 48106 · Voice 734-663-0877 · Fax 734-663-7659 ·
Copyright © 1995-2008 Stout Systems Development Inc. All Rights Reserved. Trademark & Legal Notice. Site Map Design by Fast Forward