rc3.org

Strong opinions, weakly held

Tag: software development (page 15 of 16)

Links for April 2nd

The genesis of agile software development

Recently the IT Project Failures blog reported on a billion dollar project failure at the US Census Bureau. The idea was that the 2010 census would be taken with handheld devices rather than paper forms, and Harris Corp was awarded a $600 million contract to design the devices. The project is now $2 billion over budget, and the entire thing may have to be scrapped because it wasn’t built to GAO standards.

Obviously on a failure of this size, there are any number of areas where one can find fault. To me, the fundamental problem was starting such a massive project in the first place. According to the FDCA Web site, the contract was awarded on March 31, 2006. The RFP was released in late 2005, and planning for the project started in 2004.

I have no idea how you plan six years in advance for an IT project. The landscape is certain to change so much over that time that whatever you put in the RFP is likely to be obsolete by the time the project goes live, and who wants to go live with an application in 2010 that feels like it was built in 2004? Agile methodologies were a backlash against exactly this sort of project. When you read about failures like the one at the US Census Bureau, it’s easy to see why.

New blog: Agile Testing

My friend Stan Taylor is a QA guru at Borland, and has started a new blog to document his experiences with agile testing. I’m very much looking forward to his insights in this area, as Borland has been walking the walk on agile development for awhile now.

Links for March 12th

  • Jon Udell interviews Ward Cunningham about how the Eclipse portal exposes its innter workings by way of reports on test results, and the advantages the resulting transparency provides. Really, really interesting stuff.
  • Bruce Schneier discusses a report on the lack of security in implantable medical devices that provide remote access.
  • Wired Compiler links to Prism, a Firefox add-on that makes it easy to treat Web sites like standalone desktop applications. It provides a lightweight approach to creating apps like Mailplane.
  • The Morning News: Six-Word Reviews of 763 SXSW MP3s by Paul Ford. This is insane, and I mean that in the best possible way.
  • Postalicious is the WordPress plugin I used to produce this post.

Is there an IT skills shortage?

Duke professor Vivek Wadhwa has research that shows that there’s no shortage of IT skills on the job market, in spite of the assertions of executives and analysts. Some other researchers agree:

“No one who has come to the question with an open mind has been able to find any objective data suggesting general ‘shortages’ of scientists and engineers,” said Dr. Michael Teitelbaum, vice president of the Alfred P. Sloan Foundation, in testimony to Congress last fall. “The RAND Corporation has conducted several studies of this subject; its conclusions go further than my summary above, saying that not only could they not find any evidence of shortages, but that instead the evidence is more suggestive of surpluses.”

Dr. Ron Hira agrees there is no shortage of skilled IT workers. In his capacity as a professor of public policy at the Rochester Institute of Technology, a fellow at the Economic Policy Institute and co-author of the book Outsourcing America, he has pored through Bureau of Labor Statistics data and university graduation rates and found that the United States has consistently graduated more than enough computer scientists and engineers to fill the IT jobs available in the country. Similarly, there he has seen no in unemployment rates to indicate any kind of IT worker shortage

The researchers do have a point in saying that wages don’t appear to reflect a shortage:

“It doesn’t add up,” Wadhwa said. “We live in a free economy. If we were sitting in a government controlled economy it would be one thing, but in a free economy what happens is that when shortages begin to develop is that prices rise and the money compensates for the shortage.”

On the other hand, what I’ll say based on personal experience is that it is very difficult to find competent software developers. I have had the opportunity to participate in the hiring of a number of developers over the years, and it has never been easy to hire developers that I actually want to work with. In 2003, when I had a hard time finding a job and when a lot of people were out of work, it took a very long time to find a solid Java developer to join the team where I worked. We went through at least 100 applicants and interviewed 10 or 20 people before we found someone qualified to do the work — straightforward Java Web application development.

It hasn’t gotten any easier. So I’m not sure what to think about these kinds of articles. The market is complex, but from where I sit, there’s an acute shortage of really solid programmers. I’d say the same for software testers and systems administrators as well. There are a lot of people out there who claim to be able to do those jobs, and who have experience in those fields, but they’re not actually any good at what they do.

We live in this sort of bizarre world where the market looks very inefficient from up close. Salaries seem to indicate that there’s no shortage of talent, but at the same time it’s very difficult to find and hire talented people. Salaries do not tend to vary greatly based on talent, either. Theoretically the most talented programmers are working at companies with stock options that are increasing in value, but I’d be shocked to find that the best developers at Google or Apple make much more money than the worst developers, given equivalent experience. Maybe the academics need to do more research.

The physics of control

When Apple announced the iPhone, there were no provisions whatsoever for third party applications. If you wanted to use the iPhone, you used Apple’s applications. People (myself included) went nuts over it, and Apple responded by telling developers to write Web apps.

Many people strongly suspected that Apple had plans for more than that from the beginning, but nobody really knew what those plans were or when they would be announced. Last October, Apple promised to announce support iPhone-native applications in February, and yesterday we saw what the landscape for those applications would look like.

In terms of ease of development and ease of deployment, the iPhone looks great. The development tools are free to use, and it only costs $99 to register as an iPhone developer, which enables you to distribute your applications through the store application that will be installed on every iPhone as of June. The catch is that there are a number of restrictions on what developers are allowed to do, and that deployment to the iPhone is tightly controlled by Apple. The only way to get your app onto the phone is with iTunes or the phone’s store application, and you have to pay Apple 30% of your licensing fee for the privilege.

It’s the classic walled garden scenario. Apple’s garden looks very nice, but they are intent on remaining the sole gatekeepers when it comes to controlling the iPhone (and iPod Touch). Clearly Apple still has not surrendered to the idea that iPhone is a general purpose computing device that users can tinker with as they wish.

John Siracusa has some interesting musings on whether this walled garden approach can really work, and on what the implications are for independent developers. As he points out, the trend in the computer industry and the mobile device industry is toward open platforms, and you have to wonder successful Apple can be resisting that trend.

Will Apple’s strategy still work five years from now, if Android takes off among handset providers and independent developers? I doubt that Apple is willing to find out. It’s a lot easier to surrender control than it is to reassert control once surrendered. It seems to me that Apple is being very conservative with the iPhone, but at the same time, that they’re listening to customers and relinquishing control at their own pace. At the same time, they have people doing massive amounts of market research for them by jailbreaking and augmenting their phones. I’m certain that the team working on the iPhone SDK was keeping track of what the pain points were for the people writing unauthorized software when they were designing the SDK.

I think it’s a mistake to assume that the business model for iPhone developers will be the same two years from now as it will be in June when iPhone 2.0 launches, and I think it’s a mistake to assume that the API restrictions imposed on developers then will be the same as they are now, as well. Smart analysts will be trying to figure out why Apple is imposing those restrictions. Once they’ve cracked that case, they’ll probably have a good idea of what has to happen for those restrictions to be lifted.

Matt Raible on picking a framework

Matt Raible (now a full time employee of LinkedIn) posts about how he came to work there as a result of a consulting project where he helped them evaluate open source web frameworks against a framework that they had built in-house. In the end, he recommended enhancing their internal framework to include some of the best attributes of the open source frameworks, and he was hired to build a team to do just that. Anyway, the post contains a lot of wisdom about making these kinds of technology decisions.

The developer’s conception of time

I realized today that for me there are only two time horizons. There is “same as forever,” which is any period of time that seems like more than enough to finish whatever I have to do before my deadline, and there’s “not enough time to finish,” which is any shorter amount of time.

Against TDD orthodoxy

Google developer Cedric Beaust argues that treating orthodox Test Driven Development as some kind of panacea is a mistake, a position that I find it difficult to argue with. In fact, I find myself rejecting nearly all dogmatic software development philosophies. I like to read about them, but in the end I just steal the parts that work for me and do what seems to make the most sense.

My dirty secret: I almost never write a test, watch it fail, and then fill in the code necessary to make the test pass. That seems gratuitous to me.

An ugly hack

How do auto makers deal with problems where a parts on a car vibrate noisily? In some cases, they just add some weight to the part that vibrates. This is sort of a sneak preview of a post I’m working on about good hacks versus bad hacks, and how to tell them apart. And maybe another post on what a pain it is to lay out HTML forms using semantic markup in a fashion that works in all of the popular browsers.

One of the biggest challenges for software developers, I think, is figuring out which hacks are good, and which hacks are bad. In the meantime, I put adding weight to car parts to keep them from shaking in the same category as rebooting your application server every night to dampen the effects of a memory link in your code. It may be a necessary hack for the short term, but it doesn’t really cut it as a long term solution.

Update: Be sure to read the comments. What seemed to me to be a hack is actually a pretty elegant solution.

Older posts Newer posts

© 2025 rc3.org

Theme by Anders NorenUp ↑