Years of working in IT, especially in the financial and medical industries, have made me more paranoid than most people about data privacy considerations. We’ve all seen the data breach headlines from companies like Target, Home Depot, Adobe and countless others. These are companies with dedicated security teams charged with taking important measures to secure customer data who have nevertheless failed in this effort.
While the threat of a data breach cannot be eliminated entirely, having a written policy and methodically following it will go a long way. In many jurisdictions, companies are legally obligated to have such policies in place, so why shouldn’t you?
Having a written policy keeps any decisions out of the hands of arbitrary choice.
Should you feel inclined to develop a data security policy of your own, feel free to use mine as a template. It is released under the MIT License.
Once upon a time, in an economy far far away, the measure of a company was its balance sheet alone.
While a company must be profitable in order to stay in business, focus today is shifting to a more broad collection of measures, many of which have nothing to do with the bottom line. Organizations focused on achieving long term success are adept at firmly establishing their core values, attracting and retaining talented individuals and teams who embody these values, and communicating with customers authentically and transparently.
“As individuals and companies, everything that we say and do is a symbol of who we are. And it is only when we communicate our beliefs authentically that we can attract others to our cause, and form the bonds that will empower us to achieve truly great things.”
This principal applies to organizations of all shapes and sizes. When choosing local produce the other day, I was presented with a choice between tomatoes grown by a local organic farmer and another set of similar tomatoes with simply a PLU 4064 and a somewhat smaller price tag. While I’m a frugal person at heart, seeing the name of the farmer and her nearby community made the choice clear to me, and I went with the local option because of the value provided to both myself and my local community. Ten or twenty years ago, this choice might have been unheard of. Individuals have started caring about “where” their food comes from, and this relates directly to the “why” of the person or organization who produced the food.
In the more ephemeral software realm, it can be hard for a customer to differentiate between a software platform from Initech Corporation or a similar product from Hooli. There was a time when companies could remain competitive on simply the number of features offered and the price, but the relevance of those two factors alone is waning, especially as the sales price of millions of pieces of software and apps approaches zero.
In software, a bullet-proof strategy is to have an ecosystem built around an ethos. While there is more to it than the field of dreams mantra “If you build it, they will come,” with other things equal, a clearly communicated “why” will separate the passionate innovators from the rest.
Companies and organizations are a powerful force in the world, and are able to organize and operate based on the ecosystem around them. There are limitless opportunities out there for us humans, as stewards of this planet, to make it a better place. Sir Richard Branson sums this up well.
“…imagine all the good that can be done when all companies place emphasis on purpose. Many customers want to buy from businesses that share similar values to their own, so more and more consumers are aligning themselves to impactful companies that sell social or environmentally-conscious products and services.”
I encourage each of you to get out there and build successful organizations or work to effect positive change in the organizations you are a part of.
This morning, my wife asked me to fix the printer so that she could print some forms. Sure, I could have spent a few minutes fighting with printer drivers and what-not, but I hate printing and printers – They seriously stab at my soul.
If you remember the MadLib notepads you had as a kid, then this will be very familiar to you.
The premise is that you have a story with words cut out by type.
For example, “_______ (person in the room) is an excellent _______ (job / profession) who once _______ (verb) a/an _____ (noun) with his/her bare hands”
There would be a separate page with the following form, and while filling it out you can’t see how the words will fit into the final narrative shown above.
Person in the room
Job / Profession
Once completed, the form might look like this…
Person in the room
Job / Profession
Then you transfer the words into the narrative from earlier and you get the unusual story of George the fireman who impales sharks.
“George is an excellent fireman who once impaled a shark with his bare hands”
Since I was unsure of her internet access at the location of the event, I needed to build something that was completely self-contained and did not need internet access while it was running. She has a Mac, so slapping together a WPF app wasn’t a straightforward option without installing a VM.
I’ve been learning Node.js in my spare time (since @chimon1984 thinks it might catch on one day), so this was a perfect real-world scenario for me. I had about an hour to time-box the project and set off to code it up in my pajamas on a Saturday morning.
The technologies used are all free and very simple to install and get running with. I’m assuming Linux or OS X, but it could be made to run on Windows without many additional steps.
If you want to check out the code and try it yourself, hop on over to the GitHub where I’ve posted the code. Feel free to use it any way you like, as it has a standard MIT license and submit Pull Requests for improvements and updates. There’s a todo.txt section with things I might add to it as I have free time (whenever that mythical time might be).
I have a project in which I’m maintaining both a beta and a release branch. Bugfixes need to be applied to both branches, except in cases where the bug has already been fixed in the release branch, in which case it would only need to be addressed in the beta branch.
Yesterday I ran into a case where I wanted to just merge a single commit from “beta” to “release” in order to apply a fix from “beta” directly to “release.”
It Kind of blew my mind how easy this was…
1. Find the commit you want to take from the source branch beta. In this case its hash was af19aadbcfa61d2d2816307044318d637d35cee5.
2. Switch to the branch where you want to apply the commit.
git checkout release
3. Apply the commit from dev as a new commit of equivalent changes to the beta branch.
I used to think that changing jobs every couple of years was risky and could lead to less job security.
In the last couple of years, I have learned that the inverse is true. (at least for my industry and skill-set.)
I’ve stopped caring whatsoever about annual performance assessments and “moving up in the company” but rather focus on delivering projects successfully and keeping my eye out for the next cool project to work on. Outside your current company, nobody cares about your eleven-star annual reviews at another company – nobody.
There are enough failing software projects to jump into and get back on track to last me many lifetimes.
Software projects don’t (and shouldn’t) last forever. If you stick around after it ships, and v1 should ship in a year or less, you’re either doing maintenance or put onto the next project the big wigs deem to be important work for your team. At that point, don’t limit yourself to the project you’re given unless you can be passionate about it. Some folks can be passionate about whatever project they are on currently – and in a lot of ways I envy them- but as a “glass was designed twice as large as it needs to be” engineer, I cannot.
Find something you’re passionate about. I promise you it’s out there.