Tuesday, December 19, 2006

Visual Studio 2005 SP1 Released

MS has released Visual Studio 2005 SP1. It contains over 70 improvements including:

  • New processor support (e.g., Core Duo) for code generation and profiling
  • Performance and scale improvements in Team Foundation Server
  • Team Foundation Server integration with Excel 2007 and Project 2007
  • Tool support for occasionally connected devices and SQL Server Compact Edition
  • Additional support for project file based Web applications
  • Windows Embedded 6.0 platform and tools support

More info from MS here. Download here. And finally, some suggestions for installing here.

Monday, December 04, 2006

Show the Current Year with Javascript

On a flat HTML site I was working on over the weekend, I had a need to display the current year for copyright information (You know, 'Copyright 2006'). I didn't want to hardcode '2006' in there, and in this instance I was stuck using static HTML, so no ASP or PHP. Javascript was the obvious choice.

I'm not an expert JavaScripter, but I thought this could be done in a single line of code like:

document.write(date.Year());

Not so. I quickly realized you need to instantiate the Date object, and get the current date from that. So my code now was this:

var time = new Date();
document.write(time.getYear());


I found the above code referenced on a few websites and it worked fine in IE6 and IE7. However, when I tested in Firefox and Safari, the year showed as '106'.

A little more Googling and I found that I needed to call the 'getFullYear()' property of the Date object. So my current code, which works in all the browsers I was able to test with is:

var time = new Date();
document.write(time.getFullYear());

Friday, December 01, 2006

Programmers Need Better Business Skills

In a well run development environment, business analysts (BAs) and programmers would communicate with each other to develop applications that can be developed in a timely, cost effective manner. BAs would consult with programmers about what kind of impact their decisions will have on a system, and programmers would ask questions of and offer information the help BAs make better informed decisions. I have not had the pleasure of working in too many well run development environments.

It seems to me that most programmers do not have an interest in the intricacies of the businesses they write code for, and BAs tend to think of programmers as 'doers' and rarely consult with them when making business decisions that involve technology. I don't blame the BAs, I think most programmers have put themselves into this situation.

I am shocked at the lack of normal business analysis skills of most programmers. Programmers need to understand the cost of developing and maintaining their code so they do not spend an exorbitant amount of time coding insignificant features. They also need to fully understand how their code is used once it's out the door so that they can develop apps that can be deployed faster and easier, used better, and just better meet the overall needs of end users.

I've consulted at four companies over the past two years, and while each company has it's own culture, at all four there is a definite line between business and technical units. It's an 'Us versus Them' mentality that I find short sighted and counter productive. It can be seen in the physical layout of most offices. Most offices put technical departments together where common interaction with business related departments is minimized.

I take a great interest in the business models of the businesses I work for. A few of the things that I want to know are:

  • What is the business model for the business?
  • Who uses the product or website I'm working on?
  • Why is the solution I'm working better than what currently exists?
  • Who is the competition?
  • What differentiates the business from it's competition?
  • What are the customers saying?

I feel that knowing about the business helps me write better code. I can scrutinize specs and offer suggestions for better ways to do things. Sometimes my suggestions are ignored or turned down, but sometimes they are accepted and time and money are saved. Lots of code has been written that does what it is supposed to do, but it is of no use if it is written for a company who is unable to turn a profit at the end of the day. My goal is to provide cost effective solutions that help businesses make money, which is much different from a goal of simply writing code that does what it is supposed to do. I don't think my job is secure if I simply write good code. My job is secure when I write good code that contributes to making money.

I've worked with many programmers who look at business specs as if they are written by a higher power. I don't write perfect code, and business analysts do not write perfect specs. I've written code that could be better, and I think it's great when a better way to code something is suggested to me. Likewise, programmers should strive to fully understand business specs and look for potential ways to improve them before jumping into the act of coding.

Finally, I would hope that programmers realize that having good business skills on top of good technical skills is a great way to advance your career. Having business skills is the only way to get out of your cube and advance to the level of project management or above. Business analysts with technical skills are also always in high demand. Who better to design a system than someone who can code one?