November 2014 Newsletter
You can make more friends in two months by becoming interested in other people than you can in two years by trying to get other people interested in you. –Dale Carnegie
Let me never fall into the vulgar mistake of dreaming that I am persecuted whenever I am contradicted. –Ralph Waldo Emerson
The idea that scientific method is the only method of discovering the truth has a lot to be said for it, if you mean by truth how the world ultimately is as a system of organised matter, but I defend cognitive dualism: that the world can be understood completely in another way which also has its truths which are not translatable into the truths of science. So we have to look at the different ways we organise this material that science explains for us. –Roger Scruton, The Soul of the World
Be the chief but never the lord. –Lao Tzu
Thinking is the hardest work there is, which is probably the reason why so few engage in it. –Henry Ford
If you’ve read this newsletter for very long, you know (by now!) that I’m a fan of functional programming (even though I don’t get to use it much in practice!). This excellent article provides some great reasoning about the value that FP brings in terms of helping us prevent mistakes in the first place when we are implementing our programs.
Here’s a nice list of 5 simple (but not easy!) questions that you should ask on any project to ensure that you can deliver value to your customer. I like that he doesn’t try to limit the list to simple “checkbox” items, but rather some more general (and, at times, philosophical!) questions that we often fail to think about.
This article provides an interesting perspective on problem-solving. The essential points are that reframing the problem and potential solutions often lead to better results and that you need to be able to test and validate/refute your hypotheses quickly to avoid spending too much time going down a blind alley.
Most readers know that I keenly differentiate between management and leadership. This interview with the author of one of my favorite blogs, Rands In Repose, explores what it means to be a leader in the world of software development.
Facebook founder Mark Zuckerberg famously coined the motto of 'Move Fast and Break Things'. (And he subsequently changed his mind.) In this article/presentation, the author says that moving with due speed is important, but having a good customer experience is at least as important. His point is mainly in the context of APIs, but applies across the board from my perspective.
Technical debt is almost universally considered bad in development circles. However, this article which compares technical debt to the various kinds of financial debt, it’s clear that the view of technical debt is quite a bit more nuanced.
Competition among technologies is nothing new (remember VHS versus Betamax?), but the competitors often change. Here are some of the technologies and platforms that are vying for mindshare among developers today.
Most of us are familiar with the fact that all software has bugs. Here is an interesting story about how even serious defects in widely used software and libraries can lie dormant for years, even decades.
As a tester, you probably hear a lot about “agile testing”, but many of the resources don’t give you any practical suggestions about how to do it. This article gives several relevant tips that you can use right away to improve your productivity and effectiveness as a member of an agile team.
In my own experience, testers tend to be “glass half empty” people. This isn’t necessarily bad, since it’s part of what makes a good tester successful. At the same time, this article points out that testers may need to take a step back and understand the need to balance quality with time-to-market.
Certainly, no one wants to have to take the blame for a 911 system outage. Likewise, we may not always consider the life-or-death consequences of the applications that we develop or test, but this example shows how easy it is to overlook system limitations or constraints that can snowball into a significant failure.
With the recent spate of security issues in open-source software, such as the Shellshock problem with bash and Heartbleed breach in OpenSSL, pundits from many quarters claim that Linus’s Law has been disproven. However, this editorial says that it’s a misapplication of the concept.
Most readers of this newsletter are already very well versed in at least one programming language and, therefore, when they start out with a new language they prefer a “quick start guide”. This is an excellent one for Google’s Go Language. It takes you through the typical steps of getting your environment configured and then developing a simple web server application that uses external APIs to show the weather. And now you can even write your front-end code in Go!
Algorithms and data structures are the meat and potatoes of software development. Most of us learned them using dry mathematical or code-based explanations. This excellent site has visualizations for many algorithms, from the common to the sublime, along with explanations about how they work.
Hazelcast is a popular open-source in-memory database platform for Java. Although powerful, it is also (somewhat) notorious for being difficult to get started with it. This multi-part tutorial series walks you through the steps to building an example application with Hazelcast, using detailed code examples for each concept.
I try to stay away from (inter)national politics directly in this newsletter, because I want to avoid making it too divisive. (Of course, I recognize that, whether we realize it or not, we all apply our “worldview lens” to everything that we read and hear!) And, usually, economics is too-close a cousin to politics. However, in this case, I’m going to make an exception, because this is a matter of great importance to everyone who reads this newsletter, not least because we are smack in the middle of the sea-change that it is bringing about. This report from The Economist does a good job of being fair about the issue and I encourage you to read it and research more on your own.
By now, you are probably familiar with the flap about Microsoft CEO Satya Nadella’s comments about gender differences in pay for technical workers. This pundit (and serial-entrepreneur) says that one thing that has gotten lost in the whole discussion is the importance (in some cases, necessity!) of asking for better pay when you think you deserve it. She goes to offer some practical advice for making the pitch to your boss.
Looks like technology startup Weeby wants to start an arms race for the best developers by offering a million dollars over four years plus company equity. Weeby CEO says that developers can’t typically have direct bottom-line impact at public companies, but a startup can live and die by their technical staff.
The bottom line for all work, from writing a novel to building the next “big thing”, is productivity. Some new research says that you should work intensely for 52 minutes and then take a 17 minute break. But the key to the whole regime is that the break is spent doing things away from your computer, such as taking a walk, talking to others, etc.
Most of us would probably not show up at our jobs, if we did not need the salary to pay for our houses, cars, food, and the like. However, in some counterintuitive conclusions explained in this article, most workers, while often feeling disengaged, actually want to do meaningful work, but they feel that their supervisors don’t hear or understand this. And it’s not simply a matter of the introduction of technology to the contemporary workplace.
Borrowing from Daniel Kahneman’s ideas about how we think and act, this developer applies them to why we so often underestimate the difficulty and complexity of software development. It’s a very insightful discussion and he makes some good suggestions about how to break the cycle of overconfidence.
The incidence of “accidental leadership”, where a person is moved into a management role simply as a result of success in their technical domain, is quite common. In this article, one of those people offers some great advice about how to succeed, starting with the statement: Effective leadership is all about humility.
In this world of an Internet saturated with graphics and video, who would think that plain old text is still relevant? But, as we’ve seen the growth of Markdown, wikis, and simple presentation engines that use plain text, it’s more relevant than ever. This article gives a nice philosophical perspective on the importance of text. And check out the discussion on Hacker News. And perhaps this is part of the reason for the resurgence of interactive fiction.
As in chess, successful career planning and management in development means that you always need to be thinking at least two moves ahead. This article asks the question about where folks with 10 or more years of development experience are, but doesn’t really answer it. The comments and these discussions on Hacker News and Reddit offer some insight. What do you think? And, more importantly, where do you want to be in 5, 10, or 20 years?
According to a new report from New America Foundation, the U.S. continues to lag the rest of the world in both speed and affordability of broadband Internet access. The cite regulation as the main cause, but, as with most such things, the overall picture is more complex.
With all of the attention on the Republican’s regaining control of the US Congress, this is a story that you probably missed. But it has the potential to have longer lasting effects, at least in the technology realm. Pundits expect this result to push the FCC to make a ruling about municipal broadband.
If you like to have quite a few tabs open in your browser, you are probably also familiar with how they can start to use a lot of memory. OneTab helps by converting all of your open tabs into a list that you can use to re-open all of the tabs or one at a time. You can also export your tabs as a list of URLs or generate a web page from the list.
This cool Visual Studio add-in allows you to get code snippets (examples) via Bing Code Search directly inside Visual Studio. Just enter your question/search on a line starting with three slashes (///) and hit <Tab> to see code samples in the Intellisense drop-down list. (You can see live example on the site.)
Valleyball is a bit of a cross between game and simulation. You make predictions about current and future valuations of non-public companies. You can revise your guesses for up to a month, but then it’s locked in.
Who knew that someone could be so passionate about carrots? Anyway, check out this subtle satire of a lot of the marketing landing pages on the Internet these days.
Recently, we featured this author’s 10 Tricks to Appear Smart in Meetings. She follows that up with some additional tips on how to win friends and influence people via e-mail.
Just a little bit of software testing humor… Enjoy!