I've always been interested in the fundamentals underlying everything in life, and with respect to creating software this approach remains steadfast.
What are the principles? What is the fundamental truth behind...? What's really going on here? What truly matters?
Creating software of the highest quality
Engineering as a discipline is, in its highest form, always striving for more quality, but balanced by cost and effort. Great software engineering is the production of extreme high-quality software at reasonable cost.
I hope in this blog to cover much of what I've been through in the trenches of real-world software development. Things I think are important when it comes to quality software engineering.
We all want our software to be fast, robust, easy to use, etc. It is worth noting that most of these quality factors we talk about are discernable to end-users and other stakeholders in a software project. These are external factors.
The factors applicable to a piece of software that are only relevant to the developers creating it we can term internal factors.
While internal factors are obviously a huge and important topic of discussion, at the end of the day, it is the external factors that really matter. Little does the user care if the developers of an application used object-orientated techniques well, or had really readable code, if the web application is super-slow to use, does not operate 100% correctly in terms of the requirements, or is just simply cumbersome and difficult to use.
External software quality factors
Correctness, functionality, ease-of-use, responsiveness, resilience, flexibility, reusability, timeliness, ...
I'll be covering the above in one or more future blog posts...
Software as art
Art is the pursuit of beauty. Art answers to no requirements or demand. Artists create demand through their creations.
I have always had the heart of an artist. I want to, and am driven, to create something truly amazing for no reason at all.
Most software literature seems to talk towards software development as a science or as an engineering discipline. I am hoping to use this space to contribute some views to the community of software development as an art form.
Artistic factors in software
Beauty, harmony, simplicity, elegance, synchronicity, coherence, ...
Software for wise purposes
I have seen the advent of the personal computer and the internet in my lifetime so far. We could argue that after the coming of the agrarian age, and the industrial revolution, the integration of software and the internet into society is the 3rd biggest shift to hit humanity.
In the coming centuries, it is those with the greatest software that will increasingly hold power in the world. Future powerful changes in the world will be created by software developers. Facebook, Google search, and the internet - these were all created by small groups of technologists and software developers.
So if we look at the challenges facing humanity how can we use software to make the world a better place?
How can we use software to bring individuals, humanity at large, and separate nations together?
How can we use software to empower those that are not empowered, and bring more relative equality to the planet?
How can we use software to help all individuals in society to create powerfully in the world?