About This Blog
This blog is a journey to discover essence of the software creation – one of the most useful, intellectual and creative human activities.
- Why do we have so many challenges and failures in software development?
- What are the forces behind?
- How can we tame and use them better?
- What is Software Development?
- Economic Forces and Software Genesis
- Human Forces and Software Creators
- System Forces and Software Evolution
I’m Andriy Solovey and I’m an author of this blog. I have more than 15 years experience in software development as a developer, a software manager and an architect. I am passionate about building good, reliable and useful software. This blog is inspired by years of battles on software fields and years of peaceful joy from delivering good solutions.
After graduating from University with degree in Mathematics and Computer Science, I was dreaming about creating complex software systems and using all possible theories and approaches from Math and Computer Science. The reality was more prosaic – building financial systems, which were relatively simple, but with many annoying business exceptions. However, I started to realize another complexities – messy code, unclear ideas from other project participants, bugs, many technology nuances and, finally, users, who are alway unhappy and want to change everything. It was too far from complex, but pure and logical world of science.
First insights came from books like Steve McConnel’s Code Complete, NASA software methodologies and RUP – establish sound software engineering methods and standards. It helped, but the essential problems stayed. Agile wave with Extreme Programming opened eyes on more interesting and effective approaches – adaptive and people-oriented. It moved emphasis from technical and process superiority to human and evolutionary wisdom in software development. Study of user experience and psychology gave some understanding what system people would use and enjoy.
However, most problems are still there – we are too far from perfection in creating good, reliable and useful systems. And this is endless source of topics for this blog.