Tuesday, October 29, 2013

SOA - No silver bullet in software development at all

With the emerge of a new technology, there always some people would tell the people that technology would solve the problem and make the development successful. But people found that is not true soon and got disappointed as the silver bullet they expected is not true at all.

When the Java appeared in our development life, the people praises it is a revolution as it has garbage collection and is Object-Oriented. Also, it makes the software runs anywhere by using JVM. Theoretically, Java can improve the re-usability and  readability of code. Later, I saw many many developers create giant classes and giant methods without any OO concept, and there is no re-usability and readability at all. I do agree that it is not for all of developers, but pretty a lot did, especially some developers who worked with C previously.

When the SOA was introduced, people felt they found another extreme weapon to solve the development issues and make the project much successful. But I cannot believe it. If the developers don't follow the best practices and related disciplines, nothing can get better but more difficult to trace the problem.

When I first began to learn SOA Suite on 2010, the trainer told me a lot of advantage of it and gave me wonderful picture of it. But I couldn't believe it completely. The SOA Suite allow you to build BPEL process by dragging and dropping and I supposed it should make the process much easy to understand and be clear.  It should bring agility too. Later, I see some developers are creating giant complicated BPEL processes. It is too big to look at it and too complicated to understand it. Some giant one really make me scared.

After so many years, I have to say there is no silver bullet in software development as the issue is created by people not the technologies. For Java, the developer should create proper classes and extract proper methods to put the logic in different places leveraging the advantages of OOP and design patters to make the code re-usable and readable. For BPEL, the developer should create multiple BPEL processes to make the processes as clear as possible and as unique as possible to make it understandable and re-usable.

I still strongly believe the software programming/development is still an Art and really need the people think more and do more.  Otherwise, the people just create another mess when they criticize the mess made by somebody else.