Retrospective – Media

Recently I decided to take a photo for a presentation about information overload.  I’ve submitted it to when (and if) it’s accepted it will be in my profile.

The interesting part was looking back at the media I’ve used over the years since a lot of it made it into the photo…

  • 5.25“ Floppy disks (Commodore 64, PCs, etc.) [Didn’t make the photo]
  • QIC Tape (Of a dozen or so capacities — remember Jumbo?) [Didn’t make the Photo]
  • 3.5“ Floppy disks
  • 4 MM tapes (2GB, 4GB, 8GB, 12GB, 20GB, etc)
  • ZIP Drive
  • Jaz Drive
  • 8MM tapes (5GB, 7GB, etc.)
  • DVD/DVD-+R
  • Magneto-Optical (1GB, called MO)

I also enjoyed cleaning up wondering why I was even bothering to keep the ZIP disks since I carry a 1GB miniSD card with me in my phone at all times and generally have 512MB of USB thumb drives too.  The MO is cool to have around since it’s rare, but there’s positively no reason I can think of to use the ZIP drive in today’s market.

The only reason I kept the floppies was because occaisionally I have to flash a motherboard BIOS.  How about you what are you holding on to?


GROK – A Definition

While giving a recent presentation (I did two this week), I mentioned the word GROK and I mentioned I didn’t know where it came from only that it seems to be “hip”.  (A word which is no longer “hip” itself.)  My working definition was that it was to completely understand, to take into one’s self.

One of the gentlement in the audience was kind enough to mention that it came from a Robert Heinlein book, Stranger in a Strange Land. A quick search and I came up with this.  It’s a much more complete definition than the one I was using.

Was I the only one on the planet who didn’t know where GROK came from?


DLLCache Folder

I’ve run into the DLLCACHE folder twice in the span of three weeks so I thought I’d post a link so that people can find out where they can find out more about it, and particularly more about containing it’s size.

DLLCache is designed to protect you but it has on occaision chosen to take up nearly every available byte of free hard drive space.



Beta: Active Directory Redirect Web Part

I just completed a web part that will redirect a user to the URL located in their Web Page property of their active directory account.  (wWWHomePage)  This is useful for directing users to their personal home site on SharePoint.  You can create a site called home, drop the web part on the site and then when users hit the page they are sent to their home.

Send me an email if you want to beta test it.


Presentation: The Impact of Coding Standards and Reviews on Quality

For those of you who were at the Indianapolis Quality Assurance Association (IQAA) meeting tonight, you can find the presentation at the link below:

Article: Exploit SharePoint List Definitions to Maximize Your Brand

You can customize site definitions and add functionality to list editing tools, but if your branding and tools strategies aren’t implemented in your list definitions, then your site isn’t completely following those strategies. Find out how list definitions work, what their relationship is to site definitions, and how to change the appearance and the structure of the list.

When you’re trying to change the way that SharePoint appears and operates to something more in-line with what your organization needs, you’ll find that modifying the site definition to change the appearance is a good first start. As you get more advanced, you may decide that you need to add functionality to the SharePoint list editing tools, or make other changes that impact how the user edits data in SharePoint. Ultimately, however, pushing branding or your additional tools down and into the site whenever a list is created means changing the list definition.

While you can create site templates with changes bundled in to implement your specific branding and tools, when a new list is created, it is created using the rules stored in the list definition. If your branding and tools changes aren’t in that list definition, then the new list that the user creates won’t follow your branding or tools strategy.

List definitions also allow you to define new fields in a list—but not just new fields to store data, which can be done from the user interface, but also the ability to define new types of fields that behave in new ways. For instance, it is possible to create a variant of the links list that allows you to specify whether you want the links to open up in a new window or not. This additional flexibility can be essential to implementing enhanced list types.


Article: The best developers are built not bought

When you get right down to it, the best way to acquire the most talented developers for your project may be to build them, not buy them.

In reading about agile development, I’ve been struck by the fact that both traditional software development techniques and agile methods rely upon highly skilled developers to ensure success. It’s no wonder that there’s a focus on the best developers given that it’s generally accepted that the level of performance for developers with similar experience can differ by a factor of ten or more. A great deal of development is still done in what is called “hero mode” development, where a developer or a small group of developers essentially will the software into existence through their dedication and tenacity.

So while the evidence is overwhelming that you need good developers, the question remains, where do you get them?


Article: How Software Development is Like Fast Food Restaurants

I’m not a big fan of fast food restaurants. Their food isn’t always healthy. The menus are necessarily constrained so that it’s easy to get bored with the food they offer. While I’m not a connoisseur of great foods, I know that gourmet and fast food don’t often get used in the same conversation. Most attempts to make fast food gourmet have failed miserably.

However, I end up eating from a fast food restaurant a few times a week. Why is that? Well, because it fits well with my schedule, it’s convenient, and strictly speaking it solves the primary problem. It is food and after eating it, I’m not hungry.

Software development has many of the same issues as someone going to a fast food restaurant. Everyone agrees that there are healthier ways to eat and better ways to develop software but in the end, they settle for what is convenient and what works within their constraints, be it time, money, or something else.


Lunacy has a name: OOP Is Much Better in Theory Than in Practice

I was doing more digging in the area of software development improvement and stumbled across the article “OOP Is Much Better in Theory Than in Practice” by accident.  (It was referred to by a Design Patterns/GoF anniversary article I was reading.)

While I believe that Richard Mansfield has a few solid points (like few people understand OO, it’s more intellectually challenging than procedural code (my words), etc.)  However, I fundamentally disagree that OO is not the right way for every mainstream business application to be written.  I understand that real-time systems, operating systems, and a variety of other specialized applications shouldn’t use OO as their fundamental design foundation, but in just about every other case, the benefits seem to far out weigh the down sides.

This is just a reminder to me that we have a long way to go to get everyone to understand not only the how of OO but the why as well.


Article: What are you teaching your software developers?

If your software developers are learning how to be software developers through their experience at your organization, perhaps you should ask what you are teaching them.

Most organizations don’t have a formal apprenticeship program for software developers. There is no journeyman for software development. However, most software developers today learn as much through their interaction with other developers as they learned during their formal education.

So if your software developers are learning how to be software developers through their experience at your organization, what are you teaching them? It’s time to evaluate what the software developers in your organization are learning.

The need for education

As an industry we still suffer from project failures, cost overruns, poor client satisfaction, and a general malaise. Failure rates for software development projects are wildly different depending upon who you listen to. Publicly reported rates vary from 5% at the lowest to over 70%. While neither of these numbers is particularly believable they illuminate the fact that there is still a problem. If software development was steadfastly producing quality software all of the numbers would be in the same range.