Yesterday was an anniversary in the Bucknall household. It marked nine years since I joined DevExpress as their CTO. It was on the Ides of March, 2006 that I started this life of a remote employee – I live in Colorado, DevExpress was in Vegas and is now in Glendale, CA – and I must admit it’s been fairly successful, at least on my side. What can I say about the last nine years from that personal viewpoint?
Yeah, brilliant. Well, sometimes.
For the first 8 years I worked exclusively at home, not counting the week-long trips to the office every month or so or to conferences representing the company. Since April last year I now spend some of my time working at Epicentral Coworking, if only to get out and about and to talk to people face to face , where “talk” doesn’t mean “type something in Skype”. The problem with working at home is, well, loneliness. No one to have a chat with, no one to bounce ideas off of, no one to just say good morning to. Having said that you do have complete freedom to work whatever times you want in whatever clothes you want (although I tend to get dressed properly and work Colorado time in the morning and California time in the afternoon) but then if you are not careful the normal home chores rear their head. After all, I’m at home and so I can put the dishes on, or do the clothes washing. Oh and while I wait for the coffee to brew I can whizz the vacuum cleaner around a bit. Sometimes the cats come in for some lovin’ and cuddling. It takes some doing some days to just close the door on it all and concentrate on the work – hence Epicentral.
Working at Epicentral is great. It’s just like going to work in an office. You sit down in their communal work area, and because everyone around you is working, so do you. You can concentrate on what you have to do and get it done. The biggest issue I find is that I can’t do anything that involves webinars, such as the rehearsals and so on. After all, you’re in a big room with a bunch of other people and chatting via your mic is distracting to others. So those get done at home. Another issue (unless I pay $100 a month more for a private desk) is I do like to have two or three screens. Maybe the old eyesight is going (or my memory) but I find it easier to work on several monitors: have a browser open on this monitor and Visual Studio open on that one. With a private desk I could buy a spare monitor and leave it there. Mind you, the last few times I’ve gone I’ve taken my MacBook Air as well so that I can have two screens going with that particular permutation – Synergy is loaded on both so I can share the keyboard and mouse (and use copy/paste) between them.
At home of course I have a three-screen setup on a bigger faster laptop, with a mic on a RØDE boom arm permanently attached to my desk. So I parry the convenience factor of working at home with all mod cons versus the working with other people around and with smaller laptops and lesser peripherals.
Yes, I decided to split this off into its own section. Working remotely is difficult. Coincidentally Scott Hanselman wrote about this today Tragedies of the Remote Worker: "Looks like you're the only one on the call" and I’d have to say I agree with most of it. I’m usually online from 8am Mountain to 6pm Pacific. The client services people can reach me, the evangelists too. If needed, I can voice-Skype too, with a dash of webcam.
The biggest issue is meetings. Holy crap, but they’re difficult when you are remote. Now I can imagine Hanselman has more group meetings than I do – I basically have a lot of one on one conversations – but when there’s a group meeting (say sales-related, or perhaps about something internal like office issues) I wish for younger ears and better hearing. Imagine: your co-workers are gathered around a table with a meeting phone in the middle. They can see what’s projected, can see each other’s reactions. You on the other hand? Ha. Let me laugh a bit more: ha ha ha ha ha! You see nothing. When a discussion starts in the conference room you have major issues actually parsing the words between the people talking over each other. Bah.
The other issue with working remotely is finding out what is actually happening in the office. You are reliant on your web of informants in a way (you know who you are!) to tell you about the office politics, what’s going on with who and where and when. If you didn’t know, you feel cut off.
OK, I’ve given up. When I joined, there was VCL and WinForms and ASP.NET. Piece of cake. I’d actually written apps using them, and lots of those apps. Then came WPF and Silverlight. Er, OK. Let’s learn enough to understand the issues and solutions, but anything more than that you’ll be lucky. MVC? Thumbs-up. Then I got into JavaScript. Big time. You may have noticed. So lots of client-side, and then DevExtreme and TestCafe. Now we have Modern apps for Windows 8+ (aka, Metro), and Universal apps for Windows 10, and Xamarin.Forms. Again: you’ll be lucky if I learn more than the absolute basics. IF anyone ever asks me to write a XAML app, it would be slow going at first (with lots of Googling), but after that, sure thing. You could say I’ve given up being a passable Jack-of-all-trades, I’ve struck my stake into the ground.
And I think that’s so for the largest part of our trade, of our market. People know what they know and are able to pick up a new technology should their job require it or are forced to because of changes in hardware or the platforms. (An example: more and more often we are getting laptops with ultra-high-resolution screens. Far more than in the old days we use text settings that are not the usual 96dpi of old. If we did we wouldn’t be able to read the text on the screen at the usual visual distance. You wouldn’t believe the number of apps that do not do well at these larger text size settings – my new Surface Pro 3 has four settings, my Dell XPS 12 three. Even apps from Microsoft as I discovered with Word the other day. Content is cut off, lines are cut in two horizontally so you only see the top half, the works. Older run-times like WinForms just don’t do well with this situation at all, you have to use a run-time based on vector art, text that isn’t nailed down to a certain pixel width, XAML. Or you use a browser and web apps. Either way, you’re forced into learning a new run-time and a new platform.)
And that’s even before we talk about mobile: the phone and the tablet and the watch and the Internet of Things. Yes, there are experts in these platforms. But they tend not to be experts at the desktop, and vice versa. And they’re even split by platform: iOS vs Android vs Windows vs Blackberry vs (god help us) Tizen.
The developers’ trade has become more fragmented over the past nine years, split by the hardware they have to support, and the platforms they have to develop on. Choose your platform and run-time well, grasshopper. You will get to know them very well before time and tide force you to learn something else.
I’ve now accumulated nearly 18 years in the third-party library business, almost nine years with TurboPower Software and now nine years with DevExpress. From this vantage point I can safely say, now, more than ever, developers are reliant on external libraries. Sure, in the JavaScript space there’s the old joke about not liking a particular library: just wait a couple of days and there’ll a new open-source library to replace it. Nevertheless everywhere there’s the constant pressure to release something quickly, release something visual, release something with great user experience. Sure you can do this all on your own, writing dashboard elements, deploying charts, designing layouts. Or you can leverage other peoples’ code and previous work and get finished faster. Yes, it sounds like marketing-ese, but it’s true.
At DevExpress, for example, a team of three or four can release the first iteration of, say, a charting product for Universal apps in six months. The only way they can do that is because of the previous ten plus years writing charting products for all the other run-times and platforms. Experience, in other words. They know how to make sure labels don’t overlay each other in a chart. They know how to track the mouse cursor with an element of the chart so that a subtle animation can happen when it travels over the element. All of those myriad interactions take time to learn, take time to design, take time to develop. Not impossible, sure, just expensive in terms of time and resources. Only you can say whether the cost of a third-party library is worth avoiding all that other work. From my viewpoint: take advantage of third-party libraries whenever you can to save you time and effort in the long run.
We’re entering (and have been entering) a development arena where time is of the essence. There is so much software to write, so many platforms to support, so many users to make happy. Just don’t waste it on stuff you don’t have to write.
Anyway you look at it, nine years is a lot in any position, let alone a technology position in a market that changes so rapidly. I’ve learned a lot at DevExpress in my position as CTO, and I hope I’ve imparted a lot to the rest of the company. Let’s see what happens in the next nine…
3 Responses
#1 Ian McNeill said...
17-Mar-15 12:26 AMgreat read. Remote working seems more advanced in the states than the UK, well certainly Scotland. Something we're considering carefully at UoE given growth ands pace constraints. The actual tech section was a good read as well ;) ta
#2 Mike Yancey said...
19-Apr-16 12:48 PMWell, well - came here for the K&E Deci-lon, but it became a coincidence at DevExpress. We use your DevExpress suite internally at my company (a second-largest cable company in the USA). I've built it into some workflow applications that handle advertising video and spot workflow. Love the DevExpress.
#3 julian m bucknall said...
19-Apr-16 2:13 PMMike: Cool, glad you like DevExpress' products and that they're helping! As regards the K&E Deci-Lon, I've just become the owner of an Aristo 0972; talk about a wackily big sliderule. Post is coming...
Cheers, Julian
Leave a response
Note: some MarkDown is allowed, but HTML is not. Expand to show what's available.
_emphasis_
**strong**
[text](url)
`IEnumerable`
* an item
1. an item
> Now is the time...
Preview of response