Speaking as an old fart….

… yes, we do know how to code.

I turned 45 this month. In many professions that’s the prime age to be – and in others it’s considered young – but in my line of work, some people think middle-aged coders are old farts. That’s especially true when it comes to startups.

The startup culture is similar to professional sports in that it requires a fleet of fresh-out-of-college kids to trade their lives and their health for the potential of short-term glory.

“Old farts” are often excluded from that culture, not because we’re lousy coders but because we won’t put up with that shit. We have lives, we have families, we have other things that are important to us. We’re not about to sleep at our desks and trade watching our kids grow up for the promise of striking it rich. Especially when the people who really strike it rich aren’t the ones writing code.

So many developers my age have had plenty of chances to ditch coding and move into management, but we’ve stuck with coding because it’s what we love to do. We’d earn more in management, but writing software is in our blood. We wouldn’t stop doing it for anything.

And because of the years we’ve spent creating software, we’ve learned what works and what doesn’t, regardless of the language or the platform. Operating systems rise and fall, development tools come and go, but through it all, old farts know how to write solid code.

– Nick Bradbury

 

First day down

Don’t worry… I won’t write about work all the time. 🙂

But first day today was pretty cool.

Got right into code, with the project lead explaining the app architecture, which is all pretty sound. Then I dug through the codebase and it’s pretty straightforward. I like it because it’s simple, seems to be well-written, fairly understandable. Not much in the way of documentation or comments, but most is fairly easy to figure out. This is a very pleasant and welcome change compared to some codebases I’ve dealt with in my past.

Lots of process changes too. Using GitHub, Heroku, different bug tracking, different tools (like DropBox), new workflows. Just a lot of new ways to do things. Today was a HUGE dump of information and process, and I know I won’t remember it all. But I’m diving right in… got a few easy bugs assigned to me to help me get my feet wet and start to learn how things work, and in handling those all the process stuff will come to make sense. Slow but sure I’ll get there, and I reckon by the end of the week should start feeling comfortable.

There’s a lot of things I’m going to have to get used to and adapt to, not just in terms of the work itself, but the new people, new environment, new everything. I’m the FNG, and all that comes with that. 🙂

But I can say… I really am liking the people. The other 2 devs that I work directly with, we seem to be hitting it off fairly well already. They’re both wicked smart guys, funny, laid back, and just good geeks. At one point one of them pulled out the old iPhone lightsaber app… and then I pulled out mine, and we geeked out for a bit. In so many ways, the people you work with make all the difference as to whether the job is good or bad… and I think this is going to be good.

I’m debating if I should bring my Nerf Raider in….

To you, my readers, thanx for the support. Things will be different, but I’m just going to enjoy the ride. 🙂

A new journey

Today I begin down a new road.

I spent the past (almost) 12 years working for one software company. It started at a small house, which was acquired some years ago. The small house was great. I remember choosing it for the intangibles it offered, because while the pay and some other options were less than some other offers I had, the fact it was so “family” just drew me in. But then, acquisition, and corporate culture changes as it always does. And while all things weren’t bad, the road the company is going down and the road I wish to go down are no longer the same path. So it’s time for me to move on.

I’m joining a small company here in town doing iOS programming. I’m quite happy about that. The future is mobile computing, and I’m happy to be a part of it… especially since I can continue to be an Apple fanboy (been one since I was a kid, with Apple II’s… learned to program on a //e). 🙂

It’s going to be a lot of changes in a lot of ways. I think one of the more interesting ones will be joining a small company. I’ve been part of “large” companies for the majority of my career, companies with at least 3 digits worth of employees. This will be the smallest I’ve ever worked at… maybe 15 employees. It’s going to be different, it’s going to be some adjustment. But I think it will be great to be able to make more impact and not have to fight such a tide of corporate red tape all the time.

This is part of what I was alluding to in a prior post about a big change in my life. Schedule changes… I’m working with people all in my time zone, instead of west and east coasters. Have to adjust to these differences and so yeah… maybe my workout plan will have to change. We’ll see. There’s just much to figure out.

I’m nervous. I’m excited. A little scared too. I’ve had a lot of “known comfort” for many years. Most people I know have changed jobs numerous times while I stayed at the same job for 12 years. In some ways, I just don’t know how to be the “FNG“, other than to shut up, do my work, prove myself, and exceed their expectations. It’s going to be weird in a lot of ways… but I am hoping the changes will all be for the good, even if right now it may not seem it. There’s always something to learn, something to gain, some way to grow. Just have to seek it.

We’ll see where this leg of my journey takes me.

 

Dangers of working from home – and how to fix it

A short and sweet article about the “dangers” of working from home and how to fix them. (h/t to… I forget *blush*)

Speaking as someone that’s worked from home for 11+ years, I’ve gained some perspective into the matter. I’d like to add my own input to the author’s 5 points:

1. You don’t feel you are working

The author’s point here is how work life and personal life can blend. True that. To an extent, this is a good thing. You can have a greater flexibility in life, within the constraints the job allows you. For instance, I spent many years working with folks in California, 2 hours behind me. I’m a morning person. These two things together didn’t always allow our schedules to mesh because as I’m winding up my day they’d just be digging into theirs. But I didn’t let THEIR constraints control my life. Instead, I just had to make some accommodations, such as accepting that sometimes I’ll have a meeting that’s very late in the day for me. I also made a point to check my work email in the evenings.

But that said, you really do have to work at keeping work work and personal personal. You cannot let your life become one giant smear of workandpersonallifetogether. It takes discipline and learning to draw lines AND sticking to them. Plus, you have to ensure people at work come to respect those lines. As well, the folks at home also have to respect those lines.

Which brings us to…

2. Your family members won’t understand that you are working

This is simple (but not easy). Draw lines and enforce them. Make sure the lines and rules are clear to everyone, and stick to them. For example, if my door is shut, you don’t come in. If you need me, you knock. Do not expect an answer if I’m in a meeting or perhaps deeply ensconced in a debug session. You must respect it, unless it’s an emergency. Yes, kids will have to be punished if they violate the rules. Spouses too.

But that said, remember that part of the joy of working at home with the family around is that you can be around them. I’ve found that if I’m not truly deeply into something, just flow with the interruptions sometimes. Sometimes the kiddo just wants to show you what they did. It takes 30 seconds of my time (which I probably would have wasted on Facebook or something else), kiddo is happy, I am happy, it’s a win. Don’t shun your family. Just work to manage things. And yes, it will take time, failure, revision, and experimentation to find what works for you.

3. You are slacking off, because your boss is not watching

It’s very easy to slack because you’ll be surrounded by all your favorite things. You have to develop the self-discipline to keep working, because if you don’t, you’re out of a job. Bosses will eventually detect your level of productivity.

Take a little time to blow off steam, break up the day, all that stuff. But you still have to produce. In fact, it’s generally better to work to produce more, because really… you will have fewer distractions than being in the office. You can focus better. You won’t have everyone dropping by your cube. You don’t have a commute. You can be more productive.

And oh, get dressed every day. Just because no one has to look at your or smell you, you should still carry on as if people did. It will affect your psyche.

4. You alienate yourself from work community

This is true. You must work to overcome it. The author goes into the office now and again, but my office is thousands of miles away, so that’s not possible. You must make the extra effort to communicate with folks. IM is good, or maybe set up an IRC channel. Have ways to chat with people. Do pick up the phone now and again, because to hear voices is very warming and personalizing. If you can video chat, even better. Don’t be afraid to start the day with some quick pings to people to just say “hi”. You do have to have some sort of social setup with everyone, else well… you will be overlooked, you will be forgotten, and folks just won’t know much about you. Not always good for the long haul.

5. You work too much

Yup. This goes back to #1. You just have to draw lines and stick to them. Be flexible, but be firm. Don’t check work email in your non-work times. Don’t check messages. Work is work and should be put into that box and kept there. If you do not, everything will smear and work will take over your life. You can’t let it.

It isn’t easy to start working at home. It requires commitment and self-discipline. But I think the benefits are huge, both to myself and to whomever I’m working for. It’s a situation that’s worked well for over a decade for me, and I really can’t see any other way to work.

Working at home isn’t possible for every job. If your job can be done from home, consider it. But as well, know yourself. You just may need the constraints and environment “going to the office” puts on you. There’s nothing wrong with that. It’s better to know yourself, know your limits, and know your capabilities.

Things productive people do

This is a short but great article listing 7 things that productive people do.

My experiences with them:

1. Work backwards from goals to milestones to tasks.

That’s pretty much the way you have to do things: figure out where you want to go, then figure out how you’re going to get there, and break it down into small, manageable chunks and even break those chunks into smaller chunks if needed. Not only does it make the work manageable but it also gives you positive feedback and motivation on progress as you whittle down the list.

2. Stop multi-tasking

As much as the world touts this, it’s terrible. We’re just not made for it (maybe you are, but most people aren’t). You get a lot more done if you focus, or at least can selectively multitask across as few a things as possible. But note if you do this, have some way to preserve state when you context switch (pardon my programmer lingo). For example, I might have a few things going at once because they are tasks that take time: need to talk to Fred but he has a lengthy turnaround time, I need to debug this problem and that could take a long time. Trying to do these serially wouldn’t be the best use of my time because they both take a long time. But since Fred could take a while, I’ll go ahead and contact him first thing in the morning, probably by email if I have the choice (see points further down). Then I’ll jot in my notes (I keep a running note log of my day, because I can’t remember it all) that I emailed Fred at 7:00 AM about the thing and awaiting his response. Then I’ll start debugging and let myself focus there because…

3. Be militant about eliminating distractions.

Amen to this. Ever been deep into something and something interrupts you and there you go, blows your train of thought and either you lose the idea or if you’re lucky you can get back into it but it takes you some time and the vibe is lost? That sucks, and is a big waste of time.

I wish some managers actually understood this and enabled it. My current managers are fine, but I had one in the past that was bothered and offended by what I did. I actually closed my door, and even put a note on the door to “knock first, and wait for a response”. I did this so I could manage distractions, but they had a problem with it. Silly me for understanding how I worked and had a desire to be productive. *sigh*

And then there are those that think open cubes and other such “open, collaborative workspaces” somehow lead to productivity… a decision typically made by managers and VP’s that have 6 walls and a door and all the privacy they want. *sigh*

Close your door, ignore the phone, ignore IM, ignore email, and generally turn things off. And yes, don’t check Facebook and Twitter every few minutes — the world goes on even if you don’t keep up with it, and you’ll love. You have to have the self-discipline to say no and deny things so you can get work done.

4. Schedule your email

This was one of the best things I did many years ago. It was all the rage to poll for email every few minutes. But I found it a constant distraction to hear the “ding” of new email, especially because I would feel a pull to check and respond — interrupting my work. So I stopped polling for email and have been very happy. Unfortunately some months ago the day job finally forced me off POP and onto Exchange so my email gets pushed to me the moment I get it. *sigh* What’s worse is culture is so strong around email and this immediate delivery that you’re expected to notice and handle email the second it arrives… or maybe 5 minutes before it actually was written. *sigh*  But I don’t care. Turn it off and people can deal with it if you didn’t get and handle the email the second it got there. Quit the email app, stop polling for mail. Handle email when YOU want to.

5. Use the phone

I will agree that sometimes the phone is the more productive way to get things done, but sometimes email remains better even for longer conversations. If there are a lot of people involved, it may be the best way for everyone to converse (you may have geographic and/or scheduling issues that prevent anything else). If there needs to be a paper trail or ease of recording. As I wrote above, sometimes the delay and control you have over email sending and response works more in your favor in terms of managing your time. What’s important is to not neglect the phone as a communication device (very easy to do these days), just learn when it’s time to use each method of communication.

6. Work on your own agenda.

Yup.

Not always 100% possible, but as much as possible, do so.

7. Work in 60-90 minute intervals

You gotta rest. You have to take breaks and recharge. And that doesn’t mean switch from email or the conference call to checking Facebook. No, you should get up, get a big glass of water, have a small snack, and walk around a bit. It helps, a lot.

In fact, big glasses of water throughout the day are really good for this. Not just because having a lot of water in a day is good for your body, but since it eventually works its way out of your system, the need to go to the bathroom helps force you out of your chair and to walk around. 🙂

Austin’s Tech Talent Shortage – Try Telecommuting

Over at my company’s blog, I wrote about Austin’s tech talent shortage and how telecommuting could be the better solution (Austin, or anywhere).

Telecommuting visibility

IT World has a pretty good article addressing the question “Does telecommuting make you invisible?”

My answer? It can, but you can do something about it.

Some background on me. I’ve been at my day job for over 11 years and have worked it as a telecommuter the entire time. I’ve had different bosses, different projects, different teams, but it was always me that was out of the office. At my prior job, while I worked at the company HQ, the project I worked on was hosted out of Toronto, Ontario; that ended up being an interesting hybrid of “in the office” but yet I was still a “remote” that was for all intents and purposes, telecommuting. At the job prior to that, I worked in the office but most of the people I worked directly with were all full-time telecommuters located elsewhere in the world. I got to see and deal with a lot from “that side’ of the fence. So for quite a number of years throughout my entire career I’ve dealt with telecommuting, so I’d like to think I’ve learned a thing or two about it.

On the whole, I’d say the IT World article was spot on.

  • Your company’s culture and norms regarding telecommuting
  • The percentage of people at your company that work remotely
  • How visible you can be on a day-to-day basis to your boss and others
  • How effectively you can perform your job remotely

Those are things that will matter and affect how well it works. I’ll add a few things.

Regarding company culture, true that culture around telecommuting matters. If you look at what the article lists on this point, it talks about the company being set up for conference calls, remote access, and other “outside the office” work. Consider this. Is your company large enough that it has more than one physical office? If so, then it’s effectively dealing with telecommuting and other issues of being “virtual” or “remote”. It doesn’t even have to be a true office, maybe it’s a contract shop out in India or Russia. Either way, once the company is forced to go outside its 4 walls, it’s effectively dealing with the very same issues. If your company can be successful with multiple offices, it can be successful with telecommuting. I say this because often companies have multiple offices but are down on telecommuting because they view them differently. Sure they aren’t 100% the same, but for the most part in terms of day-to-day operations, they are. But of course, it can vary and depend on numerous factors, including if it’s a job that can be done outside of the office without incurring much problem and expensive.

Percentage of people can matter, especially because I know some people who may not get to work remotely may come to resent you and your ability to work remotely while they’re stuck in the office, dreaming of working from home. But if you have a larger number of people, or if it’s an option available to everyone, it’s not as much of an issue. This issue then blends into the next issue….

… visibility. This matters, and this is where YOU can make the most direct impact. Sure, if the whole team is geographically spread, that will affect process. If not, or even if still, you can and SHOULD make effort to make yourself visible. Call your boss every day or two just to chat. Call co-workers. You don’t have hallways, a photocopy machine, vending machine, water cooler, etc. around which to just congregate and talk, so you have to find ways to have social chatter as well as business chatter. Don’t be annoying, don’t cross norms or cause a problem, but just work to keep yourself in on the loop with things. Don’t be afraid to CC people on emails because you do have to force the communication. Every Friday send a “weekly progress report” to your boss and maybe even the boss’s boss (and the whole team, if appropriate) so people can be aware of what you’ve been doing all week long. Can you use Instant Messaging? If so, get the whole team on IM and use it as another means of chatter and communication during the day. Plus, IM provides a sort of visibility because, so long as you properly manage your IM, they can see if you’re online or not, at your desk, or not, in a meeting, on the phone, do not disturb, or whatever other status that may come along. It’s useful for visibility.

But be aware to not violate company policies or, most of all, lie. Don’t make things up because you will get flushed out sooner or later if you do. So much of telecommuting is based on trust, so everything you can do to foster and build trust in you, that you are responsible, that you can get the job done? That’s key.

And that brings us to the last point about how effective you are at doing your job. You do have to prove yourself. Well first, you do have to see if it is a job that can be worked remotely: someone on an assembly line just has to be there on the line, no avoiding it. As a software developer, so long as I have electricity and an Internet connection, I’m pretty good to go from anywhere in the world. Or you may find that your job can be done sometimes from home, but from time to time you have to go into the office. Whatever you do, you have to do it and find the balance to make that possible. You have to prove that you can do it, that you can have the discipline required to get the job done. A lot of people tell me they could never work from home — perhaps that is good because they know themselves and what they need to be properly motivated. I would also say, don’t sell yourself short. When you know you HAVE to get a job done else you won’t have that job and the income it provides, it tends to be a good motivator. 🙂  Yes it’s hard at first to get into the swing, find your discipline, find your groove, but you can get there. Heck, these days if I went back into an office I’m not sure I could be as productive — too many distractions!

Telecommuting isn’t for everyone, but I’m happy to see more of it. There’s many good things about it, if it can be done. The lack of commute has multiple benefits from less time wasted in a day to less impacts on our roads, our environment, vehicle wear and tear. All good things. Less costs. And ultimately, a higher quality of life.

Oh the pain

I love Apple. You know that. Without Apple, I’m not sure what sort of life and career path I would have taken.

But… I’ve held off on upgrading to Lion (Mac OS X 10.7) and Xcode 4 for numerous reasons. One is because my day job’s requirements still need some older OS support so we had to hang back on Xcode 3 (which won’t work under Lion). But the other is all the reports of the hell, dreck, and problems in the upgrades.

I’m now in a position where I have to upgrade one dev machine to Lion and Xcode 4 in order to work on some cutting edge iOS stuff.

Oh it hurts.

The worst part of Lion is switching how scrolling works. I understand why it was done, but it still sucks. (Yes I know I can change it).

And then Xcode 4… oh, for all its improvements, all the changes are huge. It’s killing my productivity to make the adjustment. All day long I’ve been dealing with the New World Order of Lion and Xcode 4, and let’s just say I haven’t been all that productive… tho if I could count the string of obscenities spewing from my mouth as productive, then I guess productivity is at an all time high.

*sigh*

It’s just a matter of adapting and getting used to it all. I know. And if this is the worst problem in my life, then life’s pretty good.

Still.. just had to vent.

I keep saying it will all be better, that 10.7.4 or .5 will fix a bunch of things. That Xcode 4.3 will bring back User Scripts. But I’m not holding my breath.

Don’t call yourself a programmer

Cleaning out a bunch of things I’ve wanted to link to.

A great article, “Don’t Call Yourself a Programmer, and Other Career Advice“. It’s long. I’ve only been able to skim it. But it’s chock full of goodness.