The Art of Writing Functional Specs (Part 3) – Spec Shapes

  In Part 2 I mentioned that one way to harm to readability of a spec was to not understand the audience or what they need from the spec. Let’s expand on that. Not all specs are the same, and different situations call for different approaches.  I can categorize these situations into some major buckets….


The Art of Writing Functional Specs (Part 2) – The Most Important Thing About A Spec

I tried thinking of all techniques I have seen or have used in making great specs. I put all those techniques in a crucible and boiled away everything until only one principle remained. Here it is: “Specs must be readable”     That’s it. And as obvious and trivial as it seems, that central message…


The Art of Writing Functional Specs (Part 1) – What is a Functional Specification?

It’s tempting to say a functional specification is a document that … blah blah blah requirements, scenarios, glossary. design details, etc. It’s tempting to say that because it is true – true but it misses the bigger picture. A spec, yes, physically is an artifact – a document. You’ve seen quite a few of them,…


The Art of Writing Functional Specs (Part 0)

In 16 years I’ve written an a lot of functional specs. I’ve written them in small teams and in big teams and every size in between. These specs covered many areas: email protocols, server components, user experiences, networking, graphics, telephony, image processing, printing, scanning, real-time communication, security, formats and encodings, APIs, object models, and many…


Merging My Assemblies with ILMERGE

I’ve been working on my VisioAutomation project for years now – it appeared on CodePlex in 2009 if I recall correctly but existed for a few years before that. In any case, as the library has grown, one thing I was never satisfied with was the number of DLLs that needed to be included to…


Easily Create MSIs to Install PowerShell Modules

Developed a PowerShell module lately? Want to be like all the cool kids and have an MSI installer for it? Don’t want to learn WIX? Ok, I can help you. I have a small script I developed that does exactly this. Essentially you point it at a folder, give it some info (like the name…


Remove Source Control Bindings from Visual Studio Solutions and Projects

Ever need to share your Visual Studio solution or projects with someone? The Problem You ZIP up a folder with your code and send it. If your project is under source control – one that is integrated with Visual Studio – you will likely hear from the recipient of your code. They will be complaining…


Need help translating from C# or Python to PowerShell?

I love PowerShell but keep forgetting the syntax for common things. So, I wrote up a small guide to help me translate from one to the other    


Visio C# Automation Samples with NuGet

Writing C# code to control Visio and looking for some sample code? There’s a NuGet package that can help you