I don’t read a lot of business books. I don’t usually find them well written or entertaining, and the lessons they hold are—well, if you’ve gotten far enough in your career, you ought to be able to figure this stuff out for yourself, right?
An exception to this is Peter Drucker. In his 1954 classic The Practice of Management, he exhorts managers to push decision-making as close to individual workers—and as near to the last minute—as possible, an idea as fresh today as when he wrote it. A self-aware manager knows they must leave as many decisions to their associates as possible, even risking failure, because the payoff in their team’s effectiveness is so great. But it turns out this is hard, so most of us fall back on giving orders we hope are correct.
What does this have to do with programmable networking? In this issue’s interview with Karlstad University professor Anna Brunström, Toke Høiland-Jørgensen talks with her about the astonishing performance gains she has found using programmable networking on general purpose hardware. Allowing a programmer with application knowledge to code what should happen to the packets that application is concerned with is far more efficient than having a switch designer try to anticipate all possible cases in advance. As with management, pushing networking decisions closer to the programmer is the most efficient way.
We find a similar theme in programmable hardware in Gordon Haff’s review of our Boston University research projects. Processor makers have spent years and billions of dollars building optimizations to try to do the software developer’s job for them. Using extra cycles and circuit paths, a modern processor makes great speed gains by guessing what code is going to do in advance and invoking optimized paths to do those things. The results are impressive but expensive in power consumption and processor transistor count. As we approach a time when datacenters will consume more than twenty percent of all generated electricity, we need to find ways to be more efficient. Haff walks through a set of projects designed to do computing more efficiently by making optimization decisions dynamically as they are needed, rather than years in advance in the processor design phase.
Good decisions depend on good information, however, and our piece by PhD student Agáta Kružíková and Red Hat security authority Milan Brož shows that even cautious developers aren’t as careful as they should be with security. Kružíková surveyed developers at a large engineering office in the Czech Republic to find out how careful they were with user authentication for their GitHub accounts. Although the results were generally encouraging, it was disappointing to see the number of developers who still do not use the strongest possible authentication. More work on communicating the risks of compromised accounts, and making authentication usable, is clearly necessary.