Sunday, October 18, 2009

Software Project Failure

I'm on a roll with the LinkedIn rants today :)
Do software development efforts fail because: 1) the technical staff is not skilled enough for the work, 2) management has unrealistic expectations, 3) lack of reasonable resources to perform the effort. I would be interested to know your thoughts.

Someone once said that failure can only occur when time and resources are limiting factors. In the case of software, all of the above are true, though the most consistent cause I see is that the process of doing the following in order:
1) Set a completion date
2) Define the requirements
3) Design the software
4) Develop the software
5) Change the requirements
6) Wonder what went wrong

Agile is a good step in preventing failure from the above process except that even shops that use Agile often face that the end date is set before work begins and that unrealistic expectations are set at the same time.

Another ongoing issue is that management's reaction to bad news about meeting functionality or a date is to throw more people on the project and demand more frequent meetings which pull the people most capable of solving the issue away from solving the issue. This trains developers to not communicate issues until the last minute, which accelerates this vicious cycle.

As Dennis Miller used to say “But that’s just my opinion. I could be wrong”

Whatever Happened to the Promise of Java Beans?

I ran across a question on LinkedIn today and gave a long-winded rant-like response that I thought I would post here, too.
Javabeans are hailed as reusabel software components. Is anybody aware of a market for these wigits?

My Answer: Yes, and it has been dominated by IBM and Oracle for the past decade. When the books were written that proposed business models around the technology the expectation was that Swing would win massive acceptance and that Applets would continue to be the key technology of rich web applications. None of this came to pass.

There was also the expectation of an open market of beans, which missed the fact that most developers would rather write their own and only reuse when directed, or until it becomes a habit from being directed to do so. The reuse is still mostly of internally developed beans or those that are part of vendor applications.

And the vendor applications mostly make the beans proprietary, i.e., they only run within their servers.

The exceptions to my cynical gut-reaction is the FOSS community, where many Java Beans and other reusable components can be found.

As Dennis Miller used to say "But that's just my opinion. I could be wrong"

Wednesday, October 7, 2009

Links Be Gone

I often save web pages as Word documents for different reasons, and sometimes need to disable the links. Finding no help in Help, I did the usual search and found the trick elsewhere.

Here's what I found:
If you just want to remove the hyperlink property of the entry, select the document—[Ctrl]A—and unlink the field—[Ctrl][Shift][F9].

Tuesday, October 6, 2009

Achieving Artificial Intelligence with the Reverse

I believe that AI is taking the wrong path. They are trying to work top down because that's how humans who are generally successful at solving problems approach solving problems. Problems that are somewhat familiar are best served with a rigorous approach that leads to a planned conclusion. Still, many of the greatest break-throughs have come about by accident, i.e., not following the general path at first. Penicillin and Post-It Notes come immediately to mind.

But humans only solve most problems the usual way because they have a solid ground work to start from. The accidents create a new ground work for development. Accidents come about by not following the normal path, and I think the solution to AI is in taking a different path that will lead to a ground work that will support the entire field.

AI should take the approach of developing siloed expert systems. Make lots of them and keep refining until commoditized. Then start working on higher systems that can merge related systems together though interfaces like web services (but more efficient). Then build ever higher systems until a small set of controlling systems can leverage the legacy systems. The legacy systems, truly failures to create AI and the wrong accepted path will provide an infrastructure that will support a true AI solution.

Saturday, October 3, 2009

Steps to use OBIEE JSR168 Portlets in WebLogic Portal

Someone told me they were having trouble getting the OBIEE JSR 168 portlets to run in WLP. Since WebLogic Portal has excellent support for all published portal standards, I figured that the best thing to do is provide illustrated,  step-by-step instructions.

Deploy the JSR168 WAR to the WebLogic Server


Add the JSR168 WAR as a Shared Library to the Application Workspace


[caption id="attachment_268" align="aligncenter" width="438" caption="Figure 1: Add the JSR168 WAR as a shared library to the application Workspace Step 1"]Figure 1: Add the JSR168 WAR as a shared library to the application Workspace Step 1[/caption]

[caption id="attachment_269" align="aligncenter" width="438" caption="Figure 2: Add the JSR168 WAR as a shared library to the application Workspace Step 2"]Figure 2:  Add the JSR168 WAR as a shared library to the application Workspace Step 2[/caption]

[caption id="attachment_270" align="aligncenter" width="300" caption="Figure 3: Add the JSR168 WAR as a shared library to the application Workspace Step 3"]Figure 3:  Add the JSR168 WAR as a shared library to the application Workspace Step 3[/caption]

Add Shared Library To Portal Project


Figure 4: Add shared library to Portal project Step 1Figure 4: Add shared library to Portal project Step 1




[caption id="attachment_272" align="aligncenter" width="438" caption="Figure 5: Add shared library to Portal project Step 2"]Figure 5: Add shared library to Portal project Step 2[/caption]

[caption id="attachment_273" align="aligncenter" width="438" caption="Figure 6: Add shared library to Portal project Step 3"]Figure 6: Add shared library to Portal project Step 3[/caption]

[caption id="attachment_274" align="aligncenter" width="443" caption="Figure 7: Add shared library to Portal project Step 4"]Figure 7: Add shared library to Portal project Step 4[/caption]

[caption id="attachment_275" align="aligncenter" width="438" caption="Figure 8: : Add shared library to Portal project Step 5 (Check Allow newer versions unless need explicit version control)"]Figure 8: : Add shared library to Portal project Step 5 (Check Allow newer versions unless need explicit version control)[/caption]


Add Library Reference To Weblogic.Xml In The Portal WEB Project


<wls:library-ref>

<wls:library-name>sawjsr168portlets</wls:library-name>

</wls:library-ref>

Add <wls:specification-version> and <wls:exact-match> nodes if required.

Un-check Build Automatically, Clean The Workspace Without A Build And Exit Workshop


[caption id="attachment_276" align="aligncenter" width="448" caption="Figure 9: Uncheck Build Automatically; Clean The Workspace Without A Build And Exit Workshop Step 1"]Figure 9: Uncheck Build Automatically; Clean The Workspace Without A Build And Exit Workshop Step 1[/caption]

[caption id="attachment_277" align="aligncenter" width="443" caption="Figure 10: Uncheck Build Automatically; Clean The Workspace Without A Build And Exit Workshop Step 2"]Figure 10: Uncheck Build Automatically; Clean The Workspace Without A Build And Exit Workshop Step 2[/caption]

Restart workshop, build, deploy.

Log-in To Portal Admin Console


Go to Portal\Portal Management. The portlet will be listed for use on streaming portals.

[caption id="attachment_267" align="aligncenter" width="438" caption="Congradulations!"]Congradulations![/caption]

Thursday, October 1, 2009

If the WLS 8.x Left Navigation Missing

This usually happens after an older JRE is installed or machines with an older version of IE. You need to check Internet Options - Advanced Java to see which version is installed.

This can happen frequently in shops that use older versions of Documentum WebPublisher, which requires an older JRE to work.