I want a C# program that duplicates the functionality of a program called FakeTwin, and adds a couple of bells and whistles. FakeTwin itself crashes on Windows 7, I don't require that ;-)
Basically it selects a source directory and a destination directory. It creates a "copy" of the source directory to the destination directory except that the files in the destination directory are all of 0 bytes length. This gives you a quick way to inventory what you have on an offline external hard drive. (Among other things).
I don't like the fact that every time the program is run it makes a new directory structure, it would be better to have some sort of diff report and then apply the diffs. Perhaps versions over time could be stored in Git or something like that.
Finally, if you copy a file into the fake twin directory, you ought to be able in one operation to copy those files to the drive when it's back online.
User story. I'm downloading all episodes of a television show, but only a few at a time. I download them using a bittorrent client, so it can take a few days. I don't want to carry my external drive around with me, so I download files to my C: drive. I then copy those files into the fake directory on my C: drive in the location I want to have them in on my external drive. Later, when I hook up my external drive, I hit a synchronize button, which copies all the real files out of the fake directory and into the real directory. It then sets the size of the files in the fake directory to 0. I might also reflect any deleted or added files on the external drive in my fake directory at that point.
The basic functionality should not take too long, but getting the interface right may take some time. The original interface sucks. I envision something more along the lines of "Beyond Compare", but that's up for discussion.
## Deliverables
I prefer to work with Test Driven Development, and I prefer my workers do the same. This will be an Agile approach, though I don't require pair programming for something this simple.