 |
Developing Java project - a team effort
Posted by kirillcool on October 14, 2005 at 02:04 PM | Comments (8)
I was watching one of the Monday night NFL games that i have on tape. It was a Packers vs. Bears from three years ago. Bears had a lousy night with three interceptions (one returned for TD), three sacks on defense, fumbled kick return, missed onside kick and a variety of assorted mishaps. They lost 21-34 and went on to have a 4-12 season. One phrase by Madden got stuck with me (guess i missed it back then). One of the defensive stars of the league is Brian Urlacher who's been with Bears for the last six seasons. Madden called him "the perfect middle line-backer and the perfect football player".
The track record for Bears over these six seasons (Urlacher has missed only 7 games due to injury over these seasons) has been far from perfect though - only one winning season (13-3 in 2001) and 22-46 in other five seasons (including 1-3 during the current one). The reason is obvious - it takes 53 players (11 at any given moment, unless you want to get a "12 men on field" penalty) to play the game. Have one star and ten dead-beats - the star isn't going make a difference.
Over the same six years, four different teams have won the Superbowl, with three victories going to the Patriots. In all cases except the Ravens (and the SB score is a little misleading), the winning teams had a perfect combination on all teams, offensive, defensive and special (2000 Ravens defense gave up an amazing 9.4 points per game, so there was no need for real offense).
Every year, we (the lowly developers) are attacked with a variety of new solutions that promise to cut development cost, time and productivity in half (in worst case). Last year's award undoubtedly goes to AOP (thankfully we got over it before it hit the mainstream). This year, it's AJAX, SOA and (sort of) Web 2.0. This entry caught my eye recently. It outlines an interesting cross-section of technologies that should be mastered by an AJAX developer. And that is only for the GUI interaction with the server. What about the persistence layer, internationalization support, deployment and installation, data structures, flow engine, interoperability with legacy systems? Regard any one of those as minor issue and it will bite you. Hard.
The religious wars over "which IDE is best" kind of ignore a simple problem - if you chose a poor solution for clustering / high availability, the best IDE will get you to the dead end twice as fast. You will just have a little more time to understand that you will not make the deadline. It takes a team of programmers to do the job, but it also takes a team of solutions for a team of problems. Pick the current shining star and forget all the rest? See you on your next project.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
I think the entry's observation was a little one sides. The list is too concerned with horizontally layering the application concerns where you can take frameworks now like JSF (component based frameworks) and manage concerns vertically. It makes development tons easier, and compensates for confusion over AJAX functionality and client-server communication.
Posted by: jhook on October 14, 2005 at 05:39 PM
-
Nice observation Kirill.
As new developers, and managers, we were all guilty of falling for the 'silver bullet' pitch; hoping to quickly attain sophisticated ability, without experience.
As we mature, we realise that only through thorough understanding, and practise, with the technical fundamentals; combined with specialisation and teamwork; does any significant accomplishment possible.
Unfortunately, as you are experiencing, once you have attained this vantage; the 'snake oil' pitches become positively irksome!
Posted by: cajo on October 15, 2005 at 11:48 AM
-
Yes, and every now and again, some jaded developer will make cynical observations, lamenting that his fellow developers are falling for "the next big thing" and are being fooled. Little does he know that he's just become a calcified old codger. When new and useful tools come along he blithely ignores them, and mutters to himself as he yearns for the good old days of punch cards and serial terminals.
Posted by: gbarton on October 17, 2005 at 08:09 AM
-
@cajo - I think that Kirill was aware of the phrase 'silver bullet', as you can see by his play on words with 'golden hammer', ie something supposedly even better than a silver bullet ('the best thing since the subroutine' hype that these frameworks often come with from breathless admirers) - that once you have it you start treating every problem as though it can be solved by your framework du jour (eg: 'to a man with a hammer, every problem looks like a nail'). Possibly with other subtleties thrown in - eg gold being a soft metal would make a particularly poor hammer. (etc)
@gbarton - more tools is not necessarily better. Just because these frameworks are shiny and new does not automatically promote them to being the best. We should examine them with a critical eye. You shouldn't attack Kirill for being critical. We should be rational about our tools. Indeed, I have yet to see the web framework that measures up to the power, ease of use, and scaleability of 'plain old servlets'.
@Kirill - I don't think that list is fair. Having to learn Struts should *not* be on the list of things required to learn Ajax. Lets cast a critical eye at that list:
HTML 4.0
JavaScript
XML / AJAX
DHTML
HTTP
JSP/Servlets
Tag Libraries
Struts, Tiles, Validation (these have now been combined)
WebSphere / Tomcat
Should really be:
HTML 4.0 / DHTML
JavaScript
XML
AJAX
... and the cgi of your choice
And how hard are Html or Xml really? Javascript can be quite tricky because of versioning/browser problems. You can choose an 'easy out' for the cgi, eg servlets (or 'insert random scripting language' of your choice), without mucking around with the pain and agony of JSPs, tag libraries and struts. If we remove those things the difficulty drops by a factor of 4 at least. I wouldn't want to inflict weblogic on anyone, but tomcat isn't too bad (the one built into netbeans is quite easy to use). Websphere wasn't too bad either (disclaimer: was using ibm toolset and someone else set it up).
Posted by: rickcarson on October 18, 2005 at 04:07 AM
-
Rick,
I am not going to argue about whether the linked list is correct or not. It was just an illustration. But thanks for the insightful comments.
gbarton,
You say "new and useful". The only thing new in AJAX is the acronym. Web developers have been using the asynchronous calls to server from web pages since 97. I remember using a hidden IFrame to retrieve contents of a combobox based on the selected item in a previous combobox. There was no blocking, and the contents of the hidden frame were filled with XML. That was in 2001, three years before AJAX term was coined. The only thing missing back then was XmlHttpRequest.
I remember one post of a delighted AJAX developer who showcased a progress bar that talks to server and updates its contents. Wow, what a great "new" component. I wish Sun adds it as a Swing component in Mustang :)
Posted by: kirillcool on October 18, 2005 at 08:51 AM
-
The thing is that all new technologies are marketed as Revolutions but most of them are purely evolutionary,
so only if you set aside the marketing you get the real picture.
As I see it most of the 'new' technologies are just an integration of the old ideas in a more slick and usefull package, and what is what it's all about, making old problems go away more easily.
Posted by: melhiah on October 19, 2005 at 03:21 AM
-
Kirill mentions several software solutions that promise to cut development cost, time and productivity in half (in worst case).
Add development methadologies to that list as well. It was a short time ago everyone hammered the effectiveness & benefits of XP programming over the tradational SDLC. Nowadays its hard to justify elements of XP, such as "never code for future needs, only the needs of now" versus the now heavily used design patterns.
Sure there was good elements of XP, like pair programming. But XP's mantra of "do not program for future requirements" is a direct conflict with many patterns I can think of, i.e. Strategy (why extrapolate behavior if nothing changes in the future), Factory (why isolate instantiation if we have no classes in the future), etc.
But our fads are fun.
Posted by: phlogistic on October 19, 2005 at 03:28 PM
-
kirillcool, I was mainly reacting to your dissing of AOP.
And, yeah, sounds like you were ahead of the curve on AJAX. Great. Now the technique has been formalized and named. So what's with the old man "there's nothing new under the sun" routine? Yeah, the young'uns coo in delight at stuff we old codgers find old hat. Thet's their job. Our job is to steer them in the right direction, but also learn from their example as we forget, in our old age, to be open to the new stuff... Like AOP... :P
Posted by: gbarton on October 20, 2005 at 07:41 AM
|