Star Wars (programming)
- For the unsuccessful movie franchise, see Star Wars
Star Wars is an Agile software development Methodology. Closely related to Extreme Programming, the main tenet of Star Wars is "needless complexity." A radical departure from many other techniques, Star Wars values rigidity, spam, fragility, immobility, viscosity, spam, needless repetition, spam, and opacity above all other virtues, even spam.
History[edit]
In 1998, Beck was working as a software developer for the industrial giant General Electric. After a long and frustrating time working on software to guide the Space Shuttle for a mission to the moon, using the famous Waterfall Technique, he had a bad dream one night where the Star Wars methodology was born. In essence, all aspects of the old methodology were turned on their head and the volume "cranked up to 7".
He quickly wrote the Star Wars Manifesto and it lay in obscurity until after the Dot Com Bubble. Then it quickly was adopted by the entire so-called Object-Oriented software engineering community.
Master practitioners of Star Wars are referred to as Jedi or formally Jedi Knights, unless they have turned to the Dark Side and become Sith.
Techniques[edit]
Rigidity[edit]
In the Star Wars technique, code must be written to be as rigid as possible. Flexibility introduces chaos and therefore must be avoided at all costs. All requirements documentation must be agreed to before any design or coding and must be cast in stone with formal signatures and harsh penalty clauses for failure to deliver (see Death Star).
Continuous disintegration[edit]
Another key tenet to agile software development is to establish a process where all components are kept in isolation until the last possible moment. This is also called "just-in-time integration". Integration is postponed as long as possible because everybody knows it's the most painful and risky part of the process.
Pair programming[edit]
While using the "pair programming" technique, programmers are assigned to teams of two. One programmer writes code in his/her cubicle. Every time the programmer finishes a few lines of code, they are checked into the repository. The other member of the pair is then responsible for checking it out and removing any ugly "comments", and renaming any new classes, members, and variables with randomized names. This prevents the appearance of "code ownership" on a team, which is bad.
The Planning Game[edit]
In an effort to make Star Wars look more legitimate to high-ranking business executives, programmers are encouraged to play games such as Monopoly instead of actually planning their work. This was particularly popular during the Dot Com Bubble, however at that time Foosball was more de-rigeur. If you win the Monopoly game, you get to pick the pair programming teams. This must be done out in the school yard and you must choose the least popular programmer last.
Defactoring[edit]
True Jedi practitioners hold this practice especially dear. During normal programming work, programmers are encouraged to race dangerously through narrow canyons of Death Stars, through dangerous terrain on the planet Tatooine and within range of Tuscan Raiders. This practice is believed to improve reflexes, an important factor in upcoming wars against up-and-coming Sith regimes such as that of George W. Bush.
|