I have been part of software industry for a decade now. I had always heard few statements by other engineering practice expert, specially Mechanical and Civil Engineering experts saying that
"Software industry is not as matured as Mechanical or Civil Engineering is."
Being part of this community, I was never able to accept this fact. In fact, I remember college days when I had read about reusability and other great practices adopted by our software industry. We are part of an industry which has grown extra ordinary in last century (rather few decades). Great thing about our industry is the open source communities which are doing selfless work for whole world.
Right now I am working for a big networking company's IT department, and observed a heavy inclination of management towards Service Oriented Architecture (SOA). I have read a whole bunch of articles on SOA on http://www.theserverside.com and many people have written about this as a hype of SOA architecture. I just wanted to write this post as it has not changed much despite lots of people trying to communicate the right way of utilizing such a beautiful architecture. My management seems so inclined to SOA that even our architects want to create services of almost everything. Sometimes we don't even understand why?
I am sure architects of our industry are not so immature that they would suggest it that way, but I can observe the pressure and expectation from top management, which forces good architects to do so. In my opinion top management thinks that you are a great architect if you create lots of services out of anything or everything.
I have been to many interviews where job posting said they are looking for a "Software Architect", and as soon as they start interview they ask about SOA. I always wanted to tell them that only SOA is not Software architecture there are many other architectural solutions available and one solution doesn't fit all. What should be the first question (or important question) for such an interview, I assume "How would you chose a architectural solution?. Instead of asking that, people start with asking about WSDL tags and serviceregistry.xml, which annoys me even more. I know there are many fake profiles floating around and its difficult to chose the right guy for your job, which forces interviewers to ask so specific questions about a technology, but what about asking fundamentals. I understood that they are not looking for a Software Architect but a SOA Architect.
I appeared for a niche segment consulting company, and they took 7-8 rounds of interviews starting from my fundamental approach to design till very specific questions of a technology like JSF, Struts. I am convinced that they should be niche segment consulting as they are very focused on selecting fundamentally strong people which is going to be their strength.
People in this industry don't take things as seriously as it is taken in Civil or Mechanical engineering. A wrong choice of architecture would be fatal, and could harm human lives. Just imagine the architecture of Golden Bridge in SFO or Brooklyn Bridge in NYC, even after so many years of being built they still stand strong with great use. I have never seen any "software" standing for more then 5 years like that. In fact that is the whole point that people in our industry don't take fundamental design and architecture concepts seriously as they know that collapse of it will not to be as hazardous as a collapse of a Bridge.
Now I agree that we are not as matured as other engineering practices, SOA is just another example. In fact we would never be so due to nature of our work.
What do you think? Let me know your thoughts.