best practices Archive

  • From time to time, programmers sail into uncharted waters – the business and clients agree to give them some time to build a prototype and evaluate a new technology, or explore ways to get something done. A month or so later, after a software scaffolding is built to show how...

    How not to build a castle on a swamp

    From time to time, programmers sail into uncharted waters – the business and clients agree to give them some time to build a prototype and evaluate a new technology, or explore ways to get something done. A month or so later, after a software scaffolding is built to show how...

    Continue Reading...

  • A friend of mine has a problem – his team worked for months on a big system with great success, marvellous technical achievements and a very elegant architecture. However, the users don’t share his enthusiasm. They don’t appreciate the architecture, flexibility and openness to change. Somehow, they seem ‘blinded by...

    Blinded by the user interface

    A friend of mine has a problem – his team worked for months on a big system with great success, marvellous technical achievements and a very elegant architecture. However, the users don’t share his enthusiasm. They don’t appreciate the architecture, flexibility and openness to change. Somehow, they seem ‘blinded by...

    Continue Reading...

  • From the naïve view of an average enterprise software developer, the situation today is a bit insane - most customers will always choose more functionality and faster delivery over testing and documentation - not to mention GUI polishing. They will look you in the eye, tell you that they sincerely understand the software will have problems once it is live, and then come back furious when the software does not work. As if we were not all speaking the same language,  somewhere the meaning of 'it will have problems' gets lost in translation. Or maybe it's not the definition of 'problems', but the definition of 'done', or maybe developers and customers really come from different planets...<!--more-->

    Developers are from Magrathea, Customers are from Ursa Minor Beta

    From the naïve view of an average enterprise software developer, the situation today is a bit insane - most customers will always choose more functionality and faster delivery over testing and documentation - not to mention GUI polishing. They will look you in the eye, tell you that they sincerely understand the software will have problems once it is live, and then come back furious when the software does not work. As if we were not all speaking the same language, somewhere the meaning of 'it will have problems' gets lost in translation. Or maybe it's not the definition of 'problems', but the definition of 'done', or maybe developers and customers really come from different planets...

    Continue Reading...

  • Logs are external interfaces to software systems, and while normal external integration layer APIs are given much thought and care, logs are typically generated just by dumping ad-hoc messages, making them unnecessarily hard to use. Following these few simple guidelines can make lives of both developers and support much easier...

    Logging anti-patterns

    Logs are external interfaces to software systems, and while normal external integration layer APIs are given much thought and care, logs are typically generated just by dumping ad-hoc messages, making them unnecessarily hard to use. Following these few simple guidelines can make lives of both developers and support much easier...

    Continue Reading...