Author: <span class="vcard">Jake Savin</span>

As a software project manager, I often run project retrospective meetings with my teams. Sometimes they feel like this:

Most of the time, we actually do ship, even with only one wing. 😉

Uncategorized

Video (screen capture + audio) of the talk I did at Seattle Xcoders a couple of weeks ago is live:

I shared some lessons learned on projects that went off the rails, in spite of having a plan that we thought we could execute on.

No promises on it being a particularly good talk. 😉 YMMV.

How to Fail by Following the Plan (Jake Savin, March 10, 2016)

Uncategorized

Here’s a random (but true) story, inspired by a story someone linked to in Slack this afternoon…


Back in the late ’90’s my brother worked at a small local ISP/DSL provider in Olympia, WA. In those days DSL lines usually topped out at 128-256kbps. A few senior people at his company had dedicated T1 lines at home, so they could get online and resolve outages without the hassle and delay of showering, getting dressed, and coming in to the office. (The T1 lines presumably made sense because an outage might also affect a DSL line on the same infrastructure as their customers’ lines.)

That ISP was eventually sold to another ISP in Santa Rosa, CA, which promptly purchased a fully-outfitted TelCo-style service van for the small team in Olympia. The folks in Olympia apparently used it exclusively to go out for pizza and Chinese food for lunch, since they never actually needed to touch any wires out “in the field”, and probably wouldn’t know how to repair anything even if they did.

Eventually the Santa Rosa company was itself acquired and the people with the T1 lines left the newly-merged company. But somehow in all the transitions the new company completely lost track of what infrastructure was running on those T1 lines that were set up by the original ISP. Since they didn’t know what they were for, they were afraid to turn them off.

So they just kept them running… For years… and years… and years

Strange but True

Apple vs. FBI

Syed Farook, the perpetrator in the San Bernardino attack last December, had an iPhone which is now in the FBI’s possession. Despite their attempts, the FBI has been unable to unlock the phone and unable to bypass the device’s privacy and encryption features.

Apple has long taken the stance that protecting the privacy and security of their users’ data is hugely important, and they have implemented strong encryption on the iPhone in order to protect this sensitive information.

Now a court order requested by the FBI is demanding that Apple build a custom version of iOS that circumvents these security features. This would, in the words of Tim Cook, “undeniably create a backdoor” to the iPhone that “would have the potential to unlock any iPhone in someone’s physical possession”.

Apple’s public refusal to comply, along with supporting statements made by some other high-profile technology companies including Google and Microsoft, has rekindled the fierce debate over the value of strong data encryption, and whether the government has the authority to demand that companies disable or defeat it.

The case is even becoming an issue in the presidential race, as candidates weigh in with their positions on encryption and privacy.

Our Digital Privacy Is Important

With the increasing pervasiveness of smartphones and other Internet-enabled devices, we rely on technology more every day for nearly everything we do. From seemingly mundane personal communications like text messaging, to business and financial activities like signing documents, searching and applying for jobs, and online banking– creating, storing, and sending our information digitally is nearly unavoidable.

When our trust that information we believe to be private is violated, the consequences can be severe. It should be no surprise to anyone involved in designing software products today that software involved in critical business communications and transactions must preserve security and privacy.

But what’s less well understood is that our personal interactions online can make us vulnerable, and personal information is increasingly the target of so-called “bad actors” who want to compromise our privacy in order to commit crimes from identity theft and fraud to stalking and burglary.

As makers of software products, we have an obligation to design and build our products to embody the principle of protecting the privacy and security of our users and customers. This is true regardless of whether the products we make are used for business or finance where security is an obvious concern, or for entertainment, gaming, or social networking where the privacy risks are either less obvious or seemingly less important.

What is Strong Encryption and What Is It Used For?

The most widely used strong encryption technologies are free, open source technologies that anyone can use. They provide key functions that protect your privacy and security, and they are integrated into many products from web browsers and mobile apps, to enterprise email systems, stock trading networks, and cellular phone communications. Encryption is everywhere.

Some of the uses of strong encryption include:

  • Preventing unauthorized third-parties from accessing information in storage devices like hard disks, smart phones and “cloud” services.
  • Protecting data from snooping in transit on the Internet or cellular data networks.
  • Verifying authenticity of messages and documents, and ensuring they have not been tampered with.
  • Proving the identity of a person or company, and preventing imposters from impersonating them in order to attack others.

Of course the same encryption technologies can also be used by criminals to hide information and communication from law enforcement. This is why the FBI wants Apple (and other companies) to provide tools that work around or remove the encryption technologies integrated into their software and devices.

Why Apple is Right to Fight the FBI Order

On February 16, Apple chose to take a public stand against the FBI’s order to make software that enables decrypting data on iPhones, so they can collect evidence in their investigation of the San Bernardino shooting case.

To some, Apple’s opposition to the FBI may seem wrong or even immoral. After all, why would we want to prevent law enforcement from bringing criminals and their accomplices to justice? Of course we wouldn’t.

By supplying software that decrypts data stored on the iPhone in the case, Apple would also be supplying the FBI with tools that could be used to undermine the privacy and security of any Apple device, and therefore anyone who uses one.

Here are some of the specific problems that would arise, which are too important to ignore:

As Apple CEO Tim Cook points out, and as Apple’s follow-up FAQ reiterates, making tools that subvert or remove encryption creates a real risk that criminals or other “bad actors” could steal these tools directly or replicate the methods they employ. This puts everyone at risk, including law-abiding people who uses these devices to store their most personal information.

Once these tools are in the FBI’s hands, there could be tens, hundreds, or even thousands of individual people who gain access to them over time, possibly even extending to other agencies outside the FBI. Even if decryption tools could only be used on FBI premises by authorized personnel, there is no way that the government could honestly guarantee to the public that no person with access to these tools would ever violate their privacy for criminal or political purposes.

There is also a real danger that hackers or organized criminals could get access to these tools through technical means, bribery, or extortion. Criminals could sell or even “weaponize” decryption tools for identity theft, fraud, or other criminal activities, even possibly cyber terrorism.

What’s At Stake

We’ve seen over and over again in recent years, the damage caused to individuals and businesses when criminal hackers steal credit card numbers, social security numbers, and other personal information. But in addition to personal information like contacts and phone numbers, the information we routinely store on our devices can be easily used to gain access to other accounts and systems.

The consequences of a widespread privacy breach on the scale of all smartphone users, or even all iPhone users, could be dire, not just for Apple and the individuals directly affected, but also for the companies and agencies they work for. The potential damage that could be caused by widespread cyber-security breaches puts our economy and our national security on the line.

The erosion of our personal privacy – which strong encryption is designed to protect – could also lead to misuse by private organizations. Imagine your health insurance provider data-mining your location, your driving habits, or who you associate with. Imagine mortgage lenders monitoring your location and discovering you enjoy casinos. What if you went to interview for a job, and they knew every other company you’d sent your resume to, and every other job you’d been turned down for.

Safeguarding our digital privacy and security is critically important. Sacrificing it in the interest of a single case, even with good intentions, is a trade-off that’s not worth making. Allowing this precedent to be set would be to sacrifice constitutional rights that our country’s founders fought fiercely to obtain, and which we should also fight to protect.

 


 

This post originally appeared on the L4 Digital blog on February 25, 2016.

Apple Security

I was living in Dallas when Katrina hit. I was infuriated that so many people were left stranded in such a desperate situation, and baffled by the seeming total lack of urgency to help them.

I still remember vividly welling up with tears of anger and sadness while driving down I-35, at a first-hand report I heard on This American Life shortly after the hurricane while the city was still under water. I considered trying to go to New Orleans myself to help, but realizing how futile and possibly even foolhardy that would have likely been, I stayed put.

Like many others, I gave money to the Red Cross, and we prepared to accept strangers into our home if that opportunity presented itself. I even got involved in state politics, but the candidate I supported was ousted by Delay’s (probably illegal) gerrymandering.

That was around the time we decided it was time to get the heck out of Texas. (No offense to friends and family in Texas: There’s a lot to like, but for us the Pacific Northwest is a better fit.)

Originally written as a comment on a Facebook post by Dave Winer.

Uncategorized

To me, it feels like there’s some kind of inflection point being reached, but I base this on not much more than my own subjective, albeit at least somewhat informed experience.

The obviously important recent SCOTUS decisions are out there of course, but we have multiple justices over age 80, going into a presidential election with a big potential for a backlash, leading to a potential for appointments that could reverse a lot of positive progress.

We had a huge financial meltdown and now 6+ years later a lot more of the general public is well aware that real justice has yet to be served to many of those responsible. Some of the changes we’re seeing may be a result of this.

Some Evangelicals are aligning more and more with liberals and progressives on protecting the Earth and the environment, and are deeply concerned about limiting the impending damage that will be caused by climate change.

And we have generational changes in social norms coming to a head around the world, at a time when mass communication over most of the globe has never been more accessible, in spite of corporate and government attempts to control or curtail it—at least so far.

Look at how many videos are going online all over the country and the world, of police misconduct, racism, and brutally. That this is happening is far from new. That neither the media nor many governments can really control who knows about it is new. The information has been becoming more available for decades, but the visceral reality in these videos has only been widely visible for the last few years.

In Arthur C. Clarke’s world of 2010, wars between nations ended after the abolition of long distance phone charges, which led to many average people having friends all over the world. You can’t attack a country filled with so many people that are loved by your own citizens—that was the thinking. While it’s not working out in quite the way that Clarke envisioned, there is still huge potential in making information from primary sources available globally, at massive scale, and for such little cost.

At the same time the Internet has also led some (many perhaps) into isolated enclaves—information deserts (borrowing from the idea of food deserts in American urban areas), where the only ideas that flow freely are the ones that a clique agrees with, along with a few refrains that they abhor and can use as foils and straw men, to “argue” about how wrong or even evil the other side is.

I for one am cautiously optimistic.

Ps. This post is in response to an online discussion about a Kevin Garcia piece on bedlammag.com.

Uncategorized

My friend Brent Simmons has recently written a series of blog posts—seven parts so far—on How Not to Crash, for Cocoa and iOS developers. Brent is an experienced and thoughtful programmer, and these are well worth a read. Most are probably useful even to programmers working in other languages.

Check them out!

How Not to Crash #1: KVO and Manual Bindings
How Not to Crash #2: Mutation Exceptions
How Not to Crash #3: NSNotification
How Not to Crash #4: Threading
How Not to Crash #5: Threading, part 2
How Not to Crash #6: Properties and Accessors
How Not to Crash #7: Dealing with Nothing

Update: Brent added two more How Not to Crash posts since I originally wrote this:

How Not to Crash #8: Infrastructure
How Not to Crash #9: Mindset

… and wrapped them all up in this post on inessential.com.

CocoaDev Development Uncategorized

Simon Wardley: Evolution, diffusion, hype cycle and early failures:

“I looked at many techniques to measure change and found all of them wanting. I spent years finding out that lots of things weren’t useful for describing evolution. This is why I spent so long in the British Library cataloguing many thousands of publications. There was no effective means of describing the process of evolution until I’d done this work and found a process that seemed to work.”

See also: On mapping and the evolution axis

Uncategorized

Mandelbrot SetMatt Mullenweg writes in “How Paul Graham Is Wrong“:

If 95% of great programmers aren’t in the US, and an even higher percentage not in the Bay Area, set up your company to take advantage of that fact as a strength, not a weakness.

I have heard recently and first hand, that some investors don’t like to invest in virtual companies, or in companies where any of the important team members is remote.

This makes me sad.

It’s especially disheartening in light of the continued and sustained explosion in communication tools and capabilities, and the fantastic reduction in cost of communicating with remote people. At the same time I have friends who are experts with very deep experience who are having trouble finding work.

In my now over 18-year technology career, I’ve spent nearly half of it working with or for remote teams or at virtual companies, and a large portion of my best and most important work has happened while working “remote” from home.

Companies (and people) that don’t figure out how to do this are already at a significant disadvantage against those that do, and have been since at least the early 2000’s. And this disadvantage is more than likely to continue to grow as communication and coordination tools continue to get better and cheaper.

Similarly, investors who don’t understand this fact artifically limit their potential up-side.

When companies open up to the possibility of remote work, they vastly expand the pool of talent they can draw upon. When people live and work in less expensive locations, they may be less expensive, or they may be more loyal because you can pay them more. Remote workers may be happier and more productive because they can tailor their work environment to maximize their own, personal productivity needs.

And when the whole company is virtual, you can decrease operational expenses: There may be no need for an office. The cost and time lost to commuting disappears. Perks that are common in our industry, like free food, on-site massages, and high-end office decor are unnecessary, and the savings can be passed on to employees to use in ways that better fit their personal needs.

Early-stage startups can leverage the savings for a longer “runway”. And for established or so-called “growth” companies, you can use the balance to pay for better people, support travel for company-wide meetings, sponsor related trade shows, or a multitude of other things.

Ps. Bonus link: I Am Not a Child by Emma Plumb

Remote Work

TomcatToday I needed to start figuring out how to install an open source analytics package on my dev machine. It’s implemented in Java, and needed Tomcat. I groaned. “Great. Another complicated dependency to install,” I thought.

Turns out that installing Tomcat on a Mac is actually pretty easy. I ended up following Wolf Paulus’ tutorial here.

Nice write-up, Wolf. Thanks!

Development