Principles of Software Development Productivity

There’s been a few developer "Bill of Rights" lists that have floated around.  These lists generally include creature comforts like dual monitors or a fast PCs.  There’s certainly a business case for fast PCs, and I’ve made more than my share of these business cases.  But, these things are mostly just goodies under the guise of productivity gains. I’m all for productivity gains—I personally hate wasting time on something that I don’t need to do and doesn’t add value.  But, software designers can’t simply use productivity as an excuse to get toys.  If the productivity gains are impetus enough to … Continue reading Principles of Software Development Productivity

Modify VS 2010 Template to Reference System.Configuration

Almost every project I create in Visual Studio, I invariably have to add System.Configuration to the references for that project.  As soon as I want to do much with app.config, I need to use something in System.Configuration.  Well, rather than continue to add that reference to future projects, I’ve decided to change the project template so I don’t have to.  The following is a description of how to do that. The project templates are located at C:\Program Files\Microsoft Visual Studio 10.0\Common7\ide\ProjectTemplates\ (replace "Program Files" with "Program Files (x86)" if you’re using a 64-bit version of Windows).  For this example I’m … Continue reading Modify VS 2010 Template to Reference System.Configuration

Getting Started Unit Testing with nUnit

Getting started with unit testing with nUnit is easy.  First download and install the latest version of nUnit, which can be found here: Next, you need to decide where you want your unit tests will live.  If you’re developing a shrink-wrapped system that will be deployed to multiple customers or clients, you’ll likely want to have an independent project to house your tests.  If you’re developing an enterprise system—and the software won’t be deployed outside your enterprise—then having the tests within an existing project (usually the highest-level project) is a valid option. Note: The only configuration I’ve been able … Continue reading Getting Started Unit Testing with nUnit

Flaws in the Microsoft Connect Process

The way Microsoft Connect works in terms of how a bug goes from being submitted to someone working on it (or closing it without working on it), is basically flawed. From a customer’s point of view, we post an "issue" that we’ve encountered and leave it up to Microsoft to fix the issue.  The problem is, most of the time, this isn’t what happens.  For the most part, the issue has no merit unto itself.  It’s a popularity game with Connect.  You have to campaign for people to vote for your issue if you think it should be fixed. I’m … Continue reading Flaws in the Microsoft Connect Process

Apple’s New iPhone SDK Licensing Changes are a Potential Win for Microsoft.

Microsoft is poised to release Windows Phone 7 (WP7) this year.  The success of any platform is the ability for users to run the applications they want and need on it.  That’s one of the selling features of the iPhone: the App Store.  The App Store has thousands of applications available for it.  It’s not really the fact that there are some lousy apps in there, it’s the fact that there’s choice and that adds value to the iPhone.  The iPhone isn’t just a phone that plays MP3s.  It can be much more than that. To a certain extent the … Continue reading Apple’s New iPhone SDK Licensing Changes are a Potential Win for Microsoft.

Platform Developer Creativity

Any platform that opens itself to 3rd party developers to develop software for requires that these developers be creative.  Without creativity the software that will be written for the platform will not promote it.  The platform will be viewed as second rate or not leading edge.  The quality of the software will end up being second-rate and the platform will end up being viewed as same. What does it take to promote creativity.  Well, that’s pretty subjective.  But, it’s easy to detect what hinders creativity.  Development tools and methodology restrictions hinders creativity.  When a developer is unable to pick whatever … Continue reading Platform Developer Creativity