|
What's in Store for the Future?
Barry: Let’s jump ahead five or ten years from now. What do you foresee
happening in development practices in the long-term future? Where is agile
development going? Where are the heavy-weight processes going?
David: I think you'll find people who specialize in each niche. You'll
see more of what we see now, but we’ll be using different technologies along
the way.
Brian: That is also where agility comes on the quadrant with a lot of
technology change in a five to ten year time frame. Having a process that allows
you to maneuver quickly through technological changes will help organizations
succeed or fail. While the goals for CMM are noble, they’re somewhat
unrealistic for all but the largest government projects that deal with stable
domains. Organizations that have to deal with quicker turnaround responses to
the business environment and technological changes will have to be more agile in
their responses.
Fundamental to everything is the application of the approach grounded in a
position of responsibility. Don’t choose a technology to improve your resume,
don’t choose a technology for the hype, and don’t choose a process because
you think it will improve you documentation burden. Understand how these things
apply and choose wisely. If you don’t know enough about processes, find
someone who does. The right technology applied in the right way at the right
time is magic.
David: If you feel as if you are banging your head against the wall, stop
and rethink what you are doing. There are times where you want to make some
alterations to code and you end up five steps removed from the problem you
solved because of some stupid dependency on some stupid build problem on some
stupid files. If that’s really the way things are, stop and look at the bigger
picture and try to figure out what the real solution is.
Brian: Ward Cunningham introduced the notion of technical debt. The idea
is that when you are heading toward a deadline, you can’t always look at the
big picture. As you head for the deadline you incur this technical debt. You
hack around and do something just to make the code work. But at some point in
time, you have to look at the big picture. Before the next iteration you need to
stop and pay down that technical debt in some way. If you don't then, just as
with a financial debt, the technical debt will compound from iteration to
iteration. Things will become unmanageable to the point where you cannot afford
to pay the debt.
BB: What if you don’t have time between one iteration and the next? You're
involved in a project with unrealistic deadlines. What then?
David: Well that sounds like a problem. One of the first benefits that I
saw when my company started moving to CMM Level 2, was having with a
time-estimation process. A consultant trained us on an estimation process. Love
it or hate it, the process is a way of coming up with an amount of time for a
task. What was really interesting was that we could use the estimate to push
back management a bit. The managers would say "How long do you think will
this take? Give us an estimate.” We would come up with a number bring the
number back to management.
In the old days, they would say “That’s too long. We want it done in half
that time.” But with the estimation process, we can say “We followed the
documented process—the process we were trained to use. When we used the
process we came up with this time estimate." That was a really liberating
thing.
Software process can be constraining. But people talk about software development
as an art, and sometimes constraint is part of art. Lot's of people can build
model ships, but if you can build a ship in a bottle, you have a whole new level
of model ship building. So that constraint does not have to be viewed as
shackles. Instead, a constraint can be part of your work.
Brian: People often ask me about my attitude towards process. I say my
attitude depends on the organization and on the specific goals of a project. At
the end of the day, you want enough process to push you forward, but not enough
to slow you down.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|