Software development
Refactoring: Replace Exception with Test
Exceptions are mechanism to transport information about errors in object-oriented code. But they come with performance hit when not used carefully. Still we find a lot of code when exceptions are not avoided but used as a control mechanism in code flow. This post introduces replace exception with test refactoring that helps us to avoid at least some exceptions.
Refactoring: Improving the Design of Existing Code
Although I bought refactoring book by Martin Fowler years ago it is still valid. I call it one of the timeless books about coding and I consider it as a mandatory reading specially for novice programmers who are entering the field. Of course it is also useful handbook for those already in business. This refactoring book covers and organizes most of changes we are doing to source code every day and it greatly helps us to understand the nature of those changes at crafting level.
Why NOT measure progress using subjective percents
The first busiest part of year is successfully survived and it’s time to go on with business tuesday blog posts again. As I’m working on some progress measuring features for some time I will document here my ideas about this topic on more general level so business people can also read about my experiences and ideas. This time we make deep-dive to percents that describe how much task in progress is completed.
Working at home
Working at home is modern way to work but it is often very challenging too. Over years I have heard different stories from different people about working at home. Some of there people have been successful on it while others went back to office quickly after couple of days of trying. Let’s see what makes working at home challenging and what you need to get your home office running.
Ten keys to successful outsourcing
It’s business Tuesday again and this time I will share with you some of my experiences on getting started with successful outsourcing. Outsourcing may sound like something simple or something too troublesome but if you do your home work well then it is possible to succeed and have a cooperation that really makes your life more rich by many aspects you maybe don’t expect at first. Here are some of my experiences.
Software rescue services
Time for business Tuesday post. Source code gets rotten, systems get slower, every fix takes a lot of time, estimates for implementing new functionalities get more and more utopic, customers are mad, users are mad, developers are exhausted – struggling with problem like this? Maybe it’s time to use some software rescue services?
Microsoft .NET: Architecting Applications for the Enterprise
Enterprise applications need good architecture to survive ever-changing demands of customers. At same time these systems must be stable, convenient and easy to use which leads us to need of good architecting skills. Some customers need desktop applications while others need web-based and mobile applications. Making good architectural decisions is not easy and this is where brilliant book Microsoft .NET: Architecting Applications for the Enterprise by Dino Esposito and Andrea Saltarello comes in. (more…)
How innovation can turn to burning hell
During years in software development business I have seen many cases when layering in system architecture is made innovative way and later innovation turns out to be the worst nightmare developers and their managers have ever seen. Years ago I got very painful experience on how things can fail with unapproved bleeding-edge technologies that were selected to support sales to customer. Let’s take a look at hell for a moment. (more…)
Using Visual Studio database post-deployment scripts in practice
Visual Studio database projects support database post-deployment scripts you can use to make additional modifications to database or to insert some test data. In my work I use database projects and post-deployment scripts very often. In this posting I will introduce you how to use post-deployment scripts to make dealing with database and data easier for developers.