Newsletter sign-up
View all newsletters

Sign up for our Enterprise Java Newsletter

Enterprise Java

Methodology madness

What are the best techniques for managing your Java projects?

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
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.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources