Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Methodology madness

What are the best techniques for managing your Java projects?

  • Print
  • Feedback
Software development methodologies have been around for quite some time. In the 1980s, the buzz around computer aided system engineering (CASE) tools was huge. Companies invested millions of dollars in CASE tools that promised organized and efficient ways to manage the complete software development life cycle, including code generation and much more. Well-known industry figures such as Peter Coad, Edward Yourdon, Grady Booch, James Rumbaugh, and James Martin have also shared their wisdom on managing software development projects successfully.

Technologies such as JavaServer Pages and servlets, Enterprise JavaBeans, XML, architecture and design patterns, application servers, integrated development environments (IDEs), and related technologies keep pushing rapid application development as far as it will go; to some extent, this drive renders traditional methodologies obsolete. People want instant gratification, and long, drawn-out software development approaches no longer work. Nowadays, software development iterations are sometimes discussed in terms of weeks, not months.

RUP and XP

During the past couple of years, the two most popular methodologies to emerge are the Rational Unified Process (RUP) and Extreme Programming (XP). RUP, according to many developers, is too cumbersome, and XP isn't suitable for serious projects. Some people would go so far as to say that XP is for hackers and RUP is for humongous projects and not realistic for average-sized project teams (i.e., four to six developers). There are also companies that employ a blend of the two, with RUP cycles and phases, and XP pair programming and testing.

Failed projects

In addition to RUP and XP, several other methodologies are used in the industry, such as ADM Scrum and Agile Modeling. Of course, many project-based IT services companies have homegrown methodologies of their own. Either way, IT services companies (e.g., solutions integrators, consultants) have done well financially helping clients adopt some form of methodology.

The problem with methodologies, processes, and CASE tools to date is that they are too rigid and bureaucratic, and simply do not factor in key aspects of the development process, such as personnel issues. It never ceases to amaze me how many projects fail even after large amounts of money, time, and resources are pumped in to make them successful. Often, after a project has completed, companies realize that they ignored many common sense issues, which led to the project's failure.

At the other extreme, I have seen both small and large companies follow absolutely no process beyond considering such basics as development tools, a source code controls system, and separate environments for development and production. While I have never been a fan of bureaucratic processes, I have always believed that the entire development team needs at least a simple framework or road map to follow. These days, a simple framework or checklist is about all you can expect people to absorb given the lack of time, energy, or talent available.

  • Print
  • Feedback

Resources