Cherry-picking and the Scientific Method

Software is supposed be a part of computer science, and science demands proof.

GEORGE NEVILLE-NEIL

Dear KV,

I’ve spent the past three weeks trying to cherry-pick changes out of one branch into another. When do I just give up and merge?

In the Pits

Dear Pits,

I once rode home with a friend from a computer conference in Monterey. It just so happened that this friend is a huge fan of fresh cherries, and when he saw a small stand selling baskets of them he stopped to buy some. Another trait this friend possesses is that he can’t ever pass up a good deal. So while haggling with the cherry seller, it became obvious that buying a whole flat of cherries would be a better deal than buying a single basket, even though that was all we really wanted. Not wanting to pass up a deal, however, my friend bought the entire flat and off we went—eating and talking. It took another 45 minutes to get home, and during that time we had eaten more than half the flat of cherries. I couldn’t look at anything even remotely cherry-flavored for months; and today, when someone says “cherry-picking,” that doesn’t conjure up happy images of privileged kids playing farmer on Saturday mornings along the California coast—I just feel ill.

Cherry-picking and the Scientific Method

How Fast is Your Web Site?

Web site performance data has never been more readily available.

PATRICK MEENAN

The overwhelming evidence indicates that a Web site’s performance (speed) correlates directly to its success, across industries and business metrics. With such a clear correlation (and even proven causation), it is important to monitor how your Web site performs. So, how fast is your Web site?

First, it is important to understand that no single number will answer that question. Even if you have defined exactly what you are trying to measure on your Web site, performance will vary widely across your user base and across the different pages on your site.

We will discuss active testing techniques that have traditionally been used, then explain newer technologies that permit the browser to report accurate timing data to the server.

How Fast is Your Web Site?

 

Related:

High Performance Web Sites

Building Scalable Web Services

Improving Performance on the Internet

 

The Evolution of Web Development for Mobile Devices

Building Web sites that perform well on mobile devices remains a challenge.

NICHOLAS C. ZAKAS

The biggest change in Web development over the past few years has been the remarkable rise of mobile computing. Mobile phones used to be extremely limited devices that were best used for making phone calls and sending short text messages. Today’s mobile phones are more powerful than the computers that took Apollo 11 to the moon, with the ability to send data to and from nearly anywhere. Combine that with 3G and 4G networks for data transfer, and now using the Internet while on the go is faster than my first Internet connection, which featured AOL and a 14.4-kbps dialup modem.

The Evolution of Web Development for Mobile Devices

 

Related:

Making the Mobile Web Faster

Mobile Media: Making It a Reality

Mobile Devices in the Enterprise: CTO Roundtable Overview

 

Making the Mobile Web Faster

Mobile performance issues? Fix the back end, not just the client.

KATE MATSUDAIRA

Mobile clients have been on the rise and will only continue to grow. This means that if you are serving clients over the Internet, you cannot ignore the customer experience on a mobile device.

There are many informative articles on mobile performance, and just as many on general API design, but you’ll find few discussing the design considerations needed to optimize the back-end systems for mobile clients. Whether you have an app, mobile Web site, or both, it is likely that these clients are consuming APIs from your back-end systems.

Certainly, optimizing the on-mobile performance of the application is critical, but software engineers can do a lot to ensure that mobile clients are remotely served both data and application resources reliably and efficiently.

Making the Mobile Web Faster

 

Related:

Usablity Testing for the Web

Mobile Application Development: Web vs. Native

Streams and Standards: Delivering Mobile Video

The Essence of Software Engineering: The SEMAT Kernel

A thinking framework in the form of an actionable kernel

IVAR JACOBSON, PAN-WEI NG, PAUL E. MCMAHON, IAN SPENCE, SVANTE LIDMAN

Everyone who develops software knows that it is a complex and risky business, and its participants are always on the lookout for new ideas that will lead to better software. Fortunately, software engineering is still a young and growing profession that sees innovations and improvements in best practices every year. Just look, for example, at the improvements and benefits that lean and agile thinking have brought to software-development teams.

Successful software-development teams need to strike a balance between quickly delivering working software systems, satisfying their stakeholders, addressing their risks, and improving their ways of working. For that, they need an effective thinking framework that bridges the gap between their current ways of working and any new ideas they want to adopt. This article presents such a thinking framework in the form of an actionable kernel, which could benefit any team wishing to balance their risks and improve their way of working.

The Essence of Software Engineering: The SEMAT Kernel

http://queue.acm.org/detail.cfm?id=2389616

 

Related:

There’s No Such Thing as a Free (Software) Lunch

Purpose-Built Languages

Open Source to the Core

A System is not a Product

Stopping to smell the code before wasting time reentering configuration data

GEORGE V. NEVILLE-NEIL, NEVILLE-NEIL CONSULTING

Every once in a while, I come across a piece of good code and like to take a moment to recognize this fact, if only to keep my blood pressure low before my yearly medical checkup.

http://queue.acm.org/detail.cfm?id=2187657

Managing Technical Debt

Managing Technical Debt

Shortcuts that save money and time today can cost you down the road.

ERIC ALLMAN

In 1992, Ward Cunningham published a report at OOPSLA (Object-oriented Programming, Systems, Languages, and Applications)2 in which he proposed the concept of technical debt. He defines it in terms of immature code: “Shipping first-time code is like going into debt.” Technical debt isn’t limited to first-time code, however. There are many ways and reasons (not all bad) to take on technical debt.

http://queue.acm.org/detail.cfm?id=2168798