Tuesday, July 31, 2007

The "bulletproof" deployment

Nothing can slow down a developer's rise up the corporate hierarchy faster than a botched up deployment that negatively affects customers, clients, and the internal staff.

Though it is impossible to dress your deployment in a vest that is 100% bulletproof, there are several things that can be done to ensure that the majority of your deployments will come out unscathed.

1. The first and most important thing that can be done to make the deployment go smoothly, is to bulletproof the code. One of the practices that has made this easier is called Test Driven Development (TDD). This technique involves writing your unit tests before writing the code and using those tests to ensure that the software functionality works as intended. A friend recently brought an article to my attention that shows how much of a impact this type of development can make on a project. The results show a staggering 50% reduction in bugs when using TDD. You can view the document at
http://maximilien.org/publications/papers/2003/Maximilien+Williams03.pdf.

2. Keep a list of any problems that come up during the actual deployments or in the application after the deployments. Use that list to perform last minute testing on future deployments for both the deployment environment and the software functionality. Try to put as many of these tests into automated functionality tests (Smoke Tests) as possible.

3. Keep a check list of activities that need to be performed to prepare for deployments. Some of these activities may include creating "release" builds, updating web references of dependant software solutions, and notifying any enterprise integration partners of the upcoming release.

4. Implement a code freeze with as much time as is needed to really pound on any areas of the application that have changes, as well as do an overview of all other functionality. Have as many people as possible beat on the system and document any issues that arise. Have one person in charge of determining what issues should be fixed for the release and what issues should be logged for a fix in a future release.

5. Finally, after the deployment is finished, have several people access the application and run through various high level tests, which hit the most used functionality.

Good night and happy deploying!

Monday, July 30, 2007

Getting ahead in IT

I've known many IT professionals, throughout the years, who have wondered what it takes to move up the corporate ladder. I've contemplated this question many times and compiled the following "top 5 list" for moving up in the IT world.

1. Dress for success

Good:

The best advice that I've ever been given is to dress for the job that you wish you had. If you want to work in the mail room, then by all means continue to wear the jeans and t-shirt. If you want to be CIO, start wearing clothes that resemble what you expect a CIO to wear.

Even Better:

Plan your clothes based on your audience. I once read a sales book that said something like “wear clothes that are one step up from those that you are trying sell to". To move up the Corporate ladder you basically attempting to sell your qualities as a package. To get ahead you need to separate yourself from others while not looking like you're brown nosing.

2. Improve your communication skills

Good:

Improving your communications skills will help you in all areas of life, but especially in IT. Developers are known for poor communication skills, yet these skills are a must for those looking to rise through the ranks. To improve your skills, read books on the subjects of writing and public speaking. Also, take the occasional class. Most importantly, re-read your emails and be professional at all times.

Even Better:

Take the leap and go for that MBA. This degree will greatly improve your communication skills and will most certainly propell you upward.

3. Plan, Plan, Plan

Good:

Develop your planning skills by seeing how others go about creating action plans for similar goals. Look to anticipate questions that might come up in that Dev. meeting or conference call. Continually refine your processes and look for ways to improve.

Even better:

Decide where you want to be in 1, 5, or 10 years and make a detailed plan for getting there. Find others who are already there and figure out what path they took to get there.

4. Workout

Good:

Working out several days a week will keep you fresh and will put you a head of most of the other IT people out there. Also, let's face it, appearance does count.

Even better:

Include working out with a quality diet. A quality diet is 80% of the battle for loosing fat or gaining muscle and it plays a huge role in how quickly your mind works and continues to develop.

5. Become the expert

Good:

Finally, you have to become the expert in your field of choice. Some ways to do that are:

- Be quick to volunteer for projects (the more you have done, the more you will know)

- Read technical books on your desired subject area

- Gain a basic knowledge of other technologies that may not directly relate to your position at the moment.

- Keep an eye on new technology and be prepared to share your thoughts on that technology.

Even Better:

Start a blog about what you are learning.