Skip to content

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.

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.

The Tivo Out of Box Experience is REALLY bad

It is amazing to me just how bad of an out-of-the-box experience that you can have with Tivo.  For all of the good things that the product does, it’s like there’s a completely different company managing their out-of-box experience.

I wanted to summarize for folks the situation that I ran into recently when I purchased a Tivo unit with DVD recorder for the church I attend.  I purchased it to record and store content from a specialized satellite subscription that the church purchased.

To start, you must use the phone line for initial connectivity and there is still no network connection on the unit I purchased.  You can add a USB-based network card, however, it’s a separate accessory that you have to buy.  Not a big deal in the grand scheme of things, however, it can make logistics difficult as it did for me.  To get the unit started you must complete the setup calls (not setup call as seems to be the common parlance.)

So I plugged the unit into a line that I thought was an analog phone line — it turned out to be a digital phone line — and the modem burned out… when the replacement unit arrived I plugged it into the line for the fax machine (which I new was analog).  It completed it’s first call and then asked me to setup the A/V sources.  I go back to try to tell it that I want to specify my sources, since specialized satellite wasn’t one of my options.  It forces me to make the 10 minute setup call again because I transitioned back before the call to change the sources.  I get to the same screen and eventually turn the unit off and take it back to the room where the satellite is connected.  When I plug it back in it forces me to go back through the setup again — including the phone call … which I can’t make because the phone is in another room.  (Are we beginning to see the insanity?)

So I decide I’ll bring it home where I have phone and video together and then move it back to the church.  That’s great.  I start the process all over and get through the first call and the setup relatively quickly.  (I was doing other things at the same time.)  Then it goes to make a second call.  After the third failed attempt I replaced the relatively long phone cord with a short cord.  It’s still not working.  Each attempt takes five minutes or more because it doesn’t restart the download and in fact it does a cleanup activity prior to starting.  Needless to say it’s a painful experience.  I have Vonage for one of my phone lines, the one I was using.  So I eventually tried the other line and it worked … and at the end it says that the unit will be working for between four and eight hours and I shouldn’t unplug the system until it’s done.  It doesn’t indicate how I will know if the unit is done, nor does it indicate if there’s a safe way to power down the system that won’t cause any issue.

What irks me most about this whole situation is that less than a dollar could have put a flow chart of setup activities in the box.  Something that would have shown me the steps I’d need a phone line for, the overall process, and how to deal with common issues — however, that level of thought wasn’t put into the out of box experience — in a company that spends so much time working on user interfaces, ascetics, and other “user touch“ aspects.  It’s unfathomable that they wouldn’t put more thought into the out of box experience.

I’m now sitting with a Tivo unit on my desk that needs to go back to the church.  I’ve invested hours getting the unit to work for something that frankly should have just powered on, started up and let me use it as a glorified VCR without any of the issues I ran into.

By contrast, I’ve had a replay TV unit for three years now.  The out of the box experience was easy. I had the option of using either a phone or the network.  As I remember it, there was a basic set of instructions for what was going to happen and what I needed to do.  It was an extremely installation…

Now I need to see if I can figure out how to get the unit to tape from the satellite feed back at the church or if I’m not done dealing with the setup process. At least I can connect it to the network, if I can figure that out…

The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP

Book Review-The Rational Unified Process Made Easy: A Practioner’s guide to the RUP

It’s very in vogue to describe your software development process as RUP.  Describing the current methodology as agile (XP, Crystal, Scrum, etc.) evokes too many questions, but describing the methodology as Rational Unified Process, more frequently RUP, leads to fewer questions but puts you ahead of those who are still running a waterfall process.  However, in many cases RUP isn’t really the methodology being used, it’s simply renaming some of the processes and artifacts that were done for waterfall with new names.

The beauty of the book The Rational Unified Process made Easy: A Practitioner’s Guide to the RUP is that focuses not on enumerating the artifacts that one might use with RUP but rather focuses on the core concepts, fundamental precepts, and spirit of RUP.  In this way it intentionally steers the reader away from the natural tendency to try to implement every artifact, to create the highest ceremony process possible.  It provides a balanced view on how to utilize RUP to run effective, successful software development projects.

It also contains a role-by-role review of RUP.  This provides a view of the process from each role’s perspective.  The benefit of this is to condense the amount of training that must be done to get everyone working on the same page.  While they can not be considered a direct replacement for training, the chapters are a good start to helping the team member understand what RUP is all about.

Even in a world enamored with agile, RUP still has it’s place.  It’s proven for larger projects, and provides a path to an iterative model — essential to every form of agile development.  If you’re trying to get to agile RUP is a good stopping point along the way — and the book The Rational Unified Process Made Easy is a good way to understand how to do RUP.

Recent Posts

Public Speaking