... self discipline and motivation

Every developer should know self discipline and motivation.

Why is this important?


There are many elements to software development. The chances are that you aren't going to enjoy all of them. Unfortunately though, there will be times when you have to do them. If you don't: certain bugs won't get fixed; features may not get added; customers may be lost; users will be frustrated; documentation won't get written; and your software won't be as good as it should be.


What do you do once you know this?


You find a way to to motivate and discipline yourself to do the things you'd rather not. There are lots of possibilities. What is important is that you find what works for you and don't give up until you do.


What do you think?
Is this something every developer should know? Have you say in the comments.

... not to use mapped drives

Every developer should know not to use mapped drives.

I'll start by admitting that this is something that really annoys me. I'll also admit that it may be appropriate to use mapped drives if, and only if, you are creating a mapped drive to connect to a directory that only you will ever need to connect to. An example being your personal area on a server.

If you're not sure what I mean by "mapped drives" or want to confirm that what I mean and what you understand are the same, take a look at these two Wikipedia articles:
Drive mapping
Drive letter assignment

I'd sum it up like this:
Rather than have to specify a long file path, such as:
\\aServer\folder\directory\another folder\another directory\my files\file.ext
It is possible to tell Windows that the letter X should be mapped to \\aServer\folder\directory\another folder\another directory. This means that it is now possible use the drive letter X, when specifying the path to the file (X:\my files\file.ext)

Now I've got the boring part you already know out of the way.

DON'T DO IT!

Why not?

Because using mapped drives causes problems down the line.

Need to set up another machine?
Lost your mapped drive settings?
Which drives do you need to map? and where?

Someone else wants to know where a file is? Telling them it's on Drive T doesn't help them unless they know where you have drive T mapped to. And why would you remember? You mapped the drive so you wouldn't have to.

Mapped drives provide no meaning.

//Server1/Departments/Support/Customers/Acc01234/history.crm - has meaning.
H:\history.crm - has little.

They are user specific.
Different users can map the same drive letter to different paths.
This can lead to all sorts of problems. Especially if there are files of the same name in the different mapped paths.

They add unnecessary and artificial constraints.

Using a mapped driver anywhere in the development or build process can cause problems.

Very rarely is the development of a piece of software done by a single person, on the same machine for the lifetime of that piece of software. If more than one person will be working on an application, ever. Requiring a mapped drive will just be one more thing to configure and this flies in the face of what every developer should aim for. Removing all unnecessary complications from the development process.

What do you do once you know this?

Ensure that the software you create software that can support file paths in either (any) format.

There should definitely be no excuse for ever creating software which can only connect to a file if using a mapped drive. You'd just be creating problems for other people.


What do you think?
Is this something every developer should know? Have you say in the comments.