Software

There are 10 entries for the tag Software

Anatomy of a "Small" Software Design Change

File this one away for the next time your boss comes in and asks, Yeaaah, I’m going to need you to make that little change to the code. It’ll only take you a couple hours, right? Software has this deceptive property in which some changes that seem quite big and challenging to the layman end up being quite trivial, while other changes that seem quite trivial, end up requiring a lot of thought, care, and work. Often, little changes add up to a lot. I’m going to walk through a change we made that seemed like a no-brainer but ended up having a...

Thoughts on ASP.NET MVC Preview 2 and Beyond

At this year’s Mix conference, we announced the availability of the second preview for ASP.NET MVC which you can download from here. Videos highlighting MVC are also available. Now that I am back from Mix and have time to breathe, I thought I’d share a few (non-exhaustive) highlights of this release as well as my thoughts on the future. New Assemblies and Routing Much of the effort and focus of this release was put into routing. If you’ve installed the release, you’ll notice that MVC has been factored into three assemblies: ...

The Cost Of Breaking Changes

One interesting response to my series on versioning of interfaces and abstract base classes is the one in which someone suggested that we should go ahead and break their code from version to version. They’re fine in requiring a recompile when upgrading. In terms of recompile, it’s not necessarily recompiling your code that is the worry. It’s the third party libraries you’re using that poses the problem. Buying a proper third-party library that meets a need that your company can be a huge cost-saving measure in the long run, especially for libraries that perform non-trivial calculations/tasks/etc... that are...

The Technological 7-Year Itch

Scott Hanselman writes a thought provoking post that asks the question, Is Microsoft Losing the Alpha Geeks? An interesting question, but troublesome to make sense of, let alone answer. First of all, how do you define “Alpha Geeks”? Who are they? Paul Graham would lead you to believe that alpha geeks are the influencers who use Macs and lots of parenthesis to write code. By that definition, the alpha geeks were never there or left a long time ago. But I don’t think this is a fair definition of alpha geeks. Certainly there are still alpha geeks who love writing...

Write Readable Code By Making Its Intentions Clear

I don’t think it’s too much of a stretch to say that the hardest part of coding is not writing code, but reading it. As Eric Lippert points out, Reading code is hard. First off, I agree with you that there are very few people who can read code who cannot write code themselves. It’s not like written or spoken natural languages, where understanding what someone else says does not require understanding why they said it that way. Hmmm, now why did Eric say that in that particular way? This in part is why reinventing the wheel is so common (apart...

Art of the Job Post

When I was a bright eyed bushy tailed senior in college, I remember wading through pages and pages of job ads in Jobtrak (which has since been absorbed into Monster.com). Most of the ads held my attention in the same way reading a phone book does. The bulk of them had something like the following format. Responsibilites: Design and develop data-driven internet based applications that meet functional and technical specifications. Use [technology X] and [technology Y] following the [methodology du jour] set of best practices. Create documentation, review code, and perform testing. Required Skills and Experience: Must have...

I'd Like To Be In Joel's Shoes

Of course that assumes that Joel wears a size 9 and a half. Once again the Joel Cycle takes another turn.  The cycle goes something like this: Joel critiques something or other. Bloggers counter Joel’s claims, many with thoughtful counter arguments. Soon a flood of comments and posts start to turn a bit ugly and form around two camps: The Joel is an idiot why do you even read him? camp and the Joel is successful, what have you ever done that you can disagree with him? camp. Rinse and Repeat It really is an interesting phenomenon to watch...

Premature Optimization Considered Healthy

Some computer scientist by the name of Donald Knuth once said, Premature optimization is the root of all evil (or at least most of it) in programming. Bah! What did he know? Of course we all know what he meant, but when you take his statement at face value, the claim is a bit vague.  What exactly is it that is being optimized? Well speed of course! At least that is the optimization that Knuth refers to and it is what developers typically mean when they use the term optimize.  But there are many factors in software that can...

Coder's Bill of Rights

Just sticking my head above water long enough to take a breath and to link to some rubbish called the Programmer’s Bill of Rights that Jeff Atwood declares on his blog. I don't understand this guy.  You let this sort of dangerous propaganda spread and software departments will become much more efficient and be able to build better systems with less money.  You realize what that means, don't you?  Companies will be able to get more done with less people.  For those who lose their jobs because of this, blame Atwood.  Then again, if you’re reading his blog, you're probably not the...

Open Source Recruiting Is Fundamental

Update Corrected my pop-culture iconography mix up. Thomas Eyde brings up a great point in the comments section of Scott Hanselman's post about SandCastle and the death of NDoc. It's sad to see good projects die, especially when programmer support is a main reason. But on the other side, it's not that easy to join these projects. How many of them advertise? How often do we see "Developers wanted on [your favorite project]"? I think these projects must advertise what they need. Do they need C++ expertise? Java? C#? UI design? How do we know what to do? Where are the tasks listed? How...