Software Development's Show Daily: DAY ONE of SD West 11 April 2001 http://www.sdgnews.com/ ------------- Hello, Linux! ------------- An unabashed promotion of the Linux operating system (OS) was at the heart of open source guru Jon "Maddog" Hall's opening keynote for the Software Development 2001 Conference at the San Jose Convention Center on April 8, 2001. "I'm not using PowerPoint to do this presentation--there are alternatives, you know," Hall said pointedly, and the audience responded to his promise to skewer Microsoft Windows with a laugh. After warning everyone to use the term "Linux" with a trademark sign, Hall proceeded to present a laundry list of the features that distinguish Linus Torvalds's oeuvre from the competition--starting with the conceptual. "If you've never had the feeling of handing someone a CD that has an entire operating system and compilers and networking and source code on it, and saying, 'here, it's free,' well, that's a feeling of empowerment. A little chill goes up my back, even here, describing it," said Hall, executive director of the nonprofit Linux International. Linux was one of the first systems to port to 64-bit systems, Hall noted, largely due to his own background working at Digital Equipment Corporation. In the early 1990s, Hall met Torvalds and supplied him with a 64-bit Alpha system. In nine months, a group of volunteers had ported the nascent OS to the Alpha. Today, Hall said, there are an estimated 30 million Linux users, and with the Chinese government's recent decision to choose Linux as their standard, that number should increase. Mapping global warming or the stars in the sky requires a multi-architecture OS, said Hall, that can easily handle 64-bit computing power for such memory-hungry tasks. One example of a massive Linux cluster is the so-called Loki system, used at Los Alamos National Laboratories to analyze asteroid impacts in space and on Earth. Embedded and turnkey systems are potentially huge markets for Linux, Hall noted. For handheld devices, Linux is especially well-suited: Its kernel can be shrunk to under 100KB, there are thousands of device drivers available, and it has 256 levels of interrupt, a fine time granularity and the ability to use scriptable control interfaces. Hall finished his talk with a photo of a Linux wristwatch. "If you don't believe it's Linux, here's a picture of the shell running, and you can see that it says 'Hello, Watch!' instead of 'Hello, World!'" --Alexandra Weber Morales, Software Development magazine *************Advertisement************** ======================================== MKS Software ======================================== MKS Toolkit allows you to automate and control your Windows environment with powerful scripting tools. Perform system administration, network management tasks, and cross-platform development in an automated environment. Try a FREE 30 day working demo at: http://www.mkssoftware.com/eval/. Plus Developer’s Guide: http://www.mkssoftware.com/docs/cpdg/. ======================================== **************************************** ----------------------- C++ Developers Eye Java ----------------------- Day One of my first SD conference: I walked into what I thought was the Advanced Java tutorial, and stayed long enough to hear "Yes, components were an afterthought in UML." Oops. Found the right room, where Gabriel Torok of Preemptive Systems was teaching a mixed bag of students: mostly C or C++ hacks new to Java, with a few Java coders seeking deeper knowledge. Although the gist was familiar (I've worked with Java since JDK 1.0.4), I gleaned pages of useful nuggets from Torok: * When to compress a JAR file (only if it's being downloaded) * How to be smart about object allocation (e.g., don't reassign Strings) * What's especially exotic and difficult about Java Beans (nothing) * What Java Beans and Enterprise Java Beans have in common (almost nothing) * "I've been working with this stuff since 1995, and CLASSPATH always pisses me off." Several of my fellow students were also wondering about That Other Language. Torok assured us that C# and Java are sufficiently similar that a developer familiar with one won't sweat picking up the other. He also thought that C#'s advent would be good for Java: "I think what you're going to see is Microsoft pilfering ideas from Sun, Sun stealing ideas from Microsoft, which--you know what? It's not a bad thing: competition breeds better products". Hmm. Guess I'd better hit that C# tutorial tomorrow. --Rick Wayne, Software Development magazine ----------------------- It's Not About The Code ----------------------- No matter what kind of process they use, developers should remember that "to the user, the user interface is the system," Dr. Larry Constantine told SD West attendees on April 9, 2001. In his keynote speech, the widely respected author and consultant for Constantine & Lockwood Inc. pointed out shortcomings in both the "Big Guys," typified by the Unified Process (UP) and its Unified Modeling Language notation (UML), and the "Fast Guys," the "agile" process methodologies like Extreme Programming (XP). Constantine advised attendees to pay careful attention to user interface (UI) design, and offered "usage-centered design" as a model to follow. After first highlighting the "Big Guy" processes, Constantine asked for a show of hands: "How many of you have a systematic, well-developed process in place?" Perhaps a quarter of the audience responded. "Now, how many of you actually follow it?" Only a few scattered hands remained. "Almost nobody is using UP and UML as intended," he asserted, saying that too often, expensive process training and software tools ended up as "shelfware." Constantine commented favorably on the code produced using the newer agile methodologies: "The systems I've seen are impressively robust; bugs are eliminated to a degree that's uncommon in applications development." However, he added, the "Fast Guys" had their pitfalls too. "These processes require highly disciplined professionals," he said. "[The] coding cowboys who are the most attracted to it are likely to muck it up the worst." "We don't believe faster is better," Constantine continued, questioning one of the fundamental assumptions of XP: "And in fact, we're convinced now, from decades of experience, that time to market is mostly a myth ... The truth is that if you look at the players and products that succeed in our business, you will find that it is not dominated by first-comers." After examining the features and dangers of the common methodologies, Constantine went on to describe the "usage-centered design" process that he and consulting partner Lucy Lockwood invented, saying that developers have to understand users, their work and what tools they need to accomplish it. He reiterated the central place of user interface design in their process model. "It's the tiny little things. Consideration of every last UI detail by a senior engineer is crucial." Counseling developers to concentrate on "products, not process," he told them to "leave rigor and excessive completeness to methodologists," then paused and grinned at the audience. "Oops, I am one." -- Rick Wayne, Software Development magazine Software Development's Show Daily: DAY TWO of SD West 13 April 2001 http://www.sdgnews.com/ ------------------------------------------ Lippman Leads Contentious Discussion of C# ------------------------------------------ Grudges and an "anyone-but-Microsoft" attitude lead some to develop in Java. Others shun Java with an "anyone-but-Sun" attitude. Stanley Lippman, a faculty member at You-niversity.com and author of two of the standard texts on C++ programming, is in the second category. At his Monday C# tutorial at SD 2001 West, Lippman carefully avoided out-and-out disrespect for Java. But at the Monday evening C# Birds-of-a-Feather gathering, he was considerably more direct, expressing his anger with Sun Microsystems for "the way they lied about C++; the way they treated C++ like Bush treated Al Gore." No slave to techno-fashion, Lippman said he was unimpressed by Java, likes Windows 2000 and thinks Linux is "boring." His diatribe against Sun sparked a spirited debate on which OS had the least egregious support, and the merits of Java versus C++. (The consensus seemed to be "Oh, yeah?" and "Whatever.") Then the developers took a peek into the crystal ball: Will Java or .NET rule application development in five years? If Microsoft can break into the server market in a big way, the developers all agreed, .NET will win, and Java may even marginalized--especially since Java support in Internet Explorer is very much in doubt at this point. Interestingly, this contentious group of developers declared a truce in the language wars when it came to C#: No one disputed its technical merits, and even the Java partisans admitted that .NET seemed well designed. Lippman reiterated a theme heard from other instructors at the conference: "If you learned Java, and you know C++, you've basically got 90 percent of what you need for C#." --Rick Wayne, Software Development magazine ------------------------- Overheard at SD West 2001 ------------------------- Some things you learn in the sessions. Often you learn things from your fellow developers. Here's a sample of what I've picked up this week. Names have been omitted to protect--well, me, really. * "This [book]'s been out for six months." (Pause) "That's ancient in XML time, isn't it?" * "Things like MFC are gonna be ... gone. [C#] is a much simpler and cleaner way to encapsulate the Windows interface." * "Requirements are the 'what you want,' like when your kid says, 'I wanna pony.' Analysis is what you get, as in 'You're getting a tricycle.'" * "It's always harder than you originally think. If there's one thing I've learned about developing software, it's that if it looks easy, that's a warning sign." * "You know, I probably shouldn't have futzed with this code just before the dem--oops." * "Customers who see a train of ever improving value are less likely to panic or act capriciously." * "Never ask users what they want, or they'll tell you." * "My guideline for process is just slightly less than enough." * "There's a BoF [Birds of a Feather gathering] tomorrow, I'll ping you all there." * (On simplifying companies' process-intensive methodologies): "I got this gray hair finding out that when you beat your forehead against a wall, you get headaches." --Rick Wayne, Software Development magazine --------------------------------------- Slightly Less Than Just Enough: Highsmith's Tour of Light Methodologies --------------------------------------- Speaking at breakneck speed, Jim Highsmith--director of the Cutter Consortium's e-Project Management Advisory Service and author of Adaptive Software Development: A Collaborative Approach to Managing Complex Systems (Dorset House, 2000)--gave SD West attendees a whistlestop tour of the major agile processes, pausing at both prominent and little-known places of interest. First stop: Martin Fowler's New Methodology, with its two key attributes: Adaptation rather than prediction; and people over practices, with an emphasis on what works in the real world. In fact, according to Highsmith, more obscure "No-Name" or "Home-Grown" agile methods are burgeoning worldwide, sometimes in the face of company resistance: During his January, 2001 trip to India (a country with more CMM Level 4 and 5 companies than any other), Highsmith found that developers often hid their agile adventures from their company's Capability Maturity Model personnel. Alistair Cockburn's Crystal family was the next stop. Dubbing Cockburn a "methodology archaeologist," Highsmith lauded his human-centered analysis of what companies are really doing as practice, as opposed to theory, noting that they are often two very different animals. Highsmith's "Agile" tour then halted at the DSDM (Dynamic System Development Method), which was developed in the U.K. in the mid-1990s. DSDM, according to Highsmith, boasts the best-supported training and documentation of any agile process in Europe. Its principles of active user involvement, frequent delivery, team decision-making, integrated testing throughout the project life cycle and reversible changes in development parallel the 12 tenets of the Agile Alliance. Highsmith also considers Ken Schwaber and Jeff Sutherland's SCRUM a relevant methodology for today's complex, highly volatile business environment. He noted that the SCRUM Process Overview, concentrated in 30-day sprint cycles, is similar to that of XP (Extreme Programming). The most strategic-oriented lightweight process, Highsmith claimed, is also the least known: Bob Charette's Lean Development is derived from the principles of Lean Production, Taiichi Ohno's revolutionary restructuring of the Japanese automobile manufacturing process. (For the fascinating details, Highsmith recommended James Womack, Daniel Jones and Daniel Roos's The Machine That Changed the World [Rawson and Associates, 1990]). In Lean Development, Charette, Chairman of the IEEE Committee on Risk Management, subverts traditional methodology's view of change (as "risk" to be controlled with restrictive management) with an enlightened model that welcomes it as an opportunity to foster the positive avenues of "risk entrepreneurship." TogetherSoft's Peter Coad was the next luminary featured on Highsmith's tour of light heavy-hitters. Coad's minimalist five-step approach to software engineering focuses on developing an overall model, building a features list, and planning by feature and design, with short, iterative cycles using object models of more shape than detail. With a nod to Kent Beck, Ward Cunningham and Ron Jeffries' Extreme Programming tenets of Community, Simplicity, Feedback and Courage, Highsmith finally reached the agile method's most well-known stop. He praised Beck's contribution of "altering the view of the cost of change" as pivotal to the light processes. Describing XP as a complex system of dynamic practices, Highsmith stressed the integrity of the process as a holistic unit, and warned potential XP users to think carefully before picking and choosing individual components. Highsmith's own Adaptive Software Development (ASD) was the agile tour's last whistlestop. Providing a philosophical background for light methodology, ASD responds to the turbulence of the current business climate by embracing rather than avoiding change. Stressing the critical importance of personal interaction, Highsmith stated that the traditional process-flow diagram obscures 80 percent of the knowledge exchange, and claimed that the most valuable communication occurs face-to-face, with paired programming, in conferences and through informal collaboration. And, while he acknowledged that distributed software teams scattered across the globe face higher barriers to community, tools such as e-mail, chat and teleconferencing can help facilitate communication. Reduced formal documentation is another keynote of ASD and, indeed, all of the light methodologies. Highsmith recommended asking the primary question-- "What do you want people to understand?"--and then building subsequent sets of practices "around that understanding." Despite individual differences, Highsmith's tour revealed two grand commonalities among all the light processes: radical innovation and community. Noting that heavyweight methodologies have their place, he admitted that his own passion centers on paring process to the bone: "Slightly less than just enough ... otherwise, it's too much." --Laurie O'Connell, Software Development magazine