Integrity without knowledge is weak and useless, and knowledge without integrity is dangerous and dreadful. –Samuel Johnson
A work is never completed except by some accident such as weariness, satisfaction, the need to deliver, or death. –Paul Valéry
If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is. –John von Neumann (1947)
[The common definition of estimate is] “an estimate is the most optimistic prediction that has a non-zero probability of coming true”… Accepting this definition leads irrevocably toward a method called what’s-the-earliest-date-by-which-you-can’t-prove-you-won’t-be-finished estimating. –Tom DeMarco, Controlling Software Projects: Management, Measurement & Estimation (1982)
The most deadly poison of our times is indifference. –Saint Maximilian Kolbe
Scope creep can kill an application development project. This author warns about a problem that can be just as detrimental, but more insidious: implementing “solutions” to problems that are only imagined by the development team or business or “cute” features. He notes that project managers need to ensure that work is focused on solving the correct problems.
https://medium.com/@george3d6/imaginary-problems-d4f2921bd1b8
One of the core principles of Scrum methodology is the daily standup meeting. However, somewhere along the way, many teams have lost the agile flavor of this meeting. This author notes that standups have the (presumably unintended!) consequence of having plans and priorities changed too frequently, among other things. He says that you should abandon standup meetings, since it encourages better collaboration and communication on the team through organic means.
https://medium.com/@jsonpify/you-dont-need-standup-9a74782517c1
Undoubtedly, you understand that development work has changed substantially in just the past 5-10 years. Instead of building soup-to-nuts applications, most work involves putting the various pieces of existing infrastructure together in novel and innovative ways. This article emphasizes that gold-plating our applications wastes resources and that providing business value is the true measure of successful development. Moreover, the author notes that employers need to be transparent with employees and candidates about the realities of this world.
https://www.karllhughes.com/posts/plumbing
Business customers (and project managers!) typically want to know two things about a project: “How much will it cost?” And, “When will it be done?” Effort and duration estimation is still a black art in most organizations and most developers aren’t skilled in this area. Here are some practical suggestions about how to provide accurate, yet imprecise, estimates and when (and how!) to say that an estimate can’t be provided.
I’m usually wary when something claims to be the “ultimate”, but this article provides a thorough discussion about the metrics you should (and shouldn’t) use in an agile process and some great points on the philosophy of how to use them effectively.
https://www.extremeuncertainty.com/agile-metrics-ultimate-guide/
Successful teams tend to be a diverse bunch. This article notes that one of the balances that need to be maintained on teams is between those who are good at getting the project launched and the folks who push it to completion and into production and that these are unique skill sets.
https://blog.andyet.com/2018/07/10/starters-finishers-and-large-teams
Perhaps the title of this article confuses you, because the difference between the two seems esoteric or immaterial. The author explains the difference and emphasizes that both are necessary, but serve different purposes. He notes that one should not get lulled into the false belief that unit tests developed during TDD provide a comprehensive testing regime.
https://medium.com/@mauricioaniche/testing-vs-writing-tests-d817bffea6bc
A tester’s job is to find all problems in an application and make sure they are fixed, right? Well, the reality is that not all defects are created equal and the fundamental role of the tester is risk management. This article emphasizes that bugs need to be assessed based on a variety of criteria including safety, economic impact, and the like to decide which ones should be fixed.
https://blog.bugsnag.com/application-stability-monitoring/
Homomorphic encryption allows public processing of encrypted data, such as via a cloud service, without decrypting the data. This tutorial explains the concepts, including the math behind, using simple principles (just algebra!) with plenty of diagrams to enhance understanding.
https://blog.n1analytics.com/homomorphic-encryption-illustrated-primer/
The React.JS front-end (client-side) framework has become ubiquitous in web development. The key to successfully using it is understanding how it quickly and transparently refreshes only the portions of the page that have changed via the virtual DOM. This article pulls back the covers on how it works.
https://medium.com/nybles/demystifying-react-s-virtual-dom-eb0f2dc0717a
Famously, Linus Torvalds quipped, “Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” And, certainly, data structures and their design are key to successful programming. This tutorial teaches you the concepts behind some of the most important data structures by explaining their implementation in C++.
http://maclanewilkison.com/arrays/
Certainly, you know that your compensation is not only about the actual salary, but more about the buying power of that salary. This analysis shows that Texas is the top location, but almost any location in flyover country fares better than cities on the coasts.
https://spectrum.ieee.org/view-from-the-valley/at-work/tech-careers/best-city-for-software-engineers
Based on 11 dimensions of evaluation of data from 9 sources, this comprehensive list ranks the top programming languages. Python tops this year’s list with C, C++, and Java very close behind. The interactive chart allows you to adjust the list, based on the factors most important to you.
https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018
With the US at “full employment” for the first time in more than 10 years (or not!), the most noticeable difference in the economy is that wages are still low by almost all historical measures. The article looks at why even in such a tight labor market, salaries aren’t going up and how this may be the “new normal”.
http://www.latimes.com/business/hiltzik/la-fi-hiltzik-employment-20180710-story.html
Programming is (at least, still!) a human activity and, accordingly, our emotional side can benefit us or cause problems. This interesting perspective looks at how the strength of our beliefs and challenges to them can cause difficulty and how we can moderate them to work well with others.
http://hangaroundtheweb.com/2018/07/cognitive-dissonance-in-programming/
Signaling changes in the competitive landscape of telecom, the FCC says that providers don’t have to wait for owners or incumbents to move cables on poles before they can attach new cables. The so-called One Touch Make Ready (OTMR) rules allow a single contractor to handle all attachment changes at the same time.
Pony, which the name pays homage to common development joke that application customers often want every possible feature “and a pony” and created by Microsoft programming language researcher Sylvan Clebsch, might be labeled as a cross between Rust and Erlang. Pony’s key benefits are in concurrency and safety (type, exception, and memory) and it uses the Actor-Model programming paradigm. Pony has its own standard library which makes it broadly useful. For great introduction to using Pony in a real-world application, check out this article.
What if you could use native Java code in your Bash shell scripts? Well, now you can with bashj. It acts as a “bridge” between the shell interpreter and Java allowing you to use Java, including all standard libraries, in your scripts.
http://fil.gonze.org/wikiPG/index.php/Project_bashj_:_a_bash_mutant_with_java_support
This simple Google Chrome extension provides a notepad on browser new tabs with Markdown support. It allows you save your notes and they are persisted between sessions via localStorage() API. And you can even browse the revision history of the notes.
https://github.com/plibither8/markdown-new-tab
Check-It-Out is a tiny JavaScript/Node.JS shell utility that works with Git to give you an interactive menu of the available branches of the repository that you are in. You can select the specific branch to check out, look for tags, even view the Git log to see the history of a branch.
https://github.com/jwu910/check-it-out
This tool is a simple console/shell-based GUI for Git that can significantly improve your productivity when interacting with your repositories. It’s similar in layout to Git Extensions, but also quite simplified. You can browse the Git history, switch branches, stage files for commit, commit, and push all from a convenient GUI. It’s built with Go and binaries are available for Ubuntu Linux from PPA, but you’ll have to build from source on other platforms, which is quite easy with Go.
https://github.com/jesseduffield/lazygit
Icon-Meter is a small system monitoring utility for Windows that runs in the system tray (Notification Area). It provides separate icons for CPU, network, and memory, and disk and you can hide any icons you like. The icon bar graphs can have either vertical or horizontal orientation and you can double-click on the icons to launch the Task Manager.
https://github.com/oscarkcau/Icon-Meter
Emoji have become more than just icons for text messages/IM. What happens when a domain expert evaluates emojis from a variety of popular social media platforms? Check out this article to find out and to learn which service has the most accurate ant emoji (a.k.a. “U+1F41C”).
http://curlicuecal.tumblr.com/post/175362924100/an-entomologist-rates-ant-emojis
How much functionality can you squeeze into source of 280 characters? Here’s a fully-documented script that generates an ISO file that runs a simple Tron game from the boot loader. Crazy!
https://www.quaxio.com/bootable_cd_retro_game_tweet/