14 November 2005

Of Music and Software Development

Musicians and Software Developers have some few interesting things in common. There are musicians that performs well and plays well but does not know the conventions of notes, staff and tempos, they can only play well with chords and tablatures. These musicians are parties' and funerals' life, but the problem with them is that they can only play music that they have heard and memorized before and they rehearse specific titles of songs.

On the other hand, there are musicians that are called "sightreaders". Sightreaders knows their instruments and every intrinsic formalities of music very well, they rehearse with scales and exercises more than specific song titles. On the eve of performance they can play musical pieces that they never heard before without rehearsal and by just reading through a given musical piece, and will play along well on it without the audience noticing that they didn't actually rehearsed.

In software development, especially in Java. There are developers that knows BEA Weblogic and can deliver results with it but does not know the whole sense of the J2EE architecture. There are those who knows messaging with Fiorano, but that don't understand the standard interfaces of the JMS specifications. These crops are basically the "Funerals'" cream. A lot on the list can go on. This kind of developers are very limited to delivering results with limited options and they are expensive(salary and the tools of their trade).

The "sightreaders" in this area are obviously different. They are mindful of the whole "Process" instead of specific tools, they are very comfortable with any application servers regardless of vendor as long as it honestly complies with the J2EE spec. They can write high-performance codes in any SQL-based relational database without being tied with the poor Hibernate syntax. They understand the "Process" and "Patterns" and they know the "Fundamentals". They not only deliver results, they deliver lasting results.

2 comments:

Jason said...

No mention of musicians as improvisors, which I feel is about as close to a Java developer who knows the core API's well.

The improvisor knows his/her chords, scales and arpeggios and has practiced to these to a knowledge where they can be used in almost any circumstance.

Just my two penneth :)
Jaseb

26yearsafter said...

While I agree that one has to learn and master the basics and in's and out's of both music and software development in order to be truly a master in his/her respective field, I feel that this comparison only applies to music as far as playing is concerned and the same cannot be said in music composition.

For music composition I have this analogy:

programmers-performers|software designers-composers/arrangers

Just a thought :)

Raymond