< Day Day Up > |
11.2 ProcessAfter about a decade of stringent, heavyweight processes culminating in the rational unified process (RUP), the pendulum is finally swinging back in a more sane direction. While many larger IT shops are slow to adopt them, some of the ideas first collected in the Extreme Programming (XP) method are finally making it into the mainstream. Over the next couple of years, those ideas will gain momentum. I'm seeing customers who were hell-bent against agile development strongly consider it. It takes a long of time to turn a battleship, but it's happening. Continuous integration, automated unit testing, and simplicity are all getting more and more attention. Soon, you'll see full-blown test-driven development creep into conservative programming organizations. The ideas are powerful and sound. The next important step is the reduction of tools. Right now, many developers spend too much time supporting formal documentation rather than concentrating on readable code. Formalized, full-blown UML-style modeling will not help a project as much as simpler temporary diagrams on a whiteboard. The role of a diagram is to improve understanding; if you are only producing it because you have to, and not because it adds value to the design, then don't bother. I also think model-driven architecture (MDA) is moving in the wrong direction. Generated code on such a scale is rarely legible, and visual languages have consequences on performance, reuse, and readability that we're only now coming to understand. You're better off writing simple, concise code from scratch that's easy to understand and maintain. As that battleship comes around, some vendors will resist the simpler process. IBM's recent purchase of Rational gives more financial backing to the vendor supporting one of the heavier development processes, and they're starting to muddy the waters by labeling some of their own tools with the Agile label. Hopefully, independent consultants and academics will champion the lightweight development processes that are far more appropriate for most of the applications built today. Even if you're not ready to adopt a whole new development process, take advantage of some of the principles. Automate your tests, value simplicity, and integrate continuously. |
< Day Day Up > |