Archive for December 2008
Reading headlines recently, it is easy to forget that many companies and industries are actually hiring technical talent at this time. Betterdot’s clients are actually doing quite well, or so it seems. One client, a retailer in the food service industry, is doing brisk business selling affordable meal options to cash-conscious customers. Another client, a health care provider, still needs to provide essential services to Ontarians. Yet another client, a major financial organization, has demonstrated a commitment to invest and inovate through this recession. With more people looking for work, one would think there are more good candidates available thus making the hiring process easier. That just isn’t the case. Economic uncertainty works in mysterious ways. Solid talent, people who take initiative, communicate, deliver and meet deadlines, are staying put. Now is not the time to job hunt and jump ship. These outperformers are also the last ones to be let go. Other individuals, who are either less commited, have a lower productivity or just don’t perform on par with their peers, are often the ones being let go when budgets are cut. Hard times trigger organizations to seek efficiencies, to do more with less and to run a tight ship. Anyone who doesn’t fully engage himself/herself runs the risk of being deemed superfluous. So while there is bound to be strong individuals currently looking for work, this is by no means certain, nor are they easy to find. Organizations will need to commit extra efforts in screening candidates (and checking references) to ensure the individual fits the times and will be a good long term fit. Which brings me to the following, somewhat shameless, plug: if you are struggling to find the right candidate, talk to us. Discovering and working with strong technical talent is an important part of our business.
The last few years have seen the emergence of an entirely new type of software development. Enterprise development has become primarily declarative, where components are assembled and initialized by a framework layer for a particular purpose. This is of course what Spring does. Other frameworks, such as Hibernate, allow us to quickly map (and generate) objects to database tables. Together, Spring and Hibernate have materially decreased the time it takes to build, maintain and evolve complex enterprise software. But until more recently, user interfaces, no matter how mundane, still had to be developed and integrated by hand. While this makes sense for an Ajax-rich, complex and highly customized page, it is a harder to justify for a basic administrative screen managing a couple of entities (“product codes”, “districts”, etc…). Inspired by the popular Ruby On Rails, but based on Spring and Hibernate, Grails is the Java-community’s answer to this problem. The pace at which fully database-bound entities can be created and fully managed by a user-interface makes Grails a very good fit for rapid prototyping. It also lends itself well to quickly producing administrative screens, a mundane but important task (and often one that is initially passed-on due to budget constraints). But this is not likely where it ends. Grails is after all based on Spring, Hibernate and Groovy, a powerful scripting language for the Java platform. This means Grails-generated screens can be further customized and integrated.
It wasn’t so long ago that I wrote about the promise and the shortcomings of cloud computing. This model which allows businesses to run their operation on a shared computing infrastructure and only pay for the resources they use has quickly become very compelling. Technically, many of the earlier limitations (limited OS choice, no background threads) have been eliminated. Operationally, cloud computing allows a business to focus on software and features, not setting up and maintaining hardware. Financially, the pay per use model alleviates the need to buy extra capacity for peak-periods. The monthly costs involved are similar to lease payments on the hardware alone, with the bandwidth and hydro charges thrown in. Unless an organization has an existing infrastructure with untapped capacity, or unless the nature of the business doesn’t allow data to be stored remotely (or in the United States), cloud computing is, in my mind, a very compelling option for go-forward web deployments.