Front Page


Staff

Editor: Veronica Pierce
OpEd: Dan Schrimpsher
Reporter: Dan Schrimpsher
Finance: Veronica Pierce
Contact Us Alternative Contact
space (spās) n. 1. space beyond the atmosphere of the earth.

prag·ma·tism (prgm-tzm) n. A way of approaching situations or solving problems that emphasizes practical applications and consequences.

Wednesday, August 17, 2005

Agile Space Mission Development

Sorry I haven't been blogging for a while. No, I am not dead or in jail or anything bad. I got promoted and we hired a lot of new guys I had to bring up to speed this month, so what are you going to do. On to the subject at hand....

Jonathan Goff on his blog Silenian Boondocks, has a new post out on how NASA could do a moon mission in an open architecture, commercially supported fashion. As a quasi-libertarian (at least economically) I agree with his ideas. After reading his post, though, I see another reason for the light-launch, re-fuel in orbit, option.


Let me discuss software development methodologies for a moment. (All non-software engineering geeks bear with me). In the last decade or two, object-oriented development has brought for many ideas on how to create good software systems. First with Design Patterns based on Christopher Alexdander's brilliant "A Timeless Way of Building" which first proposed patterns in architecture. The "Gang of Four" as they are so affectionately referred to took that idea and wrote the foundation of OOD in the last decade, "Design
Pattern, Elements of Reusable-Object Oriented Software.”


Now, I don't know about your field, but in software development there is one constant, change. Requirements change, tests change, platforms change, even customers change. The traditional “Waterfall” method of development does not allow for change without a lot of gnashing of teeth. So various methods over the years have tried to retrofit the waterfall model with flexibility. Some of the more famous are spiral development, rapid prototyping, and the Rational Unified Process (or RUP). None of these expected change to happen, they just tried to make it easier to handle.


Then came Agile development. Agile development was the created with the idea that change isn't bad. It isn't good, it just is. It will happen, so why no design your system from the begging to be fast, light, and flexible.


Now I am not a rocket scientist, but I have noticed a lot of the same problems in rocketry as in software. Missions are planned years in advance with very little flexibility for future discoveries or technologies. Missions are designed for a specific goal with specific technologies for that mission.


How does agile affect this? I am advocating an Agile Space Mission methodology. What Johnathan proposes goes a long way towards that. Whether it is libertarian or not, it s flexible. Re-fueling in space is not limited to the Moon. Mars missions, asteroid missions, Europa missions, could all use this technology. Orbit assembly with light rockets would work with many different mission goals. But the important thing is, it is flexible and scalable enough to work with situations we haven't even though of yet. That is the beauty of Agile, change is built into the entire process.


Don't get me wrong, we need to have goals. Going somewhere is important, but don't limit your mission architecture when you know you are going somewhere else later on. Plan for change...


Manifesto for Agile Software Development

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

1 comment:

Jon Goff said...

Dan, great article. I'll write an article on my blog about it. You need to get trackbacks though. Email me if you need info on how to set them up for your blogger account.