23 Dec 2008

Thoughts On Software Intergration

The experience I have with CEGUI and DirectX mesh made me thought about the software integration processes. It seems to me now one way to break game development down is the following:
  1. Software integration (integrate 3rd party tools, code, etc into existing one)
  2. Application development (developing the game itself)
  3. Tool development (developing the tools required by the designers)
They might be proceeded in parallel, or not, depending on the situation I guess.

I think that it's possible sometimes people underestimates the time and efforts required for integration, which causes underestimated schedule in software development. This reminds me of a quote from the movie Apollo 13 (an absolute master piece, by the way):

Gene Kranz: "I suggest you gentlemen invent a way to put a square peg in a round hole. Rapidly."

That's right, sometimes you just have to figure out how to put a square peg in a round hole, even in software. It's probably even more difficult in software sometimes because you can't "see" software so you can't even tell immediately what "shape" the holes and the pegs are.

And I think I can summarize the general software integration process in 3 steps:
  • Find the Holes.
  • Determine how to put "this" into "this" without break them.
  • Repeat if failed.
Maybe I will discover more about it later, but that's the way things usually go and for now I don't think there is a way around it. I remember I read somewhere that software development is a "complex problem," therefore no matter what people do, complexity will exist in one form or the other. Yea, tools and library make things a lot easier, but the work required to integrate them is often not straight forward.

No comments: