My Schedule

Speaking

EclipseWorld

October 28 - 30 - Presenting two sessions on OSGi.

Events

JavaOne

May 6 - 9 - Attending JavaOne in San Francisco.

The opinions expressed on this site are my own, and not necessarily those of my employer.

Software failure statistics are abundant and serve as clear evidence that we must reform software development. While industry claims an IT labor shortage is the motivating force behind outsourcing, the greatest factor is directly related to our inability to deliver value-add software. As organizations continue to lose faith in IT as a trusted partner, the services we offer are little more than an ample commodity, and the search for cheaper labor will persist. But, there is no IT labor shortage.

Read more

The H-1B Fraud

Filed Under IT Labor, Industry | 3 Comments 

Some of you may have seen this video explaining the placement of phony job ads that are subsequently used to prove to the Department of Labor that there is an IT labor shortage. Lou Dobbs also got in on the mix as shown in this YouTube video, or take a look at the transcript. This ammunition is used to secure green cards for H-1B Visa workers. It’s repulsive. Bottom line - there is no IT labor shortage.

Here are some more numbers from the Dobbs video. Universities are pumping out over 300,000 bachelors, masters, or PhD degrees annually in computer or information science, math, and engineering. The Department of Labor predicts the average yearly job creation in those fields to be 120,000 jobs.

I’m a believer in competition, but it must be fair. Data suggests that on average, H-1B Visa Holders are paid between $12,500 and $20,000 less than their American counterparts. I’m not anti-H-1B. I’ve worked with a large share of very good developers who were H-1B visa holders. Unfortunately, the H-1B visa program is being used to replace the jobs of U.S. IT professionals with cheaper labor.

A two pronged approach is required to fix the problem and requires a professional code of conduct between employees and employers. The result is a win-win-win situation for all involved. First, we need not eliminate or minimize the H-1B visa program, but instead must bring the salaries of visa holders up to levels equal to that of their American peers. Second, we must reform IT through incremental delivery of quality software. Until these happen, U.S. citizens will continue to suffer job loss due to anti-competitive and fraudulent practices.

IT Labor Shortage Myth

Filed Under IT Labor, Industry | 8 Comments 

There is no IT labor shortage in the U.S. There is no dearth of software developers. Instead, this shortage is reinforced through repetitious pronouncements by industry of the impending labor crisis, and is used as outsourcing ammunition. In reality, organizations outsource because of two simple and related factors:

  • Business believes IT costs are too high and by outsourcing IT labor, cost is reduced.
  • IT doesn’t deliver value-add business software.

Read more

New Job New Skin

Filed Under Industry, General | Leave a Comment 

March 31st marks my first day as an Analyst with Burton Group working in the Application Platform Strategies group. To an extent, this is a career change for me. Since I’ve been in IT, I’ve worked exclusively on enterprise development projects. Over the years, I’ve played most roles on the software development team, but my favorite has always been as the guy who gets his hands dirty writing code. Through writing and speaking, I’ve enjoyed sharing these experiences with others. To this point, however, any writing or speaking I’ve done has always been an extracurricular activity, making it feel like I’ve always had two jobs instead of one.

My role as an analyst means I’m no longer a software developer working in the trenches. The reality over the past couple years is that I was working less in the trenches anyway. As I continued to shape and express my software development beliefs, I also began to gravitate more toward leadership roles, though not always intentionally. Whereas I once coded all day every day, I now code only a few hours each week. Instead, I spend more time mentoring developers, evaluating emerging technologies, and guiding teams through the process improvement quagmire. But yes, through it all, I still code even if it’s of my own accord.

My new role offers some exciting opportunities. Foremost, I’ll be working for a great organization with a stellar reputation. I also feel I have a single job that that combines my passion of technology, software development, and software process with that of my desire to learn and teach. I’m excited for what lies ahead, knowing that I must be careful to remember the important real world lessons I’ve learned. I intend to continue writing code, hopefully experimenting with new languages, platforms, and tools. I look forward to working with new organizations, and meeting new people.

Since I’m moving onto what feels like a career change, I’ve also decided to update my web sites (Yes, I love to hack!). First in queue is this blog, which now has a new skin. I’ll also be moving content away from my home page and onto this blog. Eventually, the code I write will reside on Google Code. Probably other presently unforeseen changes too. I’m excited about what lies ahead, and my expectations are high.

Getting Blasted

Filed Under Industry, General | 1 Comment 

I got blasted for the following quote in a recent eWeek article:

“If you’re in a large environment that is bureaucratic, filled with politics and has a [software development] process like the waterfall flavor of RUP [Rational Unified Process] what do you do?” Knoernschild asked. “It’s been my experience that the number one thing you can do is continuous integration. That can spawn so many business benefits.”

The blaster suggested that I have no idea what I’m talking about because there is no “waterfall flavor of RUP”. What I believe the blaster missed is the tongue in my cheek when I made the comment.

As is often the case, the quote didn’t capture the context of the statement. Many teams, when transitioning to an iterative process, commit a number of mistakes. One of the more common mistakes is to establish iterations centered around the traditional lifecycle phases. When I made the comment, I also pointed out that the “waterfall flavor of RUP” typically consists of the first iteration being the requirements iteration, followed by the design iteration, followed by the construction iteration, followed by the testing iteration, etc.

For the past 5 months, I?ve been working on a .Net project, my first of the sort. Until then, I’d always been a developer on some pretty large Java efforts, some small PHP efforts, and some personal experimentation with Ruby. But I had done absolutely nothing with .Net, and the opportunity to gain experience with another major platform was exciting. Now, I’m back on another Java project, and I am not sad to leave .Net behind.

I know Microsoft has always done a great job ensuring their technologies interoperate well, having experience with such interoperability going back to my days as a PowerBuilder and VB programmer using OLE automation to integrate with Microsoft Word. With Microsoft, there always seemed to be an easy way of doing things using Microsoft technology. Unlike Java, this meant less time trying to sift through the bad frameworks in search of the good one, and more time implementing a solution using Microsoft’s platform. Ironically, I didn’t appreciate this as much as I expected. I feelpretty strongly about architecture and design, and the easy way wasn’t always the right way. However, what startled me most about .Net wasn?t the platform, the C# language, or my dislike for WinForms development, but the .Net community and culture surrounding it.

Microsoft has a fledgling open source community compared to many other platforms. While a plethora of competing open source projects means you’ll make a mistake in choosing every once in a while, even the dead open source projects contribute new ideas and innovation within the Java (ok… and Ruby) communities. And many of the .Net open source projects are little more than ports from their Java peers.

While Microsoft claims they support open source, their actions speak otherwise. Look no further than the Visual Studio Express EULA limiting 3rd party extensibility, placing the TestDriven.Net plugin in violation of the license agreement. There’s been a bit of banter going on surrounding the decision by Microsoft to disallow this plug-in. The irony here is that the TestDriven.Net plugin is only free for personal users, not professional or enterprise users, further illustrating my point. It’s not just Microsoft, but the Microsoft community. You don’t have to look far to find other examples.

I recognize that there are some very good open source projects underway in the .Net world. I run Mono on my Mac. CSLA is a full-stack framework that allows you to hit the ground running. But the culture surrounding open source on the .Net platforms seriously lags behind what I’m accustomed to with Java.

I spent yesterday at Architecture and Design World in Chicago, and led two talks – the first on Continuous Integration and the second on GOF Patterns. If you’ve not been to a conference organized by Dr. Dobbs Events group, I’d highly recommend one. For the past few years, I’ve been attending SD Expo, Architecture and Design World, and SD Best Practices, and repeatedly hear conference attendees remark on the quality of the events. A staple of these conferences is their avoidance of vendor specific talks, and emphasis on the latest and greatest techniques.

These conferences are a melting pot of ideas and individuals, and they offer excellent sessions for all. I spoke to developers using Ruby/Rails, Java, and .NET to develop enterprise web applications, software engineers developing embedded systems in C++, project managers interested in agile practices, and enterprise architects seeking to learn more about SOA. The range of sessions is fantastic. While one instructor is preaching the virtues of MDA, another is discussing Agile Modeling. The opinions and insight offered not only by the instructors, but the attendees, is invaluable to all those in attendance. There’s a lot of excellent discussion following the sessions, throughout the halls, and into the happy hour and BOF sessions. There really is something for everyone. If you haven’t had an opportunity to attend one of these events, I’d highly recommend it. Ask your peers who have been there, I’m sure they will too.