"It is more important to ask the right questions. To get the right answer you need to ask the right question." -- Paul Dirac. Nobel Laureate.
(a) How can we say that our JMS (MOM) based architecture is correct?
(b) When and why should we use EJB's, MDB's, WebServices, etc.?
(c) How do we design and code our application for performance and scalability?
(d) How do we design and code our application for multithreaded, multiprocessor, clustered environments?
(e) How do we design and code our application for environments requiring high availability, failover, hot-standby, load balancing?
(f) What is the relationship between business processes and use-cases?
(g) When do we slice our business processes vertically and when horizontally?
(h) What project management techniques can help reduce project development cost and time by more than 30%?
(i) How many years of experience did Newton have of watching the apple fall?
(j) How many scientists are required to write the laws of gravitation?
(k) Do we really need to hire IBM Global Services or Accenture to write the laws of gravitation?
(l) Do we really need to outsource offshore to reduce development costs?
(m) Is outsourcing offshore a long term gain or a short term gain with long term pain?