Agile Zone is brought to you in partnership with:

Scott is a Senior Software Architect at Altamira Corporation. He has been developing enterprise and web applications for over 15 years professionally, and has developed applications using Java, Ruby/Rails, Groovy/Grails and Python. His main areas of interest include object-oriented design, system architecture, testing, and frameworks of all types including Spring, Hibernate, Ruby on Rails, Grails, and Django. In addition, Scott enjoys learning new languages to make himself a better and more well-rounded developer a la The Pragmatic Programmers' advice to "learn one language per year." Scott is a DZone MVB and is not an employee of DZone and has posted 43 posts at DZone. You can read more from them at their website. View Full User Profile

Iterative Software Development, Part 2

  • submit to reddit

Originally authored by Andrew Wagner

Welcome back for episode 2! (Part 1 is posted here.) It's time to implement our first real feature. And with that, comes a decision: what feature should we implement? Some map to fly around in? A way of keeping track of all the entities in the application? A game loop?

Well, I'm not going to say that these are wrong, and they'll all be needed eventually, but let me tell you how I would make the decision. That is, after all, the point of this series. I make decisions like this based on value for the user.

What is it we're building? A space game. What is a space game? One in which you fly around a spaceship. Well, flying is a bit much to take on all at once, so I'll settle for being able to draw a spaceship. After all, that is the definition of a space game. If I were to show this empty window that we created last time to someone and say "here's my space game", the most obvious question would be "...well, where's the space ship?". So, that's what we'll do!

Now, I'm no artist at all. Fortunately, there's some awesome free art available on In particular, I'll be using this set of graphics, done by

There's one other credit to give out. I did a bunch of research to figure out the absolute minimum java graphics programming I could get away with for this series. Many of the screencasts out there do lots of crazy copying around of bits of arrays. I may very well need to do that eventually, but I wanted something ultra-simple to start with. Ultimately, this page was extremely useful in figuring that out, so props to them.

Ok, enough talk, let's get coding!

Published at DZone with permission of Scott Leberknight, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)