'. '

Intelligent design

From APIDesign

Revision as of 14:04, 24 July 2011 by JaroslavTulach (Talk | contribs)
Jump to: navigation, search

Are you fan of intelligent design or evolution? Most of the people around me would select evolution as a mean of how our world has been populated (althrough Geertjan in an recent screencast refused to answer). However when you ask the same people whether they use evolution or intelligent design methods to manage their company, their answer will change. They act as intelligent designers. Is not that another example of a doublethink?

Evolution and JDeveloper

When I got the task to bring JDeveloper and NetBeans closer to each other, I knew we have to start from the basics, from creating a common ground. Thus we invested a lot of time to share the module system underneath the two products. The short term benefit was the speedup of JDeveloper launch time. However the long term visition was more important for me: such common ground would give us a chance to share. I was not 100% what are the parts that should be shared, but I knew that allowing it is important.

However, it was not enough to share components in runtime. We needed to modify the build systems of NetBeans and JDeveloper to allow compilation against the OSGi bundles and modules comming from the other system. This took us a while, but we have such system now - everyone in the two teams can easily start to use libraries provided by the other system. We are ready for evolution!

And guess what? In the recent few weeks I've been asked by various members from the teams whether they could share some API. Some of these requests were not surprising (e.g. I know that sharing these sub-systems could be beneficial), however some where completely new! Only by creating an environment suitable for evolution would could stimulate brainstorms among minds of our collegues. Only by not having a plan we could come up with so great ideas!

API Architects

Software architects are usually responsible for the final delivery. No wonder they have to work like my friends and manage their teams and their tasks like intelligent designers. API architects should however be different. Their goal is not to create the final product, rather create an API that will inspire others to do amazing things.

As a consequence the API architects should worship evolution. Not only/necessarily when asked about the genesis of the world, but (more importantly) during their regular workdays!

TBD

Personal tools
buy