Wednesday, April 02, 2008

"An order of magnitude better"

We have been looking for one of the best programmers at my work. Since my supervisor no longer can do the leg work of phone screening and setting up interviews, I have volunteered to take this hat. It has been a revealing exercise.

There is a consensus in the software development industry that the best programmers are "an order of magnitude better than the average ones" Spolsky.
A Guide to Hiring Programmers: The High Cost of Low Quality, revsys.com

"there is at least an order of magnitude of skill difference between the average programmer and the best programmer, and maybe even two orders of magnitude" Barnes.

"many studies have shown order of magnitude differences in the quality of the programs written, the sizes of the programs written, and the productivity of the programmers" McConnell

"[Bill] Curtis observed order of magnitude differences among the programmers" McConnell

Skill Disparities in Programming. Atwood.
I am by no means one of the best programmers. I generously consider myself in the upper end of average. One of the things I remember from my interview with Vitrix years ago was that they wanted to hire people smarter than themselves.

With the help of another programmer and a few resources on the web, I have gathered a list of interview questions that discover the skills and qualities of a developer. I am sure we will find a match with someone passionate about effective software development.

Here
is our job posting, by the way. If you think you fit the drive, curiosity and skills to join us, come on! Even if you think you are shy on experience, take a plunge. We will be gentle.

Tuesday, April 01, 2008

C# XML documentation

We are using sandcastle to generate help documents from xml comments of our code.

Remember, /// will get you started.

C# XML documentation comments FAQ

MS Windows Workflow Foundation

Someone as work mentioned that we might consider MS Windows Workflow Foundation after hearing us describe the project we have been creating for the last many months. Following are some notes I took in my introduction to it.

ASP.NET and Windows Workflows Foundation

Manage application processes with Windows Workflow Foundation Brian Noyce

Link to a poster of Microsoft .NET Framework 3.5 update to the Commonly Used Types and Namespaces.


Notes from Michael Stiefel on Windows Workflow Foundation
1 of 4

"Workflow is the automated processes of a Business Process" Reliable Software

6:21
Reusable Business Activities
Separate Workflow from Activity

This workflow is hosted somewhere. Sharepoint?

Workflow runtime

9:50
Concept of Host
Concept of Activity
Concept of Workflow

10:30
The dream is these activities will be manipulated by Business Analysts in a drag and drop way.

2 of 4

5:30
Activities are not small atomic. These are long processes.
Programmers cannot stay in the back room. You are not of high value. You are just a coder.