Software development

Making mistakes: Part 4

There can only ever be one common assembly, and it isn’t yours. This is my favourite, and it can be found in almost every bigger project. I’ve seen it with every single client without exception, and I’ve done it myself until a few years ago. Most of us know it as that dreadful assembly called Common, Core, Base, Internal or similar (I’ll use Common for the rest of this article). It’s also known as the dark spot in a project, that everybody is required to use and that nobody wants to touch. A place for coding horrors that just keeps on growing into a swamp of nightmares. Too graphical and exaggerated? It’s the place where developers like to put all the code that multiple components of a project… Continue Reading…

Software development

Making mistakes: Part 3

Never underestimate a coder’s pride. I did that a few years back, when I joined a project with a new customer. The team consisted of four developers on site, led by a senior software architect and a group manager. Three more developers were also hired from another country to help create highly encapsulated features. This was the first customer project where I was presented with continuous integration, gated check ins, automated tests and code analysis tools like SonarQube. The software architect – let’s call him Stephen – had put a lot of effort into this development process, and he had done a really great job with it. Naturally, I was very enthusiastic about the project and I immediately felt that this was going to be great fun. We… Continue Reading…

Software developmentVisual Studio

Making mistakes: Part 2

Delete all your binaries before a release build. An incredibly easy way to mess up your project is forgetting to delete all your own binaries before building and testing a release candidate. It’s so easy to miss that most companies run dedicated build and test systems that enforce a clean environment before any meaningful action is taken. Not all developers can enjoy that kind of safety at work, and even less of us at home. But first, let’s go ahead and dig a little deeper into how Visual Studio treats assembly references, and why this is so important. There are three kinds of assembly references that I am aware of and each one has its specific behaviour. There is the project reference that we get a lot in… Continue Reading…

Software development

Making mistakes: Part 1

Publish your code. This is by far my biggest mistake, and it took me roughly ten years to realize it. As it turns out, it’s responsible for a wide range of mistakes and problems further down the line. I wish our professors had told us to publish everything, but at the time programming was treated more like a craft than a science. Then of course, publishing your own code is terrifying as it is. Everyone can see it and judge you based on its quality. Your name will be all over it and the internet never forgets. That thought alone is a big obstacle and the less experience you have, the harder it is to overcome. However, it’s not so much about how everyone else will perceive your… Continue Reading…

Software development

Making mistakes: Introduction

All developers will eventually make their share of mistakes during their careers, and that’s OK. We all learn from defeat and evolve through experience. Naturally, the bigger portion of that process will happen at the very beginning when everything is new and exiting, and we tend to bite off more than we can chew. Most mistakes are temporary flaws in our skill set and will be ironed out quickly while we learn. But there is the other kind that is a little harder to shake, mostly because they are harder to figure out or are just hiding well enough. That last kind is the one I find the most interesting and the most dangerous, which is why I’d like to talk about it for a bit. I had… Continue Reading…