These are at the core of every solution we build.
As a developer you constantly need to educate yourself to ensure that you are implementing the best possible solution. You then need to revisit your decisions with your next project to ensure that you are not falling behind on technology. A decision that was perfect yesterday might be completely wrong tomorrow.
If you do not want to spend hours on supporting what you have built yesterday you need to ensure that your solution is solid. Solid doesn't mean that your solution is without flaw but that your solution will provide you with enough information if an incident occurs you can replicate and solve the incident as quickly as possible. No solution is perfect...
Complex business problems need to be solved with simple solutions. This enables us to move on to the next exciting project, If you ever need to provide a fix for a solution that you build last year and it takes you more than a day to understand your own code you probably need to simplify. You also need to keep the points of failure to a minimum as every point of failure needs to be monitored and supported.
We are providing solutions to a very demanding world and our solutions needs to be available 24x7 from anywhere on any device. The design needs to guide the user in how to use the system and minimise the cognitive load required.
Choosing the right technology is a very important part of providing a solution. Technology must enable you to provide a solid, simple and responsive solution within the demanding timeframes of today's business. Technology is the enabler!
I'm looking back over my 15 years of Software Development, that is from the time that I've started working as a software developer and not including everything I've done before that. Software development has never been a career for me. Every system I've ever implemented became a part of me and I became part of it. If I think about it that way, I have a digital footprint running all over South Africa impacting various people daily (hopefully in a positive way, but hey, nobody is perfect). The question in my mind is this, is software development a career or a lifestyle. When you go home do you switch off from all the development or do you still think about that awesome implementation and the impact you have on the world (small or large).
Out current exciting projects.