Softmake's Software Development System - Other Software Development Systems
The bulk of McConnell's Rapid Development System will endure regardless of future software technology. However, it is not the last word on development. There are many other Systems that contain useful methods and alternative approaches that can well be used in all or specific projects.
We can cherry pick from these Systems. For example:
- From Extreme Programming we may use pair programming. Two programmers sit together at the same terminal working on the same code. (Also worth consideration is "Pair Managing: Two Managers per Programmer" and other gems from the Waterfall 2006 Conference).
- McConnell has a detailed story to tell about how developers are generally working near maximum motivation and that above 40 hours no more work is output. Extreme programming, by contrast, simply bans overtime.
-
Extreme Programming emphasis refactoring:
Change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
Adam Cogan has a useful example to illustrate why refactoring is a worthwhile discipline:
What do you do when you see a directory structure like this:
* SSW/Images
* PDI/Images
* ABC/Image
a) Leave it, it is only a little inconsistency after all, and fixing it may cause some bad links and why fix something that isn't broken?
b) OR fix the inconsistency straightaway?
For me the only answer is b). Tackle these problems head on, in line with the fourth principle of eXtreme Programming - courage. Fix the problem now and save it from becoming a bigger problem later.
SSW Rules, Rules to Better Code, "Do you refactor your code and keep methods short?".
- Spike solutions, using your prototype to test difficult design issues, is emphasized by extreme programming.
- From Dynamic Systems Development Method (DSDM) we can be reminded that communication between all the stakeholders is vital.
- From Rapid Application Development (James Martin 1991, not Steve McConnell 1996) we get the emphasis on throwaway prototyping, as a means to draw out user requirements.
In short our Software Development System is open to best practice wherever it comes from. Whatever is needed to give the client the best software solution.