Software Creation Mystery -

Archive for June, 2008

First Anniversary of

Dear Readers,

This June is the first anniversary of I want to share few notes about this glorious event. I dreamed about having a blog for few years, but I didn’t want to spoil our great web space with just another miserable stream of poor writing. Even one year ago I had at least three good reasons why I shouldn’t blog:

  • I’m not a native English writer. Prepositions and articles are still rocket science and source of troubles for me (Russian doesn’t have any articles at all). Composition of good English sentences is a serious mental endeavor. I love English, but I’m missing a lot of language nuances, idioms, abbreviation (e.g. WTF) and touching expressions that children learn from fairy tails, TV shows, mischievous friends and cursing adults. English is not music for my right brain, but hard parsing work for my overloaded left brain, at least now.
  • I wasn’t born as a good writer. I don’t have natural talent to seamlessly compose beautiful flow of words that spark imagination, amaze people and make them forget about their work, wives and even computers. On the contrary, it is much easier for me to produce long boring and difficult to digest logical statements than to create masterfully prepared delicious food for your brains.
  • I don’t know much. I live not too long, I didn’t read as much as I want, I know only fraction of what other people know and I didn’t experience many software projects.

These good reasons and my sanity didn’t stop me and I’ve started blogging. I wasn’t able to keep to myself my interest, amusement and passion for creating software.
Software development is much more than writing code for computers, implementing design patterns and algorithms (I should admit – this is very interesting part too).

  • People. They add vibrant life into this dry process. Software development without people is similar to the birthday party without beer and guests. People bring power of human intellect, creativity and ability to solve impossible problems. But they add many exciting difficulties: we should understand each other, learn to work and think together and deal with our irrationality, personalities and feelings. Oh, yes, I forgot to mention that people write programs.
  • Problems. Customers and users expect that software could solve their craziest wishes. And they are right – software becomes important part of our human civilization: it empowers businesses, science and societies, and makes life of kids and adults much more fulfilling (and entertaining). The problems become more wicked and interesting as we are building systems for unending people needs and push limits of what is possible for computers. Our civilization becomes hooked on software more than on oil, gas and coal. Therefore, civilization need smart guys who could deliver software for challenging demands to keep the whole world going 🙂
  • Craft. Software development is one of the few remaining professions that still brings enjoyment of building the product from idea to a complete solution with own hands. This profession requires pride for own work and traditions of craftsmanship combined with high level of mastery, knowledge and skills. Good programmers are intelligent creators and masters and aren’t narrow-minded pluggable work units for solving purely technical tasks. Software development is so complicated that we won’t see serious competition from soulless AI soon.

What are results after one year?
52 posts, more than 45,000 visitors and more than 400 feed subscribers.

And I found much value for myself:

  • Better knowledge – most of the articles are product of my learning. As I don’t know much, I find interesting questions and problems and try to answer for myself. In addition, presenting an answer for other people is much more challenging and require much deeper understanding. My blog is one of the best Universities for myself 🙂
  • Improved communication – I’m becoming more comfortable with English and its expression power – my brains become tuned to this music and even sometimes cooperate to produce nice sentences. Also I learned that the way information is delivered determines what people will get and understand. I’m trying to enhance methods of delivery (visuals, concise ideas and better organization) and make my writing more approachable and interesting. And yes, I know, I’ll never be Shakespeare or Tolstoy, but I’ll be happy if people find something worth of their attention in this blog.
  • More meaning – this blog adds more positive moments to my predictable and sometimes boring life. Opportunity to share, discuss ideas and connect to others people makes my life more meaningful and interesting. And this inspires me to spend more time writing than playing on a computer or drinking beer.

What do you think about this blog? What I can do to make it better?

My Dear Readers, thank you very much for your valuable time spent here! I’ll do what I can to make this blog worth even more time from your busy lives.

Happy birthday! Cheers…

Truly yours,

P.S. I have another blog-related dream that I want to implement soon. I want to create separate blog where other people could share their stories about software projects, interesting situations and software development crowd, their managers and customers. What do you think? Does anybody want to share any stores? Please write me to if you are interested, have stories, comments or ideas about this new blog.

Comparing Intelligent Software Evolution to Chaotic Biological Evolution

Software Evolution is similar to a Bible Story: we, software creators, have a plan and goals and pursue them to create the perfect solution. We carefully select and add new features according to our grand design. We try to keep design clean and optimal. Things sometimes go wrong and the software system goes berserk, but we intentionally intervene and fix the problems to continue fruitful functioning of the system.

Biological Evolution is a different story: chaotic raise and fall of different species, without any plan and goals. New traits and variations appear all the time and many are useless or even harmful. Small modifications accumulate over time, cause significant changes and emergence of new species, better adapted for the evolving world. Survival of individual organisms and species is the matter of chance, pressure from environment and competition with other organisms.

Intentional growth of software versus chaotic evolution of organisms… Do they have anything in common?

Biological Evolution

In biology, evolution is the process of change in the inherited traits of a population of organisms from one generation to the next.

Species – a group of organisms that can reproduce with one another and produce fertile offspring.
Population – a localized group of individuals belonging to the same species.
Traits – particular characteristics of an organism.
Genes -portions of DNA molecule, which control inherited traits.
– complete set of genes within an organism’s genome.
Phenotype – the complete set of observable traits that make up the structure and behavior of an organism. These traits come from the interaction of its genotype with the environment.
Variations – the variation in phenotypes in a population reflects the variation in these organisms’ genotypes.

Most of the genome of a species is identical in all individuals of that species. However, even relatively small changes in genotype can lead to dramatic changes in phenotype: chimpanzees and humans differ in only about 5% of their genomes.

Read full post >>

Software Creation Mystery -
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .