The Years of Experience Myth


what software developers do best is learn.

Employers should be looking for passionate, driven, flexible self-educators who have a proven ability to code in whatever language


Requiring X years of experience on platform Y in your job posting is, well, ignorant. As long as applicants have 6 months to a year of experience, consider it a moot point for comparison… Platform experience is merely a baseline, not a differentiator of real importance.



If a developer is looking for a particular tech that you don’t know, my strategy has always been
to be up front, and say “I don’t know it off hand, but I can buy a book and learn it fairly quick.”



Some people work for 5 years and gain 5 years of experience. Some people work for the same 5 years and gain 1 year of experience 5 times.


MSFT hiring mantrais “Hire for the company, not the job.”


Smart is good, “know-it-all” is bad.


Software development depends very much on communication between team members. The biggest issue on software teams is making sure everyone understands what everyone else is doing… If we use my evidence-free guess as the basis then to get double the productivity we need to quadruple the team size. So our average talent team needs to have forty people to match our ten talented people – at which point it
costs twice as much.

…but perhaps the greatest contribution a talented team can make is to produce software with greater internalquality. Since talented programmer tend to produce good code-bases, this implies that the productivity advantages compound over time due to internal quality too.


…any true measure of software development productivity must be based on delivered business value…

I might argue that a successful project is one that delivers more business value than the cost of the project. ..



Via [CodingHorror] & [MartinFowler]



Posted in Misc. 2 Comments »

SQL: Group data by weeks

– Group by weeks
starting on Mondays

select count(OrderID) as numOrders,

min(dateadd(day, datediff(day,’19000101′,OrderDate)/7*7, ‘19000101’)) as WeekStarting,

min(OrderDate) as EarliestOrder, max(OrderDate) as LatestOrder from

group by datediff(day,’19000101′,OrderDate)/7

order by WeekStarting


via [SQLTeam]


The Paradox of the Active User

…Users never read manuals but start using the software immediately. They are motivated to get started and to get their immediate task done: they don’t care about the system as such and don’t want to spend time up front on getting established, set up, or going through learning packages.

The “paradox of the active user” is a paradox because users would save time in the long term by learning more about the system. But that’s not how people behave in the real world, so we cannot allow engineers to
build products for an idealized rational user when real humans are irrational.

We must design for the way users actually behave...(not how we expect them to behave – or how they tell us they will behave)

via [CodingHorror]

Why Office Gurus Are Bad

…it is common for software teams to have its members silo themselves into specializations. One person maybe, the “reports” guy, while another maybe the “database” guru. Allowing members to specialize can be dangerous for a number of reasons



a. Hit By Bus Test


If person X was hit by a bus today how well would your team survive?


As a need for survival, either individuals choose (or are assigned) to work in very niche partitions of a project or in a legacy code base. The result leads to a
knowledge bottleneck which can present dangerous situations to a business



b.Create Tunnel Vision


When people specialize they tend to get tunnel visioned into their niche. No longer does the generality of development interest them, but only their one specific technology. As the saying goes, If all you have is a hammer, everything looks like a nail.


So what is the antidote to the office guru? A healthy blend of:

  • Knowledge Sharing
  • Open Minds
  • Code Reviews


Via [codesqueez]

BizTalk Custom Pipeline: Add Custom HTTP Header

@”“SenderID:ABC\r\nMessageType: 001”);