This feels so familiar

This XKCD comic illustrates something I’ve been thinking a lot about lately. There are just too many instant messaging protocols / services.

I’ve got contacts in different settings who all use different instant messaging apps. In most cases, I try to stick with SMS and e-mail.

The problem is with services like Facebook, which gives the impression that everybody are “online”. I don’t have the Messenger app on my phone, and it may take a while before I’m around FB to reply. Some contacts assume I’m always on their “hip” IM of choice, and confusion ensue.

Apple, what are you doing?

The reason I switched from Windows to Mac, was because of instability and unreliable features in the earlier Windows versions. Building OS X on Unix seemed like a good idea, if you want a stable foundation to a secure operating system on.

It has served me well, since a lot of applications that are a hassle to install on Linux, are available on macOS.

However, for a while, I’ve discovered poor performance on my network shares. I always thought it was due to my old and trusty, but slow 2009 MacBook Pro.

After spending a pile of cash on the new 2016 model, the poor performance continued. Time to do some investigation.

A quick google showed that from OS X 10.11.5, Apple decided to fix a bug (Badlock), which allow for a “Man in the middle” attack. The “fix”, or should I say – quick and dirty hack – in the SMB implementation, gave a lot of users trouble with SMB / CIFS transmission speed.

If you trust your network enough to disable signing (Badlock fix), the speed should be back to normal. Se discussion on Apple.com. Alternatively, use AFP for transmission.

This is exactly the kind of architectural insanity I tried to escape from when switching to the Apple camp.

A new player has entered the game

I’ve written earlier that my choice of OS is the one I dislike the least of the three major ones. However, I’ve recently discovered a new player in the game.

Elementary OS is not a new OS. To me, it looks like a Linux flavor, based on Debian GNU/Linux. What makes it different from other distributions, is their approach to keeping stuff simple. What I dislike most about the major Linux distributions, is their flat leadership style which leads to every feature in the world beeing implemented (Emacs). Secondly, I really miss a user friendly interface.

Elementary OS, is currently hosting a crowdfunding campaign. This is the first Linux distro I consider donating to.

How to improve productivity @ work

I’ve recently been thinking about how different users utilise a multiple monitor setup at home or in the office. A mulitiple monitor setup will, in many cases, help improve productivity, by making you spend less time in context switching when looking up information. However, it seems some users struggle with distractions. [nytimes]

Developers seem to unite on documentation on a secondary screen and code on primary. I can recommend looking at some Stackexchange threads on this.  Here’s two threads on how to utilise a multiple screen setup: Thread 1 and Thread 2.

Personally, I can’t manage without lots of screen “real estate” while working. For less important stuff, a 15″ laptop screen will do (hey, I sometime use my phone). What I have not tried is one huge screen instead of 2×24″. Some vendors produce large super-wide curved screens. Might give it a try sometime. Just make sure not to have lots of distractions (non-necessary webpages, apps, etc) to avoid falling in the pits described in the nytimes article.

Ps. I would also recommend reading up on how you sit in front of your desktop and how you place those monitors. It’s not easy to work when your back and neck hurts.

Long slow death of offshore outsourcing?

Heres an informative article on offshore outsourcing of service and application development. The article, written by Robbie Clutton, Director of Pivotal Labs, is from the beginning of 2016 and covers an important topic.
He argues that offshoring hinders a nimble organization and time to market will be significantly more swift, with an in-source team.
A nimble organization with smaller team sizes will adapt faster and deploy faster. Most businesses have to adapt to new disruptive services, and large outsourcing initiatives are hindering change.
There is also a big issue with being close to the business units, to understand their needs.

War of the Operating Systems

What operating system should I choose?

Have you asked yourself the same question? This is how I look at the three big providers: Windows, Linux (all distros seen as flavours of one), and lastly macOS.

Disclaimer: I have used OS X as my primary OS at home from 10.3 Panther, and I am at El Capitan as of now. At work, I’ve mostly used different versions of Windows, from XP to W10.

What I look for in a OS:

I want it to take advantage of all the hardware in my computer. Bluetooth, Wireless connections, peripherals all need to work. I don’t want to hack for an hour to make my new printer or sound-card to work.

I value personal freedom to choose what vendor I would like for a service. Apple & Microsofts integration of their respective “clouds” make it harder for me to chose a rivalling product. Its also a plus if the big names are present (Adobe for instance).

The OS should be light weight. It is there to facilitate the other applications, not to spend the resources for it self. In my opinion, all the major OS fails in this regards, as they all come with a bunch of not necessary applications.

It seems to me, that Microsoft and Apple ran out of good ideas, and try to expand the operating system into two “new” arenas: tighter cloud-integration and AI. This is not necessarily helping to keep the OS light weight (although you could argue that Apples automatic move unused files away from your computer is.. in a way).

First off: Cloud-stuff is not my cup of tea. I like to keep track of where I put my own stuff. Not having it automatically moved away. What if i need the file, and are on a off-line flight? The tight integration of cloud services in all applications should be a opt-out in my opinion. I’m also not a fan of pay-per-month deals in regards to where I put my important files.

Secondly, why are they so focused on artificial intelligence, aka Cortana / Siri? Why should I want to say “Open reddit.com in Safari” instead of just pressing a reddit bookmark?

macOS

Well, where do I start?. Apple has renamed the good old Mac OS X -> macOS Sierra. With this new release, we’ve seen a tighter integration between whats on your computer, and what’s in your iCloud. Apple believes it is more user friendly, but it makes it harder for me to choose a different provider or even host my stuff on my own NAS.

Apple makes it harder and harder to run unsigned applications found on the net. At some point I fear that all applications must be installed from the App store.

The new features for macOS was so little impressive that I consider switching away from the Apple eco-system.

Windows

Microsoft has made a solid product in Windows 10.  However Windows has some huge shortcomings in my opinion. Yes, PowerShell and Ubuntu Bash among the rest of the improvements in W10 are huge improvements. But still, the start-menu, and tablet stuff has nothing to do on a desktop computer. Also, don’t forget we still have the remnants of “registry-hell”, “dll-hell”, and old GUI elements (I’m looking at you, control panel). This will probably be sorted out in the future. You don’t have to be a wizard to predict that Windows will be a solid competitor for Apples macOS in the coming years.

Microsoft has shown that it can change, with its open source initiative. However, the over-the-top-aggressive information gathering in Windows 10 is not helping me trust the “bad guys”.

Linux

I’ve used different GNU/Linux distributions from time to time. At some point ( > 10 years ago), it was my primary OS. After package-managers arrived, installation was a breeze. When you on Windows had to figure out all libraries and software you needed to set up a development environment, it was just to run “yum install apache-tomcat” or whatever you needed. The package manager would figure it all out for you. Before this, we had the “dependency-hell”, where you would have to manually figure out all dependent software and libraries on your own, and download it separately.

My main concern with GNU/Linux today is two things: GUI and Software. I have a hard time complaining about this, because I know a lot of talented developers have worked for free to make free open software.

KDE 2016 Gui

Let me elaborate on GUI first. Of the main desktop environments Gnome and KDE, both have made huge improvements over the years. Both are relatively easy to customise to your needs. However, they use quite a bit of screen real estate. Especially many of the “apps” that are included. The applications are not as easy to use as their Windows and macOS counterparts. Some applications suffer from “feature-sickness”, and are therefore just ugly. Look at Amarok for instance.

Having Steam on Linux would be amazing back in the day when I did som minor gaming. Nowadays, I want to edit and sort my photos, maybe do some sound mixing, and a bit of software development. Yes Linux does these things, but sadly, both Windows and macOS still does these things better.

In the mid and late 90s, you could not be sure if your external units worked with an Apple computer. This is sadly still an issue on Linux to a certain extent.

To sum it up

I guess I’ll still stay on the Apple bandwagon and drink as much cool-aid to pay Apple-tax for my computers. Not because I’m as enthusiastic of the OS as I have been, but because there is no significantly better alternative.

Don’t design what the user wants

I’ve worked in different IT departments over some years now, and Mr. Sueoka @ The Mobile Majority hits the nail on the head with his short article: “Don’t design what the user wants.”

The user describes what he/she wants based on the context they’re in. For some users, an e-mail for every notification could sound like a good idea. As IT professionals, we should feel obligated to figure ut exactly what the user needs, and then show the possibilities.

Oh, and while it is true that you shouldn’t design what the user initially tell you they want, I believe you shouldn’t tell the user what they need either. Give them a couple of alternatives and let them decide what fits their use best. After all, they are the ones who are going to use it on a day to day base.

Abstract data warehousing and Rolls Royces

When should you use data abstraction in your data warehouse?
(Short answer: when it is profitable for your company)

Cisco has a nice introduction on the best practice of using data abstraction in your Enterprise Data Warehouse (EDW). They argue that the best practice is to transform your data from its original form, into what your business needs are.

From an IT perspective, we often jump on the “Rolls Royce” solution, rather then figuring out what the customer actually needs. We often make pretty and nice looking solutions in scenarios where we might do as well with a quick solution that does the job.

From a business perspective, it is crucial that your deliverables are cost effective and have a short time to market. In other words: the IT solution must make more money then it costs. All in all, do a profitability study / have a positive business case.

Why is this important? Because building a data warehouse is expensive. Building a «Rolls Royce» solution, might be more then you will get funding for. Keep in mind that between 70% and 80% of corporate BI projects fail, according to Gartner. Don’t be too ambitious.

I don’t believe EDW projects are much different. But, of course, there are more reasons a warehouse project fail.

Make sure your BI or EDW project is profitable for your business. Then figure out if you can afford the cost of having a best practice abstract / standardised data warehouse. Don’t implement an expensive solution just because everybody else does it. Look at how this affects time to market for your EDW. How will it affect the time it takes to integrate new data or a new source? (Also, be careful about running large IT projects).

This being said, at some point, most mature EDW initiatives will implement a data abstraction layer into their warehouse.

By the way: i believe the “Rolls Royce” solution is often chosen by IT because it is what most are taught at colleges and universities. Maybe we should introduce a topic «cost effective solutions»?

How to work in an open environment

The last 30 years or so have given a remarkable change in the frames around how we work in an office environments. From closed cell offices via cubicles into an open environment. From name tags on the doors into «free seating».

The response have been mixed. Some employees have sincere and well founded concerns about office noise and how this affects work. Most concerns are related to tasks where you need to be focused, without getting interrupted.

There is no doubt office noise will distract you from your work. The question is whether this is a good thing or not. According to Cisco and many other companies, this distraction leads to more collaboration, new and better ideas.

The thought is to move from a scenario where you are dependent on a few «gurus» who know everything, and all progress relies one these «gurus». In this scenario, tasks are waiting for the guru to get around to solve them. In the corporate culture with an open floor plan, more employees are able to pick a high priority task and solve it. If you are stuck on an issue, or know the solution to a challenge a coworker has, there are less barriers to work together.

The individual employee might work a bit slower, but the synergy effect of working together makes it a better working methodology then the «guru-knows-it-all». For the company – at least.

As usual, this is a trend led by the guys in Silicon Valley. Working agile, encouraging collaboration and informal work environments.

An open floor plan, “free seating“, clean desk, a paperless workflow and a agile work methodology are often interrelated. To gain the most benefit from the above, you need to embrace the new paradigm. You will need the proper utilities available. Software to assist and coordinate agile workflows. A framework for documentation, «how-to’s», and easy access to the information. Applications that lets you notes on all your devices. Take note on a phone, iPad, laptop, and it will be available on your workstation both at work and at the home office.

My 5 cents at least.

When big IT projects fail

Worth reading, before you blame the developers for failed IT projects. In many cases they are just trying to do their job, but are hindered by management. As a developer I try to understand why a certain functionality is needed. Is there a better way? May I join the brainstorming session with the business units to better understand the business need?

Link: And you blame the programmers… blog post is in norwegian, but google might help you.