For years I've been talking to my teams about "ego-less development". I don't remember where or when I heard about the concept, but I thought I'd take a couple minutes to talk about what that means to me.
For me, ego-less development starts with the recognition that not everything is about me. All of this code we write daily is code written by us on behalf of and for the organization that employs us, and for which we are paid a (hopefully) fair wage. When we are done writing it, we do not own it. It is not who we are. The idea behind an ego-free environment is that you check your ego at the door, and do your best to produce the best software for the company the best way you know how.
You can think of software as commissioned art. Not every piece is perfect, but when the project is over, the piece sits in the living room of the commissioning person to be enjoyed by that person, not taken home.
When you take the perspective that the code that you write is not yours, it becomes a lot easier to decouple yourself from the code you write. Many people take criticism of their code as a criticism of their own person. While criticism on your code can include a criticism of your skill set, it's should not be intended to suggest anything wrong with you as a person, even though your mind might translate the criticism.
The translation works like this: What's said is "Well, I see something wrong in this code here." What is heard is "You wrote this code. Something is wrong with it. So something is wrong with YOU! STUPID!"
If you're a team lead, you need to make sure that the culture changes so the message comes across correctly. Here's a couple things I've found really helpful in cultures I've been part of:
Freely admit your own mistakes: Everyone makes them. It's no fun to make them, and worse to have things blow up because of something you did. When things do explode, fess up. No excuses. "I did that. I'm really sorry." You're looking to demonstrate the correct approach that you're looking for. Lead by example.
Let people know it's okay to screw up: While habitual bad performance has to be addressed, not every little failure is something team members should feel like they have to fret over. Be honest. Don't gloss over it by saying it's okay. "Yes, you screwed up. We've all been there. We'll do what we need to fix it."
Don't map ownership of specific code to people: If there's a bug found in the system, there's a tendency to say something like, "Oh, looks like a bug in your code. Guess you better get in there and fix it." Once the code is integrated, it's company code. You don't own that code. Anyone can go fix it. Throw the bug in the backlog and let the next available dev snag it.
Use positive language, even when disagreeing: Yes, this is software, and at some point you've got to ship. Sometimes there are differences of opinion, but you lose the instant you say something like "Well, the smart thing to do is..." That's another way of calling someone stupid, if they legitimately disagree with you. Language and communication sets the tone. Make sure that you phrase the argument in terms of risks, rewards, costs, or benefits. "The problem I see with approach A is that X, whereas this other approach [note: not "my approach"] avoids that problem."
Let's say you even get to Nerdvana and have an ego-free environment. Never forget that there are scores of cognitive biases out there and that at any point, you may be falling prey to them. Keep an eye on your own communication to ensure that you're truly communicating the way you would like. Even in an ego-free environment, people still can be defensive.
Not many environments work as one-person bands. Great work takes great teams. Great teams are formed by trust. Check your egos at the door, and build that trust in your environment today!
Sunday, September 7, 2014
Sunday, July 20, 2014
Why I'm Giving Up on Windows Phone
I love Windows Phones. I really do. I picked up the Lumia 900 a couple years ago, and replaced it with a Lumia 925 when that one broke after two years. But I think I have to leave Windows behind, and here's why.
In the ago:
I've never been what you'd call a "gadget guy". Sure, I like the cool toys of every generation, but generally don't want to make it priority to buy gadgets as an early adopter. I've got two kids and not a butt-ton of income I'm willing to consider disposable enough to stay at the forefront of the technology adoption curve.
Cell phones had been out for years before I got one. I'm still not sure I did the right thing. It's an expensive thing that tethers you to the beck and call of both work and home in ways that were impossible before. I love and crave asynchronous communication in my life, and telephone calls just aren't that.
But I did it, because peer pressure in the workplace, and all the cool kids were doing it. And I ended up with the most modest little brick phone I could find. It took me years just to adopt the "cool" phones you could flip closed to hang up on someone when you were angry.
I can't even remember what year it was that I got my first smart phone. One of my buddies had been extolling its virtues for a while, and I eventually caved. And in that moment, my life changed.
iPhone era:
I think it was the iPhone 3G. It was many, many versions ago, but boy, was it handy. It took a relatively resourceful individual and made him into "problem solving man"! Stuck on the road and didn't know where to go? Shoot, I got GPS, y'all! I could get my email via phone! I could search the internet to find anything! I could look up movie times!
And everything was great. For a while.
Compared to the desktop, the application model seemed so limited. I didn't like having to close one app to open another. I didn't like the app store experience all that much, and I despised iTunes, with its huge PC-slowing bloatware (I haven't ever owned a Mac - I hear that integration is better). Battery life just wasn't that great, and a phone without a solid battery becomes a useless brick when the charge is low.
But the last straw came when my wife's iPhone was stole while she was out and about. Someone snatched it right out of her purse (this was back when digital devices were apparently worth something on the black market). We called AT&T. We called Apple. According to them, nothing they could do to brick the device when stolen. Nothing they could do to protect the information on the device. Nothing they could do to even help us restore the information, because iTunes supposedly stored all the useful information for a backup in a binary format that couldn't be read, except to restore the file onto a new iDevice.
We did not want another iDevice. The whole experience left a bad taste in our mouths, and we decided to try the new OS on the block: Android.
Android era:
So we did our research and decided that for our next his/hers phones, we'd each go for the Motorola Droid X, the media darling of the day. And we liked Android. Both of us, which is pretty rare when we can agree on a technology.
Android was slick. The app store worked. Everything synched to our gmail, our contacts, it ran all the apps we wanted (well, not really, because Android wasn't the big player it is today back then, but enough of them). It all felt slick and non-proprietary and easy to use.
But ultimately it wasn't for me. It seemed that the battery drained way too fast. Over the course of the couple years I owned the Droid X, the performance seemed to get worse and worse, like a Windows PC all loaded up with background cruft. You'd tap an icon and nothing would happen, so you'd tap it again, and wait and then two taps would register and who knows what the effect was going to be? Cloud apps weren't quite there yet, and to try to figure out how to get all my disparate information off and refresh the whole phone seemed ridiculous to me. There just had to be a better device.
Enter Windows Phone:
I think it was at Codemash 2012 that I was expressing this displeasure to Clark Sell, Min Maung, and Lwin Maung. They were all talking about the new Lumia flagship device that was launching or had just launched. This was the Lumia 900, and it was going to be great. I think they all had Lumia 800 and in playing with the phones, the whole OS just felt right. It felt intuitive, easy to use.
I did my reading. This phone was optimized for usability. The OS gave priority to touch, so that even if something was processing heavy, if I tapped the phone, by gum it was gonna respond. I was in control, not the currently active thread, and it felt like it. The OS managed threads ruthlessly, and if I'd not been back to an app in a while, it would hibernate the thread and keep the resources running clean.
The phone also seemed optimized for battery life, too. Black screen was the default. You don't think much of it, but a black pixel is off. A white pixel is on. It does affect power consumption for an OLED screen, like the Lumia 900 was going to have. Further, the Windows Phone has a lot of nice features about degrading services gracefully as power gets lower. It extends the battery life for seamlessly turning off services for you.
Overall, the phone just worked.
So I got one, and it was amazing. It was quite literally everything I wanted a phone to be. Great battery life, great threading model, meaning it was always responsive. Uploaded pictures to the cloud. Pretty great camera for a phone.
Upgrading to the Lumia 925:
I eventually upgraded from the 900 to the 925. The 900 didn't support the push to Windows Phone 8 or whatever the release was called, and that had some features that I thought I wanted. I put it off for a while, but ended up with an issue with the headphone jack that would have required a repair or refurb, so I figured, "Why not?"
And things were good again. Migrated my data over to my new phone, got the Windows Phone 8 OS, and all was hunky dory.
Now, one thing should be noted. All this time that I'm loving my Windows Phone, I'm not loving some of the choices it's forcing me to make. I like to listen to podcasts, and a lot of podcasts simply aren't available on the Windows Store. I made do, because I only have so much time, but it sure made it hard some days to find something to listen to.
On top of that, RunKeeper, a popular program for GPS tracking my runs, dropped support for Windows Phone. Broke my heart, really, because it's not as if they didn't support Windows Phone. They stopped supporting Windows Phone. They betrayed me.
Then there were all the apps that I liked that never supported Windows Phone. Sure, there were alternatives you could find, or maybe someone would release a dumbed down version of the app you liked, but it was never the iTunes or Google Play store. But given the positives, I still wasn't really willing to go back to those models I didn't like so much.
The straw that broke the camel's back:
This past week I went down to North Carolina. The family piled in the Kia and drove down, I mean. And when it's my turn to drive, I need my podcasts, while everyone else is sleeping or otherwise occupied. So I fire them up, plug the aux cable into the headphone jack and start listening.
About a minute in, the podcast cuts out mid-sentence. That's strange, so I have to look at the phone and figure out why. Oh, looks like it's paused. Well that's weird. Ok, so press play and back to listening. And it does it again. And again.
It is a nice feature that when the headphone plug is unplugged, the music or other media stops playing. In this case however, it seemed like bumping the headphone plug or cord in a particular way would cause the audio to pause. And because we were on the road jostling, this happened every few minutes or so. For hours on end.
Of course the headphone jack issues with both Nokias could be a coincidence. But they were both out of warranty when it happened. Feels like shoddy work, or even planned obsolescence. After hours in the car driving back, knowing full well I can't use this device now to run with either, it's decision time.
And I pull through the Walgreen's drive-through to pick up prescriptions today on the way home and what do I see?
There's even an obvious little space where to put the "Available for Windows" logo. But it's not to be.
So now I'm torn. I need to move off this Windows thing and admit that it's simply not going to happen for Microsoft. Wouldn't be the first time a really good product didn't make it, so I am not too unhappy, but now I'm wondering where to go next.
Now taking suggestions:
So, I've seen the iPhone 5 and used its camera. It's pretty fast, but I don't know much else about it. My wife never took the Windows plunge and has a Galaxy S3, but that phone is acting weird now, too, and she's ready to chuck that, too.
So seriously asking... What phone next, and why?
Thursday, July 10, 2014
Inspire the Troops
Ok, so today I want to talk to the team leads, the tech leads, and the tech managers out there, the people that other developers and software engineers look to when they want answers, the people whose job involves technology thought leadership.
One of your biggest challenges at your job is motivation. Not yours, obviously. No, you're the kind of go-getter who gets up in the morning and eats a big bowl of "I can do it" for breakfast. You read blogs. You watch your favorite speakers on Twitter. Your motivation is beyond reproach.
But you've got folks on your team who have been doing this whole development thing awhile. Maybe they've been working on that document management subsystem for two years and are really coasting. Maybe they've been stuck on the same platform or same language so long that you see them not being able to think outside the box for a solution. Maybe they are sitting around waiting for direction instead of proactively looking for improvements the way they used to. That doesn't make them bad employees. Life sometimes happens.
As a team lead, you need to get their enthusiasm up. You need to generate in them a lust for coding. Not so they'll code for you 12 hours a day. Don't do that. Burnout is as bad as or worse than a lack of enthusiasm. No, you need your folks to enjoy coding, to enjoy solving problems, to think about their work critically and try to find and suggest new ways of doing things.
But that's a slippery and elusive thing to go looking for. Team motivation might as well be your white whale. You've tried lunch and learns, brown bags, watching team internet videos, and that seemed to help, but you're only one person, and you can't do your job and also manage an inspirational team calendar. Or maybe you can and it's just not enough.
So here's what helped me. That Conference. I've made it no secret that community conferences changed my life. That's just me. But you're not me. You're a successful team lead. You've got the motivation. So don't come to That Conference. Send your team. Here's why.
See, if you want them trained on a particular topic, send them to Pluralsight (I'm not a shill, and they're not a sponsor, but I've had good luck with them). Send them to a class. There are lots of good training programs. Sometimes those programs inspire, to be sure. But I've seen so many people sit through a dull class and come out bored. That's if they were even happy to be there or paying attention to begin with.
What about big conferences, like TechEd, or Google I/O, or one of the huge $2500/ticket conferences (never mind the per diem, the hotel stay, the air fare => maybe you're looking at a $5k total)? They have value, sure, and employees may be motivated by the fact that you've given them a perq. There's value in that , too. But motivation to code and get things done may not be the value there. Maybe it's too marketing-speak. Maybe it's too specific. Maybe it's too platform-limiting.
That Conference, and polyglot community conferences in general, are designed to inspire. By getting attendees into a place where the boss has no presence and giving them a buffet of technologies to feast at, you allow them to rediscover why they came to that field to begin with. You offer them a chance to see different approaches, try different platforms, or understand a different technology culture.
August 11-13, we're hosting the biggest, baddest community-led technology conference/summer camp at the Kalahari Resort up in the Wisconsin Dells. 150 sessions on a glorious and dizzying array of technologies are available to attendees. Encourage them to go to sessions outside their comfort zone, and they may amaze you with what they learn. Even if they stay near to their platform of choice, however, they will find their ideas challenged, and their techniques extended with everything from overview sessions to deep dives.
Of course, it's not just about the technologies. At the end of the day, we're all people interested in similar things. Many of the Speakers (err... Camp Counselors) are industry leaders, but they don't fly in and fly out without interacting. They hang out, meet people, share war stories, and in general are available. I have chatted to people on Twitter forever and then met them for the first time in person at community conferences. Meeting inspirational people is just another way to get motivated. Heck, just meeting a new colleague at another company who is doing similar types of development can be rewarding.
All that would be totally invaluable at the price of one of the bigger conferences. Inspiration and motivation are hard to create, but they seriously affect your team's productivity. That Conference tickets come in at $399.99. With easy travel by auto for anyone in IL, WI, and MN, and most meals included with the ticket, you're talking about more enthusiasm and motivation for potentially south of $1k. Such a deal, really.
So send your teams. Let them bring back their enthusiasm to you. Let them share with you what they learn. Tickets on sale now.
Hey wait, before you go, remember how I said not to come to That Conference? I lied. We totally want you to come, too. We value that leadership and enthusiasm. Speakers for the main sessions are already set, but there are dozens of Open Spaces slots over three days where you can share what you know and maybe even get a little inspired yourself. Come out and meet me. I hope to see you there.
One of your biggest challenges at your job is motivation. Not yours, obviously. No, you're the kind of go-getter who gets up in the morning and eats a big bowl of "I can do it" for breakfast. You read blogs. You watch your favorite speakers on Twitter. Your motivation is beyond reproach.
But you've got folks on your team who have been doing this whole development thing awhile. Maybe they've been working on that document management subsystem for two years and are really coasting. Maybe they've been stuck on the same platform or same language so long that you see them not being able to think outside the box for a solution. Maybe they are sitting around waiting for direction instead of proactively looking for improvements the way they used to. That doesn't make them bad employees. Life sometimes happens.
As a team lead, you need to get their enthusiasm up. You need to generate in them a lust for coding. Not so they'll code for you 12 hours a day. Don't do that. Burnout is as bad as or worse than a lack of enthusiasm. No, you need your folks to enjoy coding, to enjoy solving problems, to think about their work critically and try to find and suggest new ways of doing things.
But that's a slippery and elusive thing to go looking for. Team motivation might as well be your white whale. You've tried lunch and learns, brown bags, watching team internet videos, and that seemed to help, but you're only one person, and you can't do your job and also manage an inspirational team calendar. Or maybe you can and it's just not enough.
So here's what helped me. That Conference. I've made it no secret that community conferences changed my life. That's just me. But you're not me. You're a successful team lead. You've got the motivation. So don't come to That Conference. Send your team. Here's why.
See, if you want them trained on a particular topic, send them to Pluralsight (I'm not a shill, and they're not a sponsor, but I've had good luck with them). Send them to a class. There are lots of good training programs. Sometimes those programs inspire, to be sure. But I've seen so many people sit through a dull class and come out bored. That's if they were even happy to be there or paying attention to begin with.
What about big conferences, like TechEd, or Google I/O, or one of the huge $2500/ticket conferences (never mind the per diem, the hotel stay, the air fare => maybe you're looking at a $5k total)? They have value, sure, and employees may be motivated by the fact that you've given them a perq. There's value in that , too. But motivation to code and get things done may not be the value there. Maybe it's too marketing-speak. Maybe it's too specific. Maybe it's too platform-limiting.
That Conference, and polyglot community conferences in general, are designed to inspire. By getting attendees into a place where the boss has no presence and giving them a buffet of technologies to feast at, you allow them to rediscover why they came to that field to begin with. You offer them a chance to see different approaches, try different platforms, or understand a different technology culture.
August 11-13, we're hosting the biggest, baddest community-led technology conference/summer camp at the Kalahari Resort up in the Wisconsin Dells. 150 sessions on a glorious and dizzying array of technologies are available to attendees. Encourage them to go to sessions outside their comfort zone, and they may amaze you with what they learn. Even if they stay near to their platform of choice, however, they will find their ideas challenged, and their techniques extended with everything from overview sessions to deep dives.
Of course, it's not just about the technologies. At the end of the day, we're all people interested in similar things. Many of the Speakers (err... Camp Counselors) are industry leaders, but they don't fly in and fly out without interacting. They hang out, meet people, share war stories, and in general are available. I have chatted to people on Twitter forever and then met them for the first time in person at community conferences. Meeting inspirational people is just another way to get motivated. Heck, just meeting a new colleague at another company who is doing similar types of development can be rewarding.
All that would be totally invaluable at the price of one of the bigger conferences. Inspiration and motivation are hard to create, but they seriously affect your team's productivity. That Conference tickets come in at $399.99. With easy travel by auto for anyone in IL, WI, and MN, and most meals included with the ticket, you're talking about more enthusiasm and motivation for potentially south of $1k. Such a deal, really.
So send your teams. Let them bring back their enthusiasm to you. Let them share with you what they learn. Tickets on sale now.
Hey wait, before you go, remember how I said not to come to That Conference? I lied. We totally want you to come, too. We value that leadership and enthusiasm. Speakers for the main sessions are already set, but there are dozens of Open Spaces slots over three days where you can share what you know and maybe even get a little inspired yourself. Come out and meet me. I hope to see you there.
Thursday, June 19, 2014
What is a Community Conference?
I know I post a lot about community conferences, but I never really talked about what a community conference is. Like with a lot of things, there may be many definitions out there, but this is how I think about them.
For me, a community conference is community-driven. It's grass-roots. A few people in a certain geographic area, passionate about a particular thing, get together and decide that there have to be other people like them. People that want to get together and talk about things. People who want to learn and teach and communicate and network.
Probably some of those people already do this stuff at industry conferences. Conferences like Build and DevConnections and TechEd for the Microsofties out there are a big deal. Except not everyone can attend those conferences. The price tag on them is simply too high. At a couple grand for a ticket, maybe another grand for the hotel room, air fare, transportation, per diem for food? It all adds up to a fairly expensive prospect for small to midsize companies when it comes to training.
And what do you get for that? Sure you get the national platform, and some of them give out pretty nice goodie-bags with expensive tech-gifts in them (which is basically a way for you to get your company to buy you something you wouldn't buy for yourself), but you also generally get only the broadest of pictures. In the case of Tech Ed, you get broad strokes and marketing spiels. Many people who are there were sent, and may not be all that into it. You have lots of managers and senior folks there who may not be getting much out of it, but are there as a perk for their job.
In contrast, a community conference is organic and attended by people who really want to be there. It is truly of the people, by the people, and for the people. The conference is set up as a not-for-profit, so the ticket cost can be as low as possible. This allows just about anyone to attend, even if they have to do it on their own dime.
Because anyone can afford to attend, it truly means that anyone with a passion for the conference material can be there, and those are the people you want to be there, both as attendees and speakers. People who are enthusiastic about the subject matter and won't wander off mid-conference to play golf.
Because it's not-for-profit, community conferences tend to be run by organizers in their spare time. In my experience, however, that doesn't necessarily mean that things are thrown together or that there's no attention to detail, but I think you do lose some of the polish you'd get if you were paying people an annual salary to set up a conference.
In a lot of ways, however, that's part of the fun, knowing that the conference is as good as the community wants it to be, because they have to pitch in to make it special. It's the difference between consuming and making. It's possible to consume an industry conference, but you get to make your community conference. You don't get the high-priced goodie bags, but you get a very professional conference, with solid information, delivered by some of the most outgoing technologists you're likely to meet.
Of course I've said that community conferences changed my life, and I truly mean that. Codemash is particularly well run, but it's pretty far away for me. That's why I work to run That Conference. If I can help make that change in other people that happened in me, every second I volunteer to putting on a great conference is worth it. In case you didn't know, That Conference is a polyglot (any platform, any language) technology conference held in late summer at the Kalahari Resort in the Wisconsin Dells. Check it out!
That Conference embraces all folks with a love of technology with open arms. Hardware? Software? InfoSec? Data? We have sessions on all things tech. With a ticket price of around $400, it's way cheaper than the big conferences, and for those of you in the Illinois, Wisconsin, Minnesota areas, it's only a short drive away. And if you stay at the hotel, bring your family and they can enjoy the waterpark as part of the room deal. Better still, pick up a family ticket and teach the little ones your love of technology.
I would love to see you there. If you do manage to make it out, come find me! I'd love to meet more folks in this area that share a passion for technology.
For me, a community conference is community-driven. It's grass-roots. A few people in a certain geographic area, passionate about a particular thing, get together and decide that there have to be other people like them. People that want to get together and talk about things. People who want to learn and teach and communicate and network.
Probably some of those people already do this stuff at industry conferences. Conferences like Build and DevConnections and TechEd for the Microsofties out there are a big deal. Except not everyone can attend those conferences. The price tag on them is simply too high. At a couple grand for a ticket, maybe another grand for the hotel room, air fare, transportation, per diem for food? It all adds up to a fairly expensive prospect for small to midsize companies when it comes to training.
And what do you get for that? Sure you get the national platform, and some of them give out pretty nice goodie-bags with expensive tech-gifts in them (which is basically a way for you to get your company to buy you something you wouldn't buy for yourself), but you also generally get only the broadest of pictures. In the case of Tech Ed, you get broad strokes and marketing spiels. Many people who are there were sent, and may not be all that into it. You have lots of managers and senior folks there who may not be getting much out of it, but are there as a perk for their job.
In contrast, a community conference is organic and attended by people who really want to be there. It is truly of the people, by the people, and for the people. The conference is set up as a not-for-profit, so the ticket cost can be as low as possible. This allows just about anyone to attend, even if they have to do it on their own dime.
Because anyone can afford to attend, it truly means that anyone with a passion for the conference material can be there, and those are the people you want to be there, both as attendees and speakers. People who are enthusiastic about the subject matter and won't wander off mid-conference to play golf.
Because it's not-for-profit, community conferences tend to be run by organizers in their spare time. In my experience, however, that doesn't necessarily mean that things are thrown together or that there's no attention to detail, but I think you do lose some of the polish you'd get if you were paying people an annual salary to set up a conference.
In a lot of ways, however, that's part of the fun, knowing that the conference is as good as the community wants it to be, because they have to pitch in to make it special. It's the difference between consuming and making. It's possible to consume an industry conference, but you get to make your community conference. You don't get the high-priced goodie bags, but you get a very professional conference, with solid information, delivered by some of the most outgoing technologists you're likely to meet.
Of course I've said that community conferences changed my life, and I truly mean that. Codemash is particularly well run, but it's pretty far away for me. That's why I work to run That Conference. If I can help make that change in other people that happened in me, every second I volunteer to putting on a great conference is worth it. In case you didn't know, That Conference is a polyglot (any platform, any language) technology conference held in late summer at the Kalahari Resort in the Wisconsin Dells. Check it out!
That Conference embraces all folks with a love of technology with open arms. Hardware? Software? InfoSec? Data? We have sessions on all things tech. With a ticket price of around $400, it's way cheaper than the big conferences, and for those of you in the Illinois, Wisconsin, Minnesota areas, it's only a short drive away. And if you stay at the hotel, bring your family and they can enjoy the waterpark as part of the room deal. Better still, pick up a family ticket and teach the little ones your love of technology.
I would love to see you there. If you do manage to make it out, come find me! I'd love to meet more folks in this area that share a passion for technology.
Monday, May 12, 2014
Become a Developer - Getting Started
Software Engineer and Developer consistently rank as a couple of the best jobs you can have. Software offers a good combination of mental challenge, limited physical demands, good flexibility, and good pay.
And it's one of the simplest, easiest things to get into.
Note, I'm not saying that it's easy to be awesome as a developer. It takes time, study, and dedication. But of all fields, it has one of the the lowest barriers to entry of any field, in great part due to the generosity of the community, the desire of that community to share and spread knowledge, and their by-nature ability to use their talents to democratize and disseminate this information.
A couple nights ago a friend from outside the field was talking to me about possibly changing careers, and I told him that I would share with him some insight into how I would advise any adult to start if they showed any interest in the subject matter today. Note, with kids, I might start a little differently (Legos, Arduinos, and Scratch, oh my!).
I'm amazed at the free resources out there, so I'd start with them. This is in no way an endorsement of any of things I've mentioned here. I'm not affiliated with any of these organizations
http://www.codecademy.com/ - free resource to learn interactively what coding is like.
http://code.org/learn - Directed more at kids, but if you are completely new to the concepts, spend some time here.
http://ocw.mit.edu/index.htm is where you find MIT opencourseware. Bazillions of classes on stuff. You could easily start at the programming stuff and go from there.
ChicagoCodeCamp is a free community conference held one Saturday in April. Meet people, network, learn cool things. There are lots of local user groups and so many people are available to help you out in getting started.
http://www.pluralsight.com/training - Oh, the amount of professional training and content you get here is amazing for how little you pay. Per hour of training, it might as well be free.
And it's one of the simplest, easiest things to get into.
Note, I'm not saying that it's easy to be awesome as a developer. It takes time, study, and dedication. But of all fields, it has one of the the lowest barriers to entry of any field, in great part due to the generosity of the community, the desire of that community to share and spread knowledge, and their by-nature ability to use their talents to democratize and disseminate this information.
A couple nights ago a friend from outside the field was talking to me about possibly changing careers, and I told him that I would share with him some insight into how I would advise any adult to start if they showed any interest in the subject matter today. Note, with kids, I might start a little differently (Legos, Arduinos, and Scratch, oh my!).
I'm amazed at the free resources out there, so I'd start with them. This is in no way an endorsement of any of things I've mentioned here. I'm not affiliated with any of these organizations
http://www.codecademy.com/ - free resource to learn interactively what coding is like.
http://code.org/learn - Directed more at kids, but if you are completely new to the concepts, spend some time here.
http://ocw.mit.edu/index.htm is where you find MIT opencourseware. Bazillions of classes on stuff. You could easily start at the programming stuff and go from there.
ChicagoCodeCamp is a free community conference held one Saturday in April. Meet people, network, learn cool things. There are lots of local user groups and so many people are available to help you out in getting started.
http://www.pluralsight.com/training - Oh, the amount of professional training and content you get here is amazing for how little you pay. Per hour of training, it might as well be free.
With such a low barrier to entry, and given how much work there is out there of many different types, why don't more people do it? Why is there still unmet demand in the industry?
Well, it's hard work to do well. There are vast differences in developer skill level. There are differences in demand for different types of skill. Also, while I say that anyone can learn the basics, it takes an attention to detail, an ability to focus on mundane details, an ability to think procedurally and logically.
Some people find that kind of work taxing, or boring, or just plain can't do it, but I'm not so egotistical to believe that the people in the industry are the only ones that are capable of doing this kind of work.
Of course, I'd be lying if I said I wasn't trying to be part of the education of the community. I want diversity in my community. I want more kids getting interested in STEM. To that end, I am a proud organizer of That Conference. We are a community-driven, polyglot conference that is held annually at the Kalahari resort. $399 gets you three days of sessions, networking, and good fun. Come out and join us. Tickets go on sale 5/15/14!
Some people find that kind of work taxing, or boring, or just plain can't do it, but I'm not so egotistical to believe that the people in the industry are the only ones that are capable of doing this kind of work.
Of course, I'd be lying if I said I wasn't trying to be part of the education of the community. I want diversity in my community. I want more kids getting interested in STEM. To that end, I am a proud organizer of That Conference. We are a community-driven, polyglot conference that is held annually at the Kalahari resort. $399 gets you three days of sessions, networking, and good fun. Come out and join us. Tickets go on sale 5/15/14!
Monday, May 5, 2014
Upgrade to the Walking Desk
So I have been using the walking desk for a few hours every few days. I noticed that one big issue was that I was looking down at the monitor, even with the riser on the walking treadmill desk. That was definitely a strain on my neck. But any higher, and I wouldn't be able to type.
Solution? I need a monitor in front of me. One I can look at without looking down. As a touch typist, this isn't a big deal, and would be really handy.
How do you do that, though? A laptop monitor is connected to the laptop. Aha, I thought, I'll hang a TV from the ceiling!
So I picked up a new TV for the loft (the current one was a bit too small for the space), and appropriated that 32" set as a new monitor. Then I picked up a ceiling mount for the TV on Amazon and put it up.
I also moved the treadmill to a different corner of the basement. Here it is in all its glory:
My full setup for when I'm working. Chat window on the left laptop, and active windows on the Yoga and the TV. Coffee or water on the ledge to the right, remote on the ledge to the left.
It works remarkably well. Time to get back on it!
Solution? I need a monitor in front of me. One I can look at without looking down. As a touch typist, this isn't a big deal, and would be really handy.
How do you do that, though? A laptop monitor is connected to the laptop. Aha, I thought, I'll hang a TV from the ceiling!
So I picked up a new TV for the loft (the current one was a bit too small for the space), and appropriated that 32" set as a new monitor. Then I picked up a ceiling mount for the TV on Amazon and put it up.
I also moved the treadmill to a different corner of the basement. Here it is in all its glory:
![]() |
| The invisible man walks again! |
![]() |
| Set productivity to 9999! |
Sunday, May 4, 2014
Working from Home, Two Months In
Ok, before this milestone slips away from me, I've got to write up my findings. Because that's what I do.
Granted, this blog has posts about everything from travel to technology, from Team Foundation Server to personal enrichment, from corporate motivation to Chicago traffic.
One overarching theme I'd like to think is interwoven through all these posts is the importance of being happy and productive in your life. Living for the things that you value, and making the most of your time and passion.
I've long theorized about what working from home would be like. I've talked to dozens of people about it, hosted a Codemash Open Spaces session about it, watched endless presentations on the topic, and read books on the topic. From the Why Work Sucks and How to Fix It, to the Four-Hour Work Week, to The Year Without Pants, to Remote, I've read a lot on the topic.
I thought enough about it to at least want to give it a shot.
A year ago, I got my opportunity to give it a trial run: a part-time coding gig with a cool company out of California. The interview was remote, the coding sample was remote, and the onboarding process was remote. I spent hours working for them sitting on the couch, in the basement, or on my front porch. I'd work in the evenings after my 9-5, or in the mornings on the weekends, or while waiting for my son during his scout meeting.
And it was fun. I really enjoyed the focus I got from working remotely. So when it came time to leave my previous employer, I knew that the ability to work remotely was going to be one of my base criteria for what a new job would have to look like for me to even be interested.
Note: remote work is harder to find than I thought it would be. Of the many companies I talked to, a very small fraction of them enabled remote work. Given the benefits that can accrue to an employer, not the least of which is more engaged and enthusiastic employees, I was shocked. Butt-in-seats management is still firmly entrenched within organizations.
But persistence paid off. I had time, and I spent it finding the right opportunity. On March 3, I started at my latest gig. My new organization has an office downtown Chicago that I've driven to a few times, but for many weeks, I've done my work from the basement of my house.
I have to admit. It's the greatest thing ever.
Full disclosure, there's more than remote work contributing to my excitement. I'm working for a much smaller organization. They know exactly what we need to do, and have pretty awesome processes either in place or in flight. On top of that, my new colleagues are all brilliant, and I can learn a lot from each of them. And am learning a lot. In all these regards, it's very different from where I came from.
As such, I can't necessarily attribute how awesome things are to the remote work. So I thought I'd try to take a balanced look at my experience with being remote a couple months in:
Pros
More exercise: Right out of the gate, there is more time available to exercise. Between having built a treadmill desk for walking as I work and doing things with my colleagues like the squat challenge, there's more of a focus on getting moving than I had before.
More work: Maybe I mean "more productivity" here, but I feel as if I get so much more work done. When you're not faffing about in the office getting stopped in the hall about ten different things, you can really get stuff done. With nothing distracting you, it's amazing how in the zone you can get.
More family: I'm putting this one in the more theoretical category, since I joined a team in full-barrel crunch mode moving toward a product launch, but I'm confident that in the weeks ahead, now that we're calming down, I'll be able to spend more time doing things like getting the kids off to school and having coffee and lunch with my wife. I'm looking forward to that.
More freedom: At home, you don't have the same level of scrutiny over your internets as you do at an office. If I want to stream trance music over the speakers or listen to talk radio in the background, I can do that. I'm not restricted to only receiving corporate mail over Outlook, and don't have to worry that all of a sudden GitHub.com or Knockoutjs.com will suddenly be blocked by the Corporate Nanny-Wall (both of which have happened to me).
More flexibility and fewer clothes: The school also called me to come pick up my daughter, who had strep. I went over to get her and was back coding in about 10 minutes. And she was upstairs resting while I was there. That is some flexibility right there. That was also the first time I've ever had to say, "Shoot, I need to run out. Where are my pants?" (I often work in running shorts because I use the treadmill desk on and off.)
Smaller environmental footprint: This doesn't appeal to everyone, but I like to try to reduce my environmental footprint. Not because I'm an environmentalist, but because I am resource-conservative at heart, in the sense that I only like to use what I need and use what I do need efficiently. When two weeks went by without having to put gas in the car, a little part of me did a happy dance.
Email: Working with my team, we depend on chat, and are in direct communication all day, every day. As such, the need for email is basically nil. We use it for broader, more consistent and more persistent topics, although for real stuff, we tot it up in Google docs and throw it in the cloud. I can't tell you how little I miss having a life run by Outlook. I've been moving away from it mentally for a while, but to finally get away from it is so lovely.
Dress code: My whole working life I've been biz-cazh. High school was shirt/tie. I always felt that I got more in the spirit of working when dressed up. Like formality was learning. Sure, when I was in grad school, I wore shorts and T-shirts to teach labs, but that was Tucson, and no one wears a lot of clothes there. But I did have the aforementioned "pants" epiphany. I often wear running shorts so I can walk while working, or even wear jammies up until lunch because they're comfy to walk in, too. Don't judge.
Cons
Diligence: I don't know that it's a con, really, but diligence is a key requirement of having the right personality to work remotely. It's been written about endlessly, that there's a real need to physically separate from the rest of the home to enable you to retain focus on your work. Also, being diligent and focusing on your work can be really exhausting. Being extraordinarily productive from home is well more difficult than being in the office.
Balance: This is kinda the flip side of diligence. I'm struggling a little bit because I'm an early riser, but the business hours for my org are 9-6. What that means practically is that I am often up early, and since I'm up early, I jump online and start working, sometimes at 7:30. Also, while I totally believe in the need for breaks, folks all take lunches at different times, so I hear the siren song of the chat window. I find myself in the basement and working longer hours that I probably need to, and certainly longer than is sustainable, but I'm enjoying what I do.
Chat: So the way we communicate on my team is through a chat app. This is very nice in that it is always open and on. Once you get the hang of it, you can see what's going on peripherally and it's not really different from overhearing chatter in the office. But sometimes... Sometimes you look at what someone's typed in the chat window and go "huh?" because what they've chatted makes no sense. At least out of the context of sound and expression. Another thing that can be burdensome about chat is that when there's a flurry of conversation that you don't want to be part of, you may need to turn off the notifications or sounds.
Cleaning service: One of the things I didn't realize was that my work area in the office didn't stay clean on its own. In the office, we had a cleaning service. If I dropped a Dorito on the floor, no worries. Gone the next day. In a home office, if you spill your coffee, guess who's mopping that up. I hadn't thought about that. Not that I have a lot of coffee-soaked corn chips on the floor, but I noted the need to be a lot more careful when eating around the work space.
Miscellany
Costs: You'd think that costs would be basically a pro. I haven't really analyzed the data, but I think I'm net #winning for the cost side of things. I don't pay for dry cleaning anymore. I wear fewer outfits per day. I'm paying less in gas. Car insurance has dropped. I have to pay for food, but since I generally eat up leftovers that were getting thrown away anyhow, I think I'm doing it for free most days. That said, I have to have and maintain my own office, and any associated costs.
Loneliness and isolation:
I was warned very sternly about this. The idea of being in my basement, not interacting physically with many people, is supposed to somehow be a drag, but I find it kinda the opposite. I mean, with the chat and video and voice calls, I interact with my team at a rapid fire pace. The rest of the time, I sit here by the window, lost in my head and the code and the issues I'm dealing with. For me, it's a great mix. So far, but I hear that like traveling, it can get old. If it does, I'll be sure to post about it when that day comes.
Shoot, those are my thoughts on remote work so far. I'd love to hear from you, though, on what your experience has been. Hit me up on twitter or in the comments.
Granted, this blog has posts about everything from travel to technology, from Team Foundation Server to personal enrichment, from corporate motivation to Chicago traffic.
One overarching theme I'd like to think is interwoven through all these posts is the importance of being happy and productive in your life. Living for the things that you value, and making the most of your time and passion.
I've long theorized about what working from home would be like. I've talked to dozens of people about it, hosted a Codemash Open Spaces session about it, watched endless presentations on the topic, and read books on the topic. From the Why Work Sucks and How to Fix It, to the Four-Hour Work Week, to The Year Without Pants, to Remote, I've read a lot on the topic.
I thought enough about it to at least want to give it a shot.
A year ago, I got my opportunity to give it a trial run: a part-time coding gig with a cool company out of California. The interview was remote, the coding sample was remote, and the onboarding process was remote. I spent hours working for them sitting on the couch, in the basement, or on my front porch. I'd work in the evenings after my 9-5, or in the mornings on the weekends, or while waiting for my son during his scout meeting.
And it was fun. I really enjoyed the focus I got from working remotely. So when it came time to leave my previous employer, I knew that the ability to work remotely was going to be one of my base criteria for what a new job would have to look like for me to even be interested.
Note: remote work is harder to find than I thought it would be. Of the many companies I talked to, a very small fraction of them enabled remote work. Given the benefits that can accrue to an employer, not the least of which is more engaged and enthusiastic employees, I was shocked. Butt-in-seats management is still firmly entrenched within organizations.
But persistence paid off. I had time, and I spent it finding the right opportunity. On March 3, I started at my latest gig. My new organization has an office downtown Chicago that I've driven to a few times, but for many weeks, I've done my work from the basement of my house.
I have to admit. It's the greatest thing ever.
Full disclosure, there's more than remote work contributing to my excitement. I'm working for a much smaller organization. They know exactly what we need to do, and have pretty awesome processes either in place or in flight. On top of that, my new colleagues are all brilliant, and I can learn a lot from each of them. And am learning a lot. In all these regards, it's very different from where I came from.
As such, I can't necessarily attribute how awesome things are to the remote work. So I thought I'd try to take a balanced look at my experience with being remote a couple months in:
Pros
More exercise: Right out of the gate, there is more time available to exercise. Between having built a treadmill desk for walking as I work and doing things with my colleagues like the squat challenge, there's more of a focus on getting moving than I had before.
More work: Maybe I mean "more productivity" here, but I feel as if I get so much more work done. When you're not faffing about in the office getting stopped in the hall about ten different things, you can really get stuff done. With nothing distracting you, it's amazing how in the zone you can get.
More family: I'm putting this one in the more theoretical category, since I joined a team in full-barrel crunch mode moving toward a product launch, but I'm confident that in the weeks ahead, now that we're calming down, I'll be able to spend more time doing things like getting the kids off to school and having coffee and lunch with my wife. I'm looking forward to that.
More freedom: At home, you don't have the same level of scrutiny over your internets as you do at an office. If I want to stream trance music over the speakers or listen to talk radio in the background, I can do that. I'm not restricted to only receiving corporate mail over Outlook, and don't have to worry that all of a sudden GitHub.com or Knockoutjs.com will suddenly be blocked by the Corporate Nanny-Wall (both of which have happened to me).
More flexibility and fewer clothes: The school also called me to come pick up my daughter, who had strep. I went over to get her and was back coding in about 10 minutes. And she was upstairs resting while I was there. That is some flexibility right there. That was also the first time I've ever had to say, "Shoot, I need to run out. Where are my pants?" (I often work in running shorts because I use the treadmill desk on and off.)
Smaller environmental footprint: This doesn't appeal to everyone, but I like to try to reduce my environmental footprint. Not because I'm an environmentalist, but because I am resource-conservative at heart, in the sense that I only like to use what I need and use what I do need efficiently. When two weeks went by without having to put gas in the car, a little part of me did a happy dance.
Email: Working with my team, we depend on chat, and are in direct communication all day, every day. As such, the need for email is basically nil. We use it for broader, more consistent and more persistent topics, although for real stuff, we tot it up in Google docs and throw it in the cloud. I can't tell you how little I miss having a life run by Outlook. I've been moving away from it mentally for a while, but to finally get away from it is so lovely.
Dress code: My whole working life I've been biz-cazh. High school was shirt/tie. I always felt that I got more in the spirit of working when dressed up. Like formality was learning. Sure, when I was in grad school, I wore shorts and T-shirts to teach labs, but that was Tucson, and no one wears a lot of clothes there. But I did have the aforementioned "pants" epiphany. I often wear running shorts so I can walk while working, or even wear jammies up until lunch because they're comfy to walk in, too. Don't judge.
Cons
Diligence: I don't know that it's a con, really, but diligence is a key requirement of having the right personality to work remotely. It's been written about endlessly, that there's a real need to physically separate from the rest of the home to enable you to retain focus on your work. Also, being diligent and focusing on your work can be really exhausting. Being extraordinarily productive from home is well more difficult than being in the office.
Balance: This is kinda the flip side of diligence. I'm struggling a little bit because I'm an early riser, but the business hours for my org are 9-6. What that means practically is that I am often up early, and since I'm up early, I jump online and start working, sometimes at 7:30. Also, while I totally believe in the need for breaks, folks all take lunches at different times, so I hear the siren song of the chat window. I find myself in the basement and working longer hours that I probably need to, and certainly longer than is sustainable, but I'm enjoying what I do.
Chat: So the way we communicate on my team is through a chat app. This is very nice in that it is always open and on. Once you get the hang of it, you can see what's going on peripherally and it's not really different from overhearing chatter in the office. But sometimes... Sometimes you look at what someone's typed in the chat window and go "huh?" because what they've chatted makes no sense. At least out of the context of sound and expression. Another thing that can be burdensome about chat is that when there's a flurry of conversation that you don't want to be part of, you may need to turn off the notifications or sounds.
Cleaning service: One of the things I didn't realize was that my work area in the office didn't stay clean on its own. In the office, we had a cleaning service. If I dropped a Dorito on the floor, no worries. Gone the next day. In a home office, if you spill your coffee, guess who's mopping that up. I hadn't thought about that. Not that I have a lot of coffee-soaked corn chips on the floor, but I noted the need to be a lot more careful when eating around the work space.
Miscellany
Costs: You'd think that costs would be basically a pro. I haven't really analyzed the data, but I think I'm net #winning for the cost side of things. I don't pay for dry cleaning anymore. I wear fewer outfits per day. I'm paying less in gas. Car insurance has dropped. I have to pay for food, but since I generally eat up leftovers that were getting thrown away anyhow, I think I'm doing it for free most days. That said, I have to have and maintain my own office, and any associated costs.
Loneliness and isolation:
I was warned very sternly about this. The idea of being in my basement, not interacting physically with many people, is supposed to somehow be a drag, but I find it kinda the opposite. I mean, with the chat and video and voice calls, I interact with my team at a rapid fire pace. The rest of the time, I sit here by the window, lost in my head and the code and the issues I'm dealing with. For me, it's a great mix. So far, but I hear that like traveling, it can get old. If it does, I'll be sure to post about it when that day comes.
Subscribe to:
Posts (Atom)


