MacBook Pro 2012 and 2015 Performance Benchmarks

Apple tends to make small improvements with each iteration of it’s laptop lines. Between my personal mid-2012 MacBook Pro with Retina and my new(er) mid-2015 work MacBook Pro with Retina I didn’t think there was a much of a difference. Visually they are identical. Most of the tech specs also line up such that I assumed they were equivalent in terms of performance as well.

tl;dr I was wrong.

Looking at the system information and/or the laptops themselves they appear to be quite similar:

From the specs I assumed my personal computer would have the better performance (but that would be odd given it’s age), although my work computer does seem to handle Docker better. To determine which was more performant I decided to use Geekbench to take benchmarks and compare.

Geekbench takes two benchmarks:

Here’s how the two computers compare:

 Score Type 2012 2015
Single Core CPU 3447 3914
Multi Core CPU 11631 13660
OpenCL 6499 27007

Both CPU scores are pretty similar but the massive difference is in the OpenCL compute power which includes the CPU, graphical processing, hardware accelerators, etc. The newer 2015 MacBook Pro is dramatically more powerful. This makes me wonder how much more powerful the newest MacBook Pros are..?

These benchmarks highlight that as consumers (and developers) we shouldn’t only rely on big feature advances when considering an upgrade. Especially with Apple devices where such big feature advances (like the Touch Bar) are few and far between. Instead we should look to the performance gains over time of less obvious features like compute power to make our decisions. (I think I’ve convinced myself!)

Blogging for your Career

It may not seem obvious to the casual observer but one of the major ways the testing community disseminates information is through blogs. When practitioners want to find help or stay informed of the latest on goings, reflect on events, the medium-of-choice are blogs. We are able to disseminate and discuss things online in an open space for anyone to consume and criticize.

For the individual a blog can also serve as a public identity; proof you exist. It signals to others in the community that you feel discussion and sharing are important. It could also signal to potential employers you have depth and experience dealing with issues they may consider to be important.

My current employer contacted me because the CTO saw me write about a topic they had a need for. I consider software testing to be an important role in the world of software engineering so I write about it. To them that was important or at the very least a differentiator outside of my resume or LinkedIn profile.

I believe modern software professionals must shape their own identity or else it will be shaped for you. There may be times when its smart to keep your identity small but not with your career.

At the very least a blog is a starting point. I can’t tell you how many people have used my blog as an introduction / conversation starter for gauging my interest in a job, product, or service offered for the industry. Don’t get me wrong I think writing is hard and requires practice but it can lead to all kinds of interesting connections if you use it right.

There are lots of reasons to blog:

  • the intrinsic value
  • to share what you know and think is important
  • be part of the community
  • advance your career
  • you enjoy writing

Being afraid to write or say something in public is NOT a good reason to avoid blogging. A few years ago when Google was testing their Chromebook concept they created the Chromebook CR-48 as part of the Chrome OS Pilot Program and I believe that having this blog was a major contributing factor to me qualifying (early on) for the program. For more posts on the early versions of ChromeOS look here.

Where do you start?

There are a lot of popular options. In the book Technical Blogging author Antonio Cangiano suggests the 3 options:

  • WordPress (his recommended smart choice)
  • Static site generators like Jekyll (think GitHub pages) or Octopress that use Markdown
  • Blogging services like WordPress.com, Blogger, etc.

Cangiano recommends getting your own web host and setting up a WordPress site because it has the most customization options. Up until a few months ago I would have agreed (WordPress) but I’d like to suggest another option for those who’d rather start writing right away.

Medium

I’ve written two “stories” on Medium here and here and in that short time I have to say Medium is by far the best writing platform. It’s not as great as WordPress for customizing your identity but it is a great writing platform and for anyone thinking about blogging for their career one word of advice – content is king. Start with content. Medium allows you to focus on the content (easy to write, share drafts, simple formatting, etc).

Create your public identity and signal to others in the community what you feel is important. Blog for your career and if you want to do some research take a look at Cangiano’s book. What should you write about? I like Cangiano’s advice:

blog for the position you want, not the one you have.

Life as a Remote Worker

My “life as a remote worker” has just begun. A few weeks ago, the company I work for decided it was time for my small team to let go of its office and work remotely on a full-time basis. To prepare for this change and gain a better understanding of the intricacies of remote work I’ve decided to do some research.

My first reference was the book Remote: Office Not Required by Jason Fried and David Heinemeier Hansson of Basecamp (formerly 37Signals).

There’s been some debate over the tradeoffs of remote work, sparked by Yahoo’s decision to end remote work so “speed and quality aren’t sacrificed.” My experience was limited to the occasional stint working from home or working during business travel. I saw the advantages of sitting next to my developers, over-hearing potentially interesting and useful information. Prior to reading Remote, my position was similar to Yahoo’s – speed and quality must be sacrificed. I suppose that’s why I needed to do research; I was only seeing things from one side.

Remote: Office Not Required seems to cover a large number of the potential problems related to remote work. It takes several positions trying to convince the reader why companies should hire remote workers, why they should consider remote work, how to manage people who work remotely, the assumptions we make about in-office workers and finally how to operate as the remote worker. The last part was the most interesting to me – how to operate as a remote worker, the ups and downs, problems, solutions, etc.

Here are a few of the points I felt compelled to write down. The problems addressed are in bold and the descriptions, solutions or my comments are directly afterwards:

  • People’s homes are full of distractions – Recognize the potential problems and do something about it. Distractions can also serve the purpose of warning us that are tasks aren’t well defined or menial or something similar and it’s time to switch gears.
  • I need an answer now – (I fall into this trap often.) The habit of bothering anyone for anything at anytime. Not every question needs an immediate answer. Email can handle a large percentage of questions, a small percent will need quick responses (Instant Messaging) and an even smaller amount will need immediate responses (Phone and Hangouts).
  • I’ll loose control – This doesn’t make sense if you trust people. Besides people can still do nothing while sitting at their desks. Just because they dress up and come into the office doesn’t mean they’re doing work.
  • Thou shalt overlap – The authors say 4 hours per day is key amount of overlap for collaboration.
  • All out in the open – You need everything available to everyone at all times, otherwise the structure and workflow will be out of sync.
  • The virtual water cooler – Everyone needs a place to hang out for the occasional mindless breaks. Having a chat room, IRC channel, etc. where people can check in and out on occasion allow controlled social interaction and are a break from solitary work.
  • Forward motion – In a physical office there’s a normal flow of information that helps everyone stay current. Remote work looses that so Basecamp uses a weekly “what have you been working on?” email as a friendly reminder.
  • The work is what matters – As in what have you produced today? Focus on the output – although this can vary depending on the job function.
  • Check in, check out – Try to set limits on how much you work. Ask yourself have I done a good day’s work? If the answer is yes, you are done. If the answer is no, try to figure out where your time went and how it was managed so you can avoid problems in the future.
  • On writing well – Writing is more essential than ever for remote workers. Much of the communication happens over email/chat/discussion boards. When hiring for remote workers look to cover letters as writing examples.
  • Test project – “Pre-Hire” or give prospective hires a week to two-week mini project and pay them for it. Unemployed get 1 week, employed get 2 weeks and the exact project depends on what they’re being hired for. Make it meaningful.
  • Contractors know the drill – An ideal training ground for both the employer and employee to try remote work on for size. Both sides get to test drive each other.
  • Stop managing the chairs – The manager’s job is to lead and verify work, not monitor the people (also known as managing the chairs). Managers need to know the intricacies of the work, what needs to be done, what can cause delays, be creative with problems, and divide the work and many other things. (This seems like its applicable for both remote and in-office work).
  • Building a routine – One hack is to divide the day into chunks like “catch up”, “collaborate” and “serious work”. In testing we use similar time-boxed periods also known session-based testing and test management. Without clear boundaries between work and play it can be hard to get stuff done.
  • Staying Motivated – If it’s taking a week to do a day’s job, that’s a warning message. If motivation is slumping it’s probably because the work is weekly defined and appears pointless.

Another interesting point not listed above is the authors don’t recommend using remote work (or telecommuting) as a way to save money on facilities or people. (I’m sure the facility savings is the reason my company closed my office.) The author’s company Basecamp and the other often-cited example, WordPress, use their savings on facilities to organize regular employee meet-ups around the world. Instead of the primary motivation being cost saving, the authors argue employers should be able to find skilled, qualified workers regardless of where the company has a physical presence. Unless you live in an area with a lot of local talent (like Silicon Valley) it makes sense to widen your search. Even if you have some talent you’ll have to compete with other local companies and can you really afford to compete with companies like Google?

If you’ve paid attention to the telecommuting / remote work debate you’ll probably recognize a few of the bullet points. If you recognize all of them don’t worry the book has plenty more points, these are just the ideas that I felt compelled to write down. I’d definitely recommend it.

Continuing the research my next read is The Year Without Pants by author Scott Berkun on his year and a half working with WordPress. I also have a few books to read on productivity practices like Personal Kanban in a Nutshell which might apply. Have I missed any other good references?

Other resources:
http://mashable.com/2014/04/10/the-telecommuting-dream-is-dead/

Lee Kuan Yew: The Grand Master’s insights on China, the U.S. and the World

Lee Kuan Yew has been the prime minister of Singapore (an island nation or city-state) for about 50 years and is credited with taking them from a developing country into one of the world’s largest economies as measured by Purchasing Power Parity. Singapore has an interesting story, transforming itself in just a few decades from almost irrelevant to a top nation economically.

I don’t recall how I first heard of Lee Kuan Yew (LKY) or how he became a topic of conversation but his accomplishments as a political leader seemed interesting enough that I wanted to learn more so I bought The Grand Master book. As I was reading the book I also saw his interview with Charlie Rose. At an age (90) he is slow and quiet to answer things but it’s good watch if you want to learn more about him (and have an hour). Some of the things they talk about are also covered in the book:

The book is broken into chapters that discuss the future of China, the U.S., U.S.-China relations, India, Islamic Extremism, globalization, democracy and the way LKY thinks. Each chapter presents a dozen or so questions and the answers are provided through a selection of interviews picked by the authors. This makes the book a compilation of very interesting and diverse interviews about the above topics but it also means some of the selected replies are duplicates, which can, at times, be a little confusing.

Some of the highlighted points include:

  1. It’s China’s intention to be the greatest power in the world and its neighboring countries have already taken this into account. They’ve repositioned themselves because they know there will be consequences if they try to stop China. China can simply deny access to its 1.3 billion people whose incomes and purchasing power are increasing.
  2. China is getting more aggressive as its position in the world increases and it understands it can deny access to its markets.
  3. China has a lot of handicaps going forward like the abuse of the rule of law (the Chinese still behave like they are run by an emperor); a huge country with little emperors running around controlling local areas; cultural habits that limit creativity, imagination and expression; a language that shapes thinking around epigrams and 4,000 years of text that suggests everything worthwhile has been said; a language that is difficult for foreigners to learn; and the inability to attract and assimilate talent from other societies around the world.
  4. China is not going to become a liberal democracy; it would collapse if it did. There won’t be a revolution for democracy either, just look at Tiananmen Square and the impact that’s had – very little.
  5. The U.S. is going through a rough patch with its debt and deficits but America will not fall to second-rate status. Historically the U.S. has demonstrated a great capacity for renewal and revival thanks to a wide range of imagination and pragmatics; a diverse population that competes in investing, embracing new ideas, taking risks; a society that attracts talent from around the world and assimilates them comfortably; and a language that is an open system that is the language of the leaders in science, technology, business, etc.
  6. In the US Presidents don’t get reelected if they give a hard dose of medicine to their people so there is a tendency to procrastinate, to postpone unpopular policies in order to win elections. This is how we get budget deficits, debt, and high unemployment carried over from one administration to the next.
  7. The US’s approach towards China with human rights groups, threatening the loss of most-favored-nation status, etc. ignore the differences of culture, values and history and hurt China-U.S relations. Less sensitivity and more understanding of the cultural realities of China can make the relationship better.
  8. India has wasted decades in state planning and controls that have bogged it down in bureaucracy and corruption. A decentralized system would allow more centers like Bangalore and Bombay to grow. The caste system has been the enemy of meritocracy. India is a nation of unfulfilled greatness.
  9. There are limitations in the Indian constitutional system and political system that prevent it from going at a high speed. Whatever the political leadership wants to do it has to go through a very complex system.
  10. Islam has not been a problem; however contemporary radical Islam or Islamism is a problem.
  11. The Russian population is declining. It is not clear why but alcoholism plays a role; so do pessimism, a declining fertility rate, and a declining life expectancy.
  12. There is no historical precedent on how to maintain peace and stability and to ensure cooperation in a world of 160 nation-states. And the age of instant communications and swift transportation, with technology growing exponentially makes this problem very complex. In one interdependent, interrelated world, the decline in the relative dominance of the leaders of the two blocs increases the likelihood of a multipolar world and with it the difficulties of multilateral cooperation.
  13. Westerners (The US) have abandoned an ethical basis for society, believing that all problems are solvable by a good government… In the West, especially after WW2, the government came to be seen as so successful that it could fulfill all the obligations that in less modern societies are fulfilled by the family… In the East, we start with self-reliance. In the West today, it is the opposite. The government says give me a popular mandate and I will solve all society’s problems.

There’s a lot more detail is this book of nearly 200 pages, for example LKY goes more into the U.S.’s problems, like the war on drugs and the US’s tolerance for illegal immigrants but is optimistic in our ability to solve problems when we finally come together.

lky

I would definitely recommend this book to someone wanting to learn more about Lee Kuan Yew’s views of the world and/or anyone interested in International Politics / Relations. Given the international views we (I) have as (an) American’s it’s refreshing to read someone else’s views on the world and how the US fits in. That’s not to say LKY is a know-it-all, or doesn’t make mistakes but his leadership is unrelenting.

The Role of Testing by James Bach

The following is a summary of the essay The Role of Testing by James Bach from the book Amplifying Your Effectiveness: Collected Essays.

The essay goes like this: After not liking his time as a developer James thought being a testing manager would provide more wiggle room, since testing is a little more vague than programming.

James says “I used to think that the role of testing is to find problems.”

Finding problems was easy but not satisfying in the long run (I can attest to that) so after one of the managers at Apple sent around a book called Quality Without Tears he became a bug prevention, zero defects tester.

Then James says “I used to think that the role of testing is to assure quality.”

Yet testers can’t really assure quality because perfect quality is an inherently unreachable goal with many dimensions to it. Testers don’t create quality, most of the time its not in their power to perform. If testers assume the mantra of quality gatekeepers then it’s likely the rest of the team will take less responsibility for quality. QA will be there to assure it and when they can’t it’s their fault. Additionally many QA people naturally exert control by defining processes and auditing compliance which often slips into moralizing about quality until all anyone can agree on is good quality is good and bad quality is bad.

At some point James’ manager let him in on a secret: testing is about the search for risk, not perfection. Finding important problems fast is the game, not covering the entire system in detail. To do so you have to understand which parts of the product really need to be tested which can bring the tester more into alignment with the rest of the project.

Then James says “I used to think that the role of testing is to analyze risk.”

Yet risk is an abstract (although important) concept. To some it sounds like a way to focus on the negative – what’s risky, while the business takes the opposite approach – encouraging risk (entrepreneurial).

So James says “Today, I think the role of testing is to bring vital information to light in support of the grand mission of creating great products and running the business. That includes finding problems, assessing quality, analyzing risk and in any other way helping the team to understand what’s going on.”

This was my favorite article from the entire book because the subject of the “role of testing” doesn’t seem to be widely understood today, 12 years after this book was published. The simplicity of James’ statements show how he embraces each idea and then discards it, showing us how he learned a little and moved on – lessons learned, if you will.

I wonder, does James still think this way? How long did it take before he realized a certain “perceptual role” didn’t work and began looking for another? From the limited experience I’ve had studying his work I can see how this evolving view influenced his career. For example James has written articles on (heuristic) risk based testing. His Rapid Software Testing course uses a combination of these “perceived roles” to focus only on the important parts that matter – increasing the time you can spend on testing – hence the titled ‘Rapid’.

I think in a way James is right, our role as testers is to light the way. Although saying that sounds too abstract, too feel good. Whatever the right phrase, helping the team understand the product seems like a good direction.

The book is called Amplifying Your Effectiveness: Collected Essays edited by Gerald Weinberg, James Bach and Naomi Karten. It’s a real quick read and you can pick up a copy cheaply on Amazon or eBay. At 140 pages or so it was super quick to read. According to the book this essay was adapted from an article called “Rethinking the Role of Testing for the e-Business Era.” Cutter IT Journal, Vol. XIII, No. 4.

Review: Exploratory Software Testing – Tips, tricks, tours and techniques to guide test design

Some of the first testing books I read were from James Whittaker’s How to Break Software series. Those books, like this one, are laid out in a practical manner with each chapter focused on a specific attack or approach making them easy to read, reference and apply. Perfect for learning. I picked up this book a few years ago when I started questioning the way I was testing. The material was new to me and made me ask what is exploratory testing and what does touring have to do with it?

According to Whittaker (pg. 16) exploratory testing (E.T.) is testing where scripts or rigidity have been removed (paraphrasing). Whittaker explains his terms “E.T. in the small”, decisions made where the scope of the testing is small and “E.T. in the large”, decisions made when the scope of testing is large (small might be a screen in an application while large is the whole application). At the end of chapter 3 he mentions E.T. can be done in a way that allows test planning and execution to be completed simultaneously which is one of E.T.s most important aspects and simplest definitions. Touring (as in a tour guide or sight-seeing) becomes a metaphor for and a way to structure E.T.

There are eight chapters in the book plus a number of appendices. In the first few chapters Whittaker discusses what he sees as the case for software quality (the context of the book), introduces E.T. and explains how he uses it, in the small and the large. The next four chapters cover tours he and others have come up with. The last chapter is about how Whittaker sees the future of testing or at least how he did at the time of publishing.

The first appendix, A, is one of the most important parts of the book: building a successful career in software testing. Whittaker talks about how he got into testing and gives some advice on “getting over the hump” to be a better tester. Appendix A is short but worth reading. The rest of the appendices are old blog posts from his Microsoft days.

As a beginner I found this book much more valuable than I do now several years later. I understand E.T. is an approach to testing that can but doesn’t necessarily include tours or scripts. It isn’t just manual testing either. For reference Michael Bolton (the testing expert) has some good posts in what E.T. is not: (notice how the first post is about touring?)

As you might not guess from the title of this book it does not do a proper job explaining E.T. in a way that one can use it, aside from following the tour metaphor. In fact after reading it again this book seems to say to the reader: these tours are the best, don’t you agree? It’s important to understand exploratory testing is about the way you work, and the extent to which test design, test execution, and learning support and reinforce each other.

According to James Bach the term “exploratory testing” was coined and first published by Cem Kaner and has been worked on by Bach, Whittaker and Kaner (among others) over the last decade. It seems a bit odd that in a book about E.T. Whittaker never mentions their work and provides no references for the reader to follow up. Apparently Whittaker thinks the easiest way to explain E.T. is through testing tours (hence the book) while Bach has a more direct explanation of what constitutes exploratory testing. I found Bach’s post more informative, applicable and frankly cheaper than Whittaker’s Exploratory Software Testing book.

Exploratory Software Testing (the book) offers a limited metaphor for understanding exploratory testing. It isn’t as practical as Whittaker’s previous books because you can’t apply the teachings very well without fully understanding what E.T. is and how tours fit in. If you only want ideas on how Microsoft’s testers used the touring metaphor to “perform” exploratory testing then you’ll get four chapters of information otherwise Exploratory Software Testing is worth skipping.

I wrote the same review on Amazon under the heading “Limited metaphor for exploratory testing”.