Thursday November 16, 2006
How do you get open source frameworks past the red tape? From an e-mail I received earlier this month, with a subject of "Acceptance red tape":
After requesting permission to use the Spring Framework for the business logic and data access layers of an application, how do you fight something like this? Spring is not an approved Framework for the ********** environment. We understand the benefits of the framework. However, we have not certified it in our environment. Additionally, we have concerns that this framework will not gain long standing traction among the J2EE community. We would like to reduce the number of frameworks used in our environment, and do not want to be left with "legacy" frameworks that have little acceptance or support as is the case with the pico container. This is a response from one of our clients after asking about the use of a framework in our development after another vendor had used the PicoContainer without their permission. We have Spring experience and we love it. My responses have been to ask what they have certified that we could use and to ask their business staff to override their tech staff. I'm caught needing to redesign an aging J2EE application with an awfully over-architected original design confined to EJB 2.1, JSP 2.0, Servlet 2.4, and JDK 1.4.X in a very short amount of time. The additional responses were that they have only certified Struts and although both the business staff and the tech staff admit they know the benefits of Spring, neither of them are allowing us to use it.
My response:
Wow - I don't know what to say, especially when they say
"Additionally, we have concerns that this framework will not gain long
standing traction among the J2EE community."
They're probably using Struts and they thinks it's wonderful, eh?
I could compose a long response with lots of details, but the fact
that they prefer EJB over Spring is baffling. Spring is so much
easier to program with, it's not even funny. Granted, EJB does have
its place, but it's often used as a hammer for a problem that doesn't
exist.
Have you experienced similar "Acceptance red tape" in your company? If so, how did you work around or work through it? Posted in Java at Nov 16 2006, 08:04:24 AM MST 31 Comments
Search This Site
Recent Entries
- Happy Birthday Mom!
- 2008 - A Year in Review
- Portland Tech Meetup Tomorrow Night
- My "almost slept in a snow cave" Adventure with Clint Foster
- My Christmas Travel Adventure
- AppFuse Light converted to Maven modules, upgraded to Tapestry 5 and Stripes 1.5
- Dojo/Comet support in Java Web Frameworks
- Abbie is a Blue Skier!
- How I recovered data from my failed Linux box
- Costa Rica was Awesome!
Education is the only way to combat misconceptions like "we have concerns that this framework will not gain long standing traction among the J2EE community".
Posted by Carl on November 16, 2006 at 08:41 AM MST #
Posted by Ealden Escañan on November 16, 2006 at 08:52 AM MST #
As Carl says: it's all about education and demonstrating that something is there to stay. If you do a search on Google for 'struts java' you'll get 4.2 million results. Do the same for '"spring framework" java' you'll get only 1.3 million results. So Struts has more traction than Spring - right? Now you have to explain that Spring is much more than just a web framework and you'll loose in a discussion with a business person, which would be very sad.
Posted by Stephan Schwab on November 16, 2006 at 09:21 AM MST #
Posted by Rob Breidecker on November 16, 2006 at 09:34 AM MST #
Posted by M.D. on November 16, 2006 at 10:09 AM MST #
"We would like to reduce the number of frameworks used in our environment, and do not want to be left with "legacy" frameworks that have little acceptance or support ..."
That's a huge WTF to me. Frameworks are proven, reusable building blocks, compared to the one-off hacks they will end up with as consultants cycle through the project. That company has Not Invented Here Syndrome, it seems.
Posted by kevin on November 16, 2006 at 10:43 AM MST #
Posted by tanguyr on November 16, 2006 at 10:45 AM MST #
Posted by Scott Williams on November 16, 2006 at 10:56 AM MST #
pico container is a great example, it's more abandonware, a large percentage of codehaus projects fall that way. When you add in projects that have been 'rewritten' or undergone severe refactorings through major versions, you'll end up with very few oss frameworks you can actually trust over the long term.
WebWork is another excellent example of a project that would be foolish to tie yourself to.
Posted by Hani Suleiman on November 16, 2006 at 12:24 PM MST #
The biggest issue is around support. Most projects are developed using mostly contractors and then leave the support of the application to the permanent staff who do not have the experience in Spring or Hibernate. This is actually a valid concern, but would be true for any new tool or framework. This should hopefully be handled with training and experience. The other issue is that another project tried to use Hibernate and had a lot of issues which were due to the incorrect usage of Hibernate rather than the tool itself. These issues leave a bad taste for the organisation which results in reluctance to use them in other projects.
Posted by Bryan Ross on November 16, 2006 at 01:06 PM MST #
Posted by Marcus Ahnve on November 16, 2006 at 01:28 PM MST #
Posted by Peter Delaney on November 16, 2006 at 01:43 PM MST #
One approach you can take is to show how well spring works with EJB. Let them feel like they still get to keep their security blanket. Once it's in the door, implement some stuff using both and show how much better it is by showing how testable it is (and how untestable ejb is) then show them the number of .java files it takes for each to do the same exact job. Management loves fewer lines of code because it = cost savings and therefore big bonuses for them.
One other thing we used to sell it was to drop the war files we produced into weblogic, jboss and finally tomcat to show the app still ran fine in all with little or no changes. Then ask them to get someone to show you the same trick with the ejb app.
At the end of the day though, i find that the best way to get them to do what you want, is to make them feel like it was their idea in the first place. That's probably the most valuable trick to learn. I know that seems like we lose the credit for the catch but we're engineers right? We usually don't get recognition unless something goes terribly wrong:)
Posted by Rick Marry on November 16, 2006 at 01:58 PM MST #
Posted by Sean Wesenberg on November 16, 2006 at 07:28 PM MST #
Posted by Deepak Shetty on November 16, 2006 at 08:25 PM MST #
Posted by Ken Carroll on November 16, 2006 at 08:26 PM MST #
Posted by Ed Gibbs on November 17, 2006 at 09:35 PM MST #
Ultimately the battle was over using hibernate vs hand written dao's and came to a conclusion in a huge company dev meeting where I openly did battle with my foes. The only major mistake they made was in thinking that I cared about my job more than I did programming. They lost in the end because it became pretty obvious that they didn't have any clear logical reasoning behind anything they wanted to do other than thinking that "we give orders, people should follow them without question". Little did they know, people with aspbergers don't follow typical human reasoning and so aren't as compelled to do things based on emotion or fear.
In the end you really have to ask yourself if it's even worth fighting for if your company is infected with more than a couple random idiots? There are plenty of good (enough) companies to work with out there, if yours doesn't want to play ball just go work somewhere else. ;)
Posted by Jesse Kuhnert on November 18, 2006 at 09:43 AM MST #
some1's comment of fighting to ask for ant as build tool - is amazing in today's world.
Posted by Mittal on November 20, 2006 at 09:12 AM MST #
I ran into a situation with a client that had spent boatloads on database licenses and support, only to find that when they hit a large, deeply buried issue in production, the vendor was nowhere to be found because they were a relatively small account. They were at the mercy of the vendor, too, because their homegrown persistence layer talked to stored procedures that weren't portable across databases. What resulted was pulling a feature all clients demanded from production for a two month time period until the issue was finally worked around.
By contrast, they also ran into a problem with their mail server, which ran on open source software. The admin group's first thoughts were to build a new configuration as quickly as possible to swap it out, but a colleague of mine was able to diagnose the problem by pulling down the source and even writing a patch to fix it.
Dictums never make good business decisions. What's more freightening is the scare factor that many companies have with stable OSS frameworks. Arguably, it's this attitude that's holding back up and coming frameworks in many ways. This attitude is inversely related to community support -- the stronger and more pervasive concerns are about adoption, the less adoption actually occurs, and the weaker the framework becomes. Open source works best when there are many sets of eyes looking at the same problem, and that's why JSRs are really the only way to get a framework to the point where it's safe from this type of scrutiny.
Posted by Chris Wash on November 20, 2006 at 03:21 PM MST #
Posted by John on November 20, 2006 at 09:10 PM MST #
Posted by Kit on November 21, 2006 at 03:34 AM MST #
Posted by KBL on November 21, 2006 at 06:48 AM MST #
Posted by Frank Tyler on November 21, 2006 at 11:09 AM MST #
Posted by 193.192.70.172 on November 22, 2006 at 08:24 AM MST #
Posted by Simon on November 22, 2006 at 09:27 AM MST #
Posted by James on November 26, 2006 at 08:18 AM MST #
When dealing with inheritance, and when we were using the appgen, it was not generating the form/pages correctly, it was only generating the super class attributes on the screen, with the super class name example (superClass.firstName). We were expecting something to build like subclass.firstName and all the attributes from super class and sub class. Then we found that we have to change the temples, so that it will generate properly.
Inside method forAllFields(), we added setCurrentClass(currentClass); at the end of the method and added class level attribute
Add also add following statement in method ?
public String classNameLower() { String name = getCurrentClass().getName(); setCurrentClass(currentClass); return Character.toLowerCase(name.charAt(0)) + name.substring(1); }I just wanted to give this information, so that you can let us know, if we are in right direction or you have already identified this issue.
ThanksHave a great time
Srikanth
Posted by S Koppisetty on November 30, 2006 at 08:10 PM MST #
Posted by Matt Raible on November 30, 2006 at 08:17 PM MST #
Posted by Java Donkey on April 12, 2007 at 07:29 PM MDT #
> the fact that they prefer EJB over Spring is baffling. Spring is so much easier to program with, it's not even funny.
I think this viewpoint is outdated since EJB 3.0 based on my experiences working with both. I think the tables have turned because it is easier to get started with an EJB 3.0 project than to fiddle with Spring for a few days to get a functional equivalent. Plus Spring has problems with annotations like @PersistenceContext when you have multiple persistence units -- not supported. With the release of EJB 3.1 and Web Beans I think we'll see a lot of ex-Spring users jumping ship.
Posted by Ryan de Laplante on September 27, 2008 at 08:03 PM MDT #