Practical Technology

for practical people.

April 11, 2011
by sjvn01
0 comments

Stumbling Towards Agile

Migrating from a waterfall programming model to Agile development means far more than learning new programming techniques. A move to Agile means adopting a new way of seeing software development and project deliveries.

Agile and old-style programmers don’t have to be at each other’s throats. If Agile developers can admit that waterfall created many successful programs and waterfall programmers can see that there’s some advantages to Agile’s flexibility, they might find they have more in common than they’d thought: Creating good, solid software.

It’s easy for developers to get ticked off. Many programmers and testers invest a lot of energy in ensuring that they create the best quality software they can — and often they are so committed to Their Way of Doing Things that they hiss and spit at people who see another path.

Some people have very strong opinions on the matter. For example, Jitendra Subramanyam is no Agile fan. The director of product strategy and research at CAST Inc., a semi-conductor, intellectual property developer firm, says, “The very nature of Agile programming conspires against you.” Bits and pieces of functionality that eventually become interdependent are created and tested separately in different scrums, Subramanyam says. “New functionality is often added on top of old resulting in ‘opportunistic refactoring,’ which further muddies the architectural waters, threatens reliability and performance, and increases the cost to modify and maintain the software.”  Yack! Who’d want to do that?!

Agile proponents see the matter quite differently; many view the waterfall model, sequential software development model in which development is seen as flowing steadily downwards (like a waterfall) through several phases, as inherently flawed. Victor Szalvay, product development lead for CollabNet‘s ScrumWorks sees waterfall software development as akin to a production line conveyor belt: “‘Requirements analysts’ compile the system specifications until they pass the finished requirements specification document to ‘software designers,’ who plan the software system and create diagrams documenting  how the code should be written. The design diagrams are then passed to the ‘developers,’ who implement the code from the design,” Szalvay told me in an interview. Waterfall may sound ideal, Agile supporters say, but in the real world it doesn’t work well.

Perhaps, though, the truth lies somewhere in-between. As Lewis Cunningham, a system architect for JP Morgan Chase, suggests, “Waterfall projects have been successfully creating software for decades. I personally have been doing this for two decades (holy crap, how did that happen?) and while I have seen some less than perfect project executions, I have not seen many abject failures and certainly not at the rates some would have you believe.”

Cunningham continues, “Now, before all you Agile fan boys out there start sharpening your pencils, fingernails, and swords, let me say I am not an Agile opponent. An Agile development methodology offers some very real benefits… I just want to start with the point that waterfall is not bad (or evil).”

What does kill projects then? “Where I have seen projects fail, it usually had little to do with the chosen methodology. It usually had more to do with personal agendas, cowboy coders, bad management, and a nasty us versus them conflict between IT and business,” writes Cunningham.

Tim Ottinger, an Agile consultant, takes a broader view of what can go wrong with Agile deployments. “Sometimes organizational inertia and control issues get in the way. The largest problem is when management expects that only the programmers need to change. The truth is that Agile development touches product management, customer contact, team management, deployment, and schedule management in a deep and significant way. Getting programmers to work in pairs, test-drive code, and re-factor their systems is trivial compared to dropping individual assignments, reducing scope, minimizing work in progress, and connecting customers to development teams.”

So, what is the right way to deal with programming methodology? Cunningham stresses the importance of keeping in mind that “IT exists for the business. Period. No project, using any methodology, should ever start without that assumption and agreement.” Don’t let that, Cunningham continues, trap you into a set-in-stone approach to project planning. That’s not a problem with waterfall, he says. “It’s a problem with management. It’s a problem with the way project management has been taught,” says Cunningham.

You should also keep in mind that project management can be quite different in Agile projects because team members are given more autonomy.

Johanna Rothman, author of Manage It! Your Guide to Modern, Pragmatic Project Management and conference chair for the Agile 2009 conference, says that Agile uses different means to encourage productivity. “Agile makes extensive use of time-boxes to manage risk and finishing work. Time-boxes are an old technique to help people focus, and we use them all the time, whether we manage projects or not,” says Rothman. “Think of [this as] taking a child to a toy store or you going to the bookstore (or the wine store or whatever) and saying, ‘You have 30 minutes, and not one more’ to manage the cost of the purchase.”

But how can you make sure your kids, errr development team, actually get their work done in time? Well, according to Ottinger, you can’t do it by simply pushing speed, velocity, over other factors.  “Naive managers try to push velocity, which is the wrong way to go. Simply putting pressure on velocity will drive developers to cut corners and release messy, incomplete, partially-tested code. Instead of pushing velocity managers need to increase the capacity of the team or the workability of the system. It is a different way of thinking.”

The Agile project managers’ way of approaching problems, explains Susan Elliott Sim, assistant professor at the Dept. of Informatics at the University of California, Irvine is to “divide the work into very small units to mitigate risk, enable course corrections, and constrain scope.” She adds, “These points are especially salient when you look at Agile in the broader context of contemporary and historical approaches to software project management.”

How does this work? Angela Druckman, a Certified Scrum Trainer at CollabNet, says, “Agile project management uses the power of iterations to reduce project risk. Rather than making a lot of predictions and estimations upfront that are likely wrong, an Agile approach allows us to use the inspect-and-adapt cycle to make the best decisions possible with the information we have.”

Who is this we? The project managers? The head programmer? In Agile, the development team isn’t just a project manager and some programmers.

As Laurent Bossavit,  an Agile Alliance board member and director of the Institut Agile says, “Most previous approaches to managing the software development process were based on control. Agile is based on letting go. Paradoxically, that works a lot better and ironically provides much better actual control (in the sense of avoiding many of the ills that plague software projects, such as missed deadlines, budget overruns, poor quality, and low user and sponsor satisfaction) than previous top-down, document-heavy approaches.”

Sim concurs. “Instead of sticking to a contract to make sure that the worst case doesn’t happen, customers and developers work together to try to make the best case happen.” With this approach, there is a re-distribution of authority and responsibility among management, developers, and customers, she says. That, in turn, means everyone, not just developers and project managers, need to see software development in a new light.

Bossavit continues in concrete terms, “People who are interested in Agile tend to be keen on ‘practices’ — what people do on a day-to-day basis, as opposed to what kind of documents they write. There are a dozen or so key practices for which Agile is best known — frequent releases, short timeboxed iterations, ‘user stories,’ programming in pairs, test-driven development, visual management with task boards — and beyond that a few dozen ancillary practices.”

One of those practices is testing. Indeed, from where Jonathan Bach, Principal Consultant at Quardev, a software testing firm, sits, “The main difference between Agile and other development methods, is that ‘testing’ happens at the same time as code is written, allowing fast feedback. With ‘waterfall’ style methods, first the code is developed and then it is tested — two activities which could be months apart.” In addition, “code is delivered a lot more frequently, programmers pair up, people tend to work closely together (in the same room), there are brief stand-up meetings to discuss progress, the work is packaged into ‘stories’ or smaller units, and there may even be an on-site customer to participate in development and testing.”

So the name of the game in shifting to Agile is to incorporate testing and quality assurance into the development cycle. Instead of putting it the project’s end, as is so often the case, it’s a constant part of project development.

The end result, writes Elisabeth Hendrickson, one of the principals of Quality Tree Software and a well-known Agility expert, is that “Agile teams produce a continuous stream of value, at a sustainable pace, while adapting to the changing needs of the business.”

April 11, 2011
by sjvn01
0 comments

Red Hat’s Future Linux Desktop

San Francisco–Red Hat is the strongest Linux company in the world when it comes to servers, but it has almost no presence on the desktop. That will be changing in 2012 with the reintroduction of a Simple Protocol for Independent Computing Environments (SPICE)-based virtual desktop infrastructure (VDI).

It’s not that Red Hat has ever completely done away with the Linux desktop. The Red Hat Enterprise Linux Desktop is still available, but in the big scheme of Red Hat’s business, the desktop counts for little. That may be changing though as Red Hat gets ready to explore a server-based VDI thin-client desktop.

This revised desktop will use SPICE, which like Microsoft’s Remote Desktop Protocol (RDP) and Citrix’s Independent Computing Architecture (ICA), is a desktop presentation services protocol. The point of these programs is to let the servers do the heavy lifting while a thin-client gives the user the illusion of a full fat-client desktop.

More >

April 10, 2011
by sjvn01
0 comments

Mission Accomplished: SCO Loses, Groklaw Closes

Eight years ago, SCO, a long-time x86 Unix company, which had recently been bought out by Caldera, a leading Linux business of the day, shocked the IT world by suing IBM for stealing Unix code placing it in Linux. A Linux company suing Linux’s leading enterprise partner!? While SCO/Caldera did have reason to be annoyed at IBM for how they had handled Project Monterrey, an effort to bring IBM’s AIX Unix to the x86 processor, SCO’s Linux lawsuit made no sense–except as an attack by anti-Linux enemies using SCO as a puppet. I, and others, said the lawsuit was nonsense, but at the time .many people still assumed that where there was smoke, there must be fire. Enter Pamela Jones, a Linux-loving paralegal who hated what SCO was trying to do, and so she started to methodically poke holes in SCO’s claims in a legal analysis blog she called Groklaw.

For the next eight long years, Pamela “PJ” Jones used her legal research skills, and the help of numerous others, day by day and claim by claim, to show just how baseless SCO’s claims against IBM, and later Novel, were. She also helped show how Microsoft financed SCO’s seemingly endless lawsuits.

During those years, she was frequently attacked by people who claimed she was an agent for IBM. Her privacy was attacked by so-called journalists. Others claimed, and still claim to this day, that there is no PJ. That’s utter nonsense.

More >

April 7, 2011
by sjvn01
0 comments

How to cut off the Internet the easy way? A Shovel

According to the Guardian, one little old lady in Georgia managed to cut off an entire country, Armenia, from the Internet for five hours Her weapon? A shovel.

No, I’m not kidding.

The story goes that the woman was hunting for copper, which is worth real money these days everywhere, when in mid-dig, her shovel cut the fibre-logic cable which carried 90% of Armenia’s Internet.

Whoops.

More >

April 7, 2011
by sjvn01
0 comments

Why is Microsoft pushing IE 9 out now? Firefox.

Some people may have been surprised when Microsoft started to push Internet Explorer (IE) 9 out early. I wasn’t. Why not? Because Firefox 4 has been kicking the stuffings out of IE 9 in adoption rates.

According to both StatCounter and Net Applications, Firefox 4 is being picked up by users far, far faster than IE 9.

As Asa Dotzler, Mozilla Director of Community Development, recently wrote, “So what explains this disparity? It’s you all. It’s every one of you that downloaded Firefox 4, found it to be awesome, and told all of your friends and family about it. No ad campaign from Microsoft can top that. Keep spreading the word. Firefox answers to no one but you!”

More >

April 7, 2011
by sjvn01
0 comments

Yahoo: The Linux Company

San Francisco–If you know anything about big companies that run Linux, you know Google runs on Linux. Yes, every time you do a Google search you are, in one sense, a Linux user. What far fewer people know is that Yahoo is also a Linux company. Today, at the Linux Foundation Collaboration Summit, Sven Dummer, Director of Linux engineering at Yahoo!, explained that 75% of Yahoo’s Web sites and services run on Linux. The rest? It runs on FreeBSD.

While Yahoo isn’t as big as it used to be, it still, according to Dummer, has 100,000s of servers, 640-million users, and over a 1 billion visits a months. According to Netcraft’s list of the most popular Web sites in the world, that’s still good enough to put Yahoo in as the 13th most popular Web site on the globe, or the fourth if you count all the international Google sites as one. In other words, Yahoo is still a player.

So what does Yahoo use? Well, Dummer explained, “Yahoo has its own Linux distribution, YLinux, targeted for out specific needs. It’s based on Red Hat’s Red Hat Enterprise Linux (RHEL). Yes, that’s right Yahoo is another Red Hat customer helping Red Hat become a billion dollar company.

More >