How to think about engineering effectiveness
I think a big part of the problem is that we—as an industry—are not very good about thinking about how to make engineers effective. For our software, especially back-end software, we can measure its goodness by the number queries per second it can handle, the number of incidents we experience, and the amount of hardware we have to buy to run it. Those things are easy to measure and even fairly easy to tie to financial implications for the business.
Engineers’ effectiveness, on the other hand, is hard to measure. We don’t even really know what makes people productive; thus we talk about 10x engineers as though that’s a thing when even the studies that lead to the notion of a 10x engineer pointed more strongly to the notion of a 10x office.
But we’d all agree, I think, that it is possible to affect engineers’ productivity. At the very least it is possible to harm it.
The Twitter EE motto is: “Quality, Speed, Joy”. Those are the three things we are trying to affect across all of Twitter engineering. Unlike that other famous triple, Fast, Cheap, Good, we believe you don’t have to pick just two. In fact they feed into each other: Building things right will let you go faster. Building faster will give you more time to experiment and find your way to the right thing. And everybody enjoys building good stuff and a lot of it.
This is an interesting way to look at developer productivity. Generally in my experience, when there’s an emphasis on speed in the sense to ship something on a tight deadline, the quality of the project might suffer. However, this isn’t speed in the sense of tight deadlines. It’s speed in the sense of writing code quickly which as Mr. Seibel points out, frees time to experiment and explore better ways of problem solving.
Dave Kennedy for Ars:
Researchers are still poring over the unusually large dump, but already they say it includes user names, first and last names, and hashed passwords for 33 million accounts, partial credit card data, street names, and phone numbers for huge numbers of users, records documenting 9.6 million transactions, and 36 million e-mail addresses. While much of the data is sure to correspond to anonymous burner accounts, it’s a likely bet many of them belong to real people who visited the site for clandestine encounters. For what it’s worth, more than 15,000 of the e-mail addresses are hosted by US government and military servers using the .gov and .mil top-level domains.
There are some incredibly smart people working in the federal government—and then there are these people.
Company veterans often say the genius of Amazon is the way it drives them to drive themselves. “If you’re a good Amazonian, you become an Amabot,” said one employee, using a term that means you have become at one with the system.
In Amazon warehouses, employees are monitored by sophisticated electronic systems to ensure they are packing enough boxes every hour. (Amazon came under fire in 2011 when workers in an eastern Pennsylvania warehouse toiled in more than 100-degree heat with ambulances waiting outside, taking away laborers as they fell. After an investigation by the local newspaper, the company installed air-conditioning.)
For some reason “genius” doesn’t seem like the right word.
Our industry is in complete denial that the exponential sleigh ride is over. Please, we’ll do anything! Optical computing, quantum computers, whatever it takes. We’ll switch from silicon to whatever you want. Just don’t take our toys away.
But all this exponential growth has given us terrible habits. One of them is to discount the present.
When things are doubling, the only sane place to be is at the cutting edge. By definition, exponential growth means the thing that comes next will be equal in importance to everything that came before. So if you’re not working on the next big thing, you’re nothing.
I’ve been trapped here myself and only recently (within the past 2 years) was able to notice it. Realizing it is one thing. Breaking the habit is another.
As if all of that wasn’t enough, Apple Music gave me one more kick in the head. Over the weekend, I turned off Apple Music and it took large chunks of my purchased music with it. Sadly, many of the songs were added from CDs years ago that I no longer have access to. Looking at my old iTunes Match library, before Apple Music, I’m missing about 4,700 songs. At this point, I just don’t care anymore, I just want Apple Music off my devices.
I trusted my data to Apple and they failed. I also failed by not backing up my library before installing Apple Music. I will not make either of those mistakes again.
Early adopters generally pay a price in being the first to encounter undocumented bugs—but loosing your data is a steep price to pay. I haven’t tried Apple music yet because I don’t have much interest in playlists in general, but I’ve also been bitten by adopting software too early which generally causes lost time and frustration all for a very small endorphin boost of trying something new. Apple Music will add little if any value to my life so there’s really no rush for me.
At any rate my mind is blown that he doesn’t have any backups. Back up your data kids! It’s not one of those lessons you will want to learn the hard way.
WordPress currently powers about 23% of the web. As we work our way toward 51%, WooCommerce joining Automattic is a big step opening WordPress up to an entirely new audience. I can’t wait to see how much more we can build together.
Seems like a good fit and something that can help Automattic grow in the commerce market—which is a big part of the Internet.
Type theory has its origins in an attempt to fix a critical flaw in early versions of set theory, which was identified by the philosopher and logician Bertrand Russell in 1901. Russell noted that some sets contain themselves as a member. For example, consider the set of all things that are not spaceships. This set — the set of non-spaceships — is itself not a spaceship, so it is a member of itself.
Russell defined a new set: the set of all sets that do not contain themselves. He asked whether that set contains itself, and he showed that answering that question produces a paradox: If the set does contain itself, then it doesn’t contain itself (because the only objects in the set are sets that don’t contain themselves). But if it doesn’t contain itself, it does contain itself (because the set contains all the sets that don’t contain themselves).
Russell created type theory as a way out of this paradox. In place of set theory, Russell’s system used more carefully defined objects called types. Russell’s type theory begins with a universe of objects, just like set theory, and those objects can be collected in a “type” called a SET. Within type theory, the type SET is defined so that it is only allowed to collect objects that aren’t collections of other things. If a collection does contain other collections, it is no longer allowed to be a SET, but is instead something that can be thought of as a MEGASET — a new kind of type defined specifically as a collection of objects which themselves are collections of objects.
An important distinction between set theory and type theory lies in the way theorems are treated. In set theory, a theorem is not itself a set — it’s a statement about sets. By contrast, in some versions of type theory, theorems and SETS are on equal footing. They are “types” — a new kind of mathematical object. A theorem is the type whose elements are all the different ways the theorem can be proved. So, for example, there is a single type that collects all the proofs to the Pythagorean theorem.
The article goes on to discuss Vladimir Voevodsky reasonings for the adaptation of a new type theory informed by homotopy theory as a replacement for set theory in mathematics. This would allow computers to check all mathematical proofs—which apparently we can’t currently do with set theory.
We took the My K-cup away and quite honestly we’re wrong.
What’s surprising here isn’t that they were wrong, but that it took them this long to own up to it and address the problem.
Microsoft released a free (not open source though) IDE called “Visual Studio Code” or “Code” for short. It has built in code integration the’ve dubbed “IntelliSense” that’s backed by their TypeScript library. Interestingly enough they’ve even released a Linux desktop package.
It seems like Microsoft is trying hard to gain any kind of relevance in the web development space built on the Open Source Software development model — especially in the Nodejs and Angular communities. Building multi-platform tools for web developers is a step in the write direction, but they have a big ditch to dig themselves out of. Any web developer that uses Unix or Linux has to break the association of software quality and Internet Explorer, before really being able to use a Microsoft product for their job.
It my hunch that these products are less for the Unix/Linux converts, but more likely intended for developers already using MS technologies and needing to be developing in either a Unix or Linux environment.
Steve Robinson Self Portrait on a Discovery repair job. Photo NASA
Kathy Sierra (Serious Pony) Fluent Conf 2015 keynote discusses the optimization techniques for learning quicker by acknowledging our cognitive capabilities and modifying how we approach learning and mastering new skills or working with new APIs. I’ve been fascinated with cognitive overhead for a while – it’s great to get practical recommendations on how to combat it besides the common advice of simply exposing yourself to less of it by reducing daily choices across the board. This is definitely worth your time if you’re a web developer or are in a position where you’re required to do a massive amount of learning in a constrained time period.