Some AppServer or middleware products are very complex to build. Those require millions lines of code and hundreds of man hours. AppServer or middleware are also very advanced in term of architecture and critically required some hidden-ancient (sometimes undocumented) knowledge like understanding of OS level services and API. In Indonesia, those types of products are rarely being developed. Even though potentially can rises bigger ISV revenue, the challenge is not about market demand. In period when distributed, SOA and SaaS coming back as trends (like now), market is demanding. I believe that the reason is not around market demand, but simply because we don’t have many skilled developers and architects in that field. What we have in Indonesia is library users, code re-users, and so on. The key word here is "users". I prefer to use "programmer" instead of "developer" for such kind of coders.
Principal vendors try to simplify the complexity for programmers. They make many abstraction layers to change the programming models. They help programmers in solving problems without facing too many complexities. Such abstraction layers (collection of system building blocks) need interaction models (protocols) to formalize system behaviors on top of hardware resources. We work on top of n-th layers.
Over the last 30 years after the PC period came up, we have a lot of layers and models. Too many because the business war is around models that gaining # of layers. Everything we have done is to increase productivity in solving business problems. Can you imagine in what layer you work on the top of your machine’s hardware??? I even don’t know how to explain Raffy about XAML markup starting from silicon semiconductor based transistors, hardware (CPU, RAM/ROM, IO Devices) and so on. Lets Uncle Petzold explain him with Petzold’s famous book, Code.
My key point here is layers and models makes difficult for someone to decide where to start concentrating the learning effort. Imagine when you have to advice your son when he asks, "Papa, What should I learn??" Electrical Engineering, Computer Science, Math of Theoretical physics, Law, or just Singing to become Indonesian idols” (I had a war with my wife when I voted Dirly over Ihsan)?? If you prefer fast $$, you should advice Law, because in Indonesia that is demanding. Difficult question, isn’t it? Let say, after your son decided Computer Science, many other questions will rise, for example, what programming language is the best?. Son, I will answer your question with consultant's argument, it DEPENDS!. Then what ever you choose, you should learn how to ship a product (not only for software product). Come on,... Inul Daratista has product (don’t have to mention it here).
Well, lets back to previous complexities. I always like to start at the lowest level by gaining a solid understanding of the systems building blocks. Once he understands the basics, it's easy to incrementally add any higher level aspects of the system to his knowledge. I watched in National Geographic, how ancient Egypt people built PYRAMIDS. They don’t have technologies at that time. They had Project Owner (The King), Architect, Project Manager, Developer and Tester. They do implemented methodology with a pyramid vision and plan and iterate through the work items in cycles. They were able to built and constructed failed and successful PYRAMIDS. Think about Pyramid basic building blocks, qubic rock!!!.
When I was in High School, I saw some traditional engineers in my homeland (Makassar) who built PHINISI boat. Do you know what? First, they had to choose some trees with their metaphysics knowledge. They cut and sliced the wood and make PHINISI’s basic building blocks from it. They knew and used some patterns to construct PHINISI later on. Their architectural knowledge is hidden-ancient knowledge because it was un-documented. It was and always inside the brain of PHINISI developers. The history has proved that developers in Makassar shipped many PHINISI to worldwide market. The same thing also happened for traditional boat in Bali.
"We are the country of developers!!". If we can ship products hundreds years ago, why we can’t do that today with Software? Lets back to the basic building blocks and start building and constructing worldwide shipped products!!. I believe Software is not more complicated comparing to AMMANAGAPPA and PHINISI boats.
My Bina-ISV friend Wawan Sugiri (not son of Toto Sugiri) is now building Vista (.NET 3.0) product for Q-Pro. Friends from Intellisys also do specific segment accounting product. I started to feel the spirit and energy in this community and I believe one day, it will happen again. If you see in Detikinet, Government started a tender to provide better internet connectivity for Indonesia. That will be GREAT!!!!. Let’s start to learn how to ship products.