Personal, Thoughts

Pulling Away

I have felt a particular way for a long time. It has been a nebulous, vague feeling for most of it, but recently its started to coalesce in my head. Its a realization that I am pulling away.

I think it started with our second daughter, Adeline. Raising two kids is without a doubt, one of the hardest things I’ve ever done. Its incredibly rewarding, but it has taken its toll on my physically, emotionally, and mentally. At the hospital when Adeline was born my mom said to me that raising two kids is four times as hard. Extrapolating, I expect three kids is eight times as hard. That is how kids work I suppose. The chaos magnifies. I simply don’t think that I could have a third, despite strong wants some days.

I’m now 32, and the world makes less and less sense to me. Trends don’t interest me. I look at communities like Instagram, and Snapchat and I just don’t get it. Facebook has changed from my college days. What was a way to write to your friends is now a trash media outlet and everyone on it is angry. Maybe I boxed myself into some political bubble in their news feed algorithm. I’ve stopped visiting them, along with Twitter, Untapped, Yelp, Strava, and more. Its all needless.

I don’t really get the new movie trends, like the hundreds of superhero comic to movie adaptations. The first few were neat, but we keep remaking them.  I don’t follow sports. I have a hard time listening to new music on the radio. New fashions like vaping and skinny jeans just irritate me. Video games have gone to shit now that publishers are wrapped up in multiplayer and add-ons. Programming just feels like an endless reinvention of the wheel with diminishing progress.

Maybe it’s just what getting older feels like. Maybe it’s wisdom. Not falling prey to the fear of missing out. Focusing on what matters to me as an individual. Quit making everything a competition. Quit trying to impress others with checkins, and pictures showing how much fun you are having. Quit seeking peer approval.

Then last night the presidential election happened. It hit me in a way I didn’t expect. I educated myself on the issues, while staying away from mainstream media, talk shows, and largely out of debates with peers. I figured most of the drama was just for viewership by the media outlets. I believed that some people felt differently from me, but more were like me than not like me. But when the polling results came in, I found myself angry, confused, fighting back tears. It meant more than past elections. I’ve voted for losing candidates, and went on with life. This one stung. To me it was a signal of the end of what I understood our country to be.

I’ve been in this mindset for months now, and the election pushed me to write about it. I needed to get the way I’m feeling out of my head and down on paper. Is this just aging? Is this stress? Diet and exercise? Is this objectively where we are as a civilization, and everyone is waiting for it to change just like me? Have I just become bored, or complacent with my life?

I certainly feel old, tired, slow. Unnaturally. And I’m not sure what to do about it other than writing a cathartic blog post.

Computers, Personal, Software, Thoughts

“The Deadline”: Part 3 on a Series on Leadership in Technology

Quite a bit has changed since my last post on leadership. I’ve been promoted to the capacity of full time team lead after my mentor, and manager left to work for another company. I was learning a great deal everyday, and being turned loose to manage the team on my own has been a baptism by fire. I’ve applied what I’ve learned already from my previous mentorships, and I’ve learned a great deal more over the last few weeks.

High bandwidth communication is key

I would have never gotten through the last few weeks on emails, and instant messenger alone. Its very important to have communications by voice to keep everyone updated and on the same page while respecting each other’s time. Several times in the past week I’ve watched an email thread bounce back and forth between many participants, only to get boiled down into a concise message at a standup meeting. A five minute verbal QA would take hours via email. Especially across different timezones.

Delegate, delegate, delegate

When moving into a managerial capacity, the content of your day to day work shifts dramatically. The first few days without being in the code left me anxious. But you know what? We have good guys that understand even more than I do, and if you give them a problem, they come back with a solution. Its hard to trust that it will happen, but it did. Over and over again. The key is not in just throwing out a problem and coming back the next day to find a solution. You should be available for questions, and clarification continuously throughout the development of the solution. I often found that checking in a few times a day on each developer was sufficient to answer any questions, understand the progress, and get a rough idea of when something would be delivered. A few times they would casually mention that they are stuck trying to figure out ‘x’. Turns out I know about ‘x’ and after a brief chat with some pointing to places in the codebase they got it squared away.

Be crystal clear about your requirements

We had a new screen we wanted to develop. We had a mockup done by our front end guys. Our BA loved it. Everyone was on the same page. Until we began to implement it and all of these tiny edge cases popped up. I’d assume a course of action was the correct one to take, only to discover that our stories were getting rejected by QA. Turns out we don’t share the same brain, and what I call working, someone else will call a defect. That creates a lot of extra work to resolve what is now a defect. Closer to the deadline of the deliverable, when I switched over to voice communication instead of IM, I was able to lock in requirements quickly and get instant feedback on how we should handle certain edge cases. Don’t be afraid to bother the higher ups with technical questions, because it is up to them to provide the definitive answer. You aren’t doing yourself any favors by shielding them from it and substituting their would be solution with something you invented.

Front load work you are less certain of

If you aren’t clear of how something is going to be executed, that is a problem. Its your job as a manager to find out! You don’t need to know every technical detail, but you do need a clear understanding of who the key players are, what the testing process is like, and how you will get this feature through QA and accepted by the business. We had some work on a feature that impacted a few systems downstream. Did we put this off until we took care of the easy stuff? Nope – we started with the pain in the butt feature. And good thing too because we were working on it up until the last minute. We didn’t realize how much latency there would be in getting just a ‘its working’, or ‘its not working’ from all the parties downstream from us. If you aren’t sure, begin immediately to error on the side of caution. The easy work you have a clear understanding of, and it should take a backseat to anything that isn’t as clear.

Pad your estimates

This entire iteration I was too optimistic with what we could turn out in a day. Estimating is hard, and I’m convinced we all suck at it. I’d like to believe my guys can come up to speed on a new technology stack and crank out some impressive code but there is a learning curve. Sometimes the only way forward is a painfully slow dive into the documentation. There are test suites that take forever to run. There are rejections when it comes time to merge, meaning the suite has to be run again. There are the seemingly simple issues that once you dive into become much more complex than anticipated. Rarely did we close a feature or bug in the amount of time I assumed it would take. Because of this I’m going to start padding my estimates to compensate for all of these little details that add up to something bigger.

And finally – know when to ask for help!

There was a certain point in the sprint when I knew we weren’t in good shape to hit our deadline. I mulled it over in my head and stressed about it, and let my pride get in the way a bit and was convinced that asking for help wouldn’t be necessary. It was a mentality of “if I can just get through these few stories here we will be back on top”. But of course, I’m sucked into a meeting, or new bugs pop up, or the feature I’m working on before it runs way over on time. Don’t hesitate to ask for help when you first identify the need for it. Forget how bad you think it will look. Forget the anxiety of revealing rough new code to outsiders. Its worse if you don’t ask and end up missing your target. I was surprised at how strong the support was once we asked for help. I had 10 extra people jump in and had them all working in parallel on the feature. My entire day was pointing people to new work, and answering questions, and following up on when it would be merged. And the astounding thing was by NOT touching the code, we were delivering more than if I had put on headphones and jumped in myself. And for the record, there was a minimum of sniping at our technical solutions from outsiders. It felt good to know we were a team and it didn’t need to be a perfect solution before you left outside people in for help.

Personal, Thoughts

Hi, I’m Ben: Part 2 in a Series on Leadership in Technology

Leadership means exposure. I volunteered and demonstrated the work our team did today to an audience of peers, and management. Its necessary to present for a number of reasons. You need to stand out, and you need to get comfortable talking to as many people as you can. The relationships are important, and you can’t settle for being just an employee number. Essential tip: Learn their names and don’t you forget them! Find something to talk about, and if that fails, talk about work, but talk to them damnit! When you make connections you establish rapport. This is the grease that is needed to make influence a smooth process.

Looking Glass Self

After the presentation, I had a call with my mentor, and I asked him how he thought the presentation went. His answer? He asked me how I thought the presentation went! I admitted I was nervous, and that perhaps overshadowed any objective review of how the presentation actually went. I said “I think it was good for the moral of the team”, which he made me immediately quantify. I didn’t have anything ready this time. He wanted me to glance at the team chat. It was full of questions, and praise. People that had no knowledge of what our team was doing were suddenly lighting up the board! That was the proof he said. I’ve got them interested to know more. They are excited, and they want to know more about our process. I spent the afternoon talking with people I don’t routinely talk to about our presentation. People were plugged in to what we were doing.

That Death Star is Fully Operational!

The order of business for this week was to handle front-line issues. He asked me what I thought we needed as a team to proceed. I thought for a moment and told him “we need a plan of attack!”. He asked how I would divide up the work. I admitted I didn’t know what we were supposed to touch, and what was best to leave alone. The work as presented to us not organized. We also needed to button up work from our last assignments, and come to think of it I wasn’t sure if we were focusing on that, or the new work. Time to take a step back before we get in a bad situation.

Enabling Accountability

People want to succeed. And one of the attributes in gauging success is delimiting what you are accountable for. It doesn’t matter if you knock a feature out of the park, if you let two more slide past a deadline, or if you are working on the wrong task all together. You have to enable accountability by pushing back (when needed) requirements as given to you (see Kobayashi Maru). The first task wasn’t a plan of attack at all – it was defining what we were accountable for. You absolutely have to answer this before you can come up with the attack plan. Once you know, you can box off your work, and fill in the gaps.

Lowering Friction

The side I do have the most experience with is the developer role. The worst thing that you can do to a developer is to give them muddy requirements. You can’t win. A developer wants clearly defined requirements for a piece of work to be able to autonomously translate this into machine instruction, and verify that it is operating “to spec”. Its vitally important this occurs. Often the developer will encounter this high friction work. Remember that rapport we built earlier? What better way to smooth out requirements, and axe the nonsensical requirements than to influence the people making the requirements? Make sure you understand what they want so you can deliver effectively. A developer often won’t be in a position to make a decision. You have to decide and be confident in your choices. Its also about standing by those choices, and being prepared to take the heat when your choices aren’t well received.

Personal, Thoughts

Know Thyself: Part 1 in a Series on Leadership in Technology

Know Thyself.

That is how my mentorship started at Analog Analytics. Before we continue some background for those following along: I’ve been doing software development with web technologies for a little over three years full-time now. I have a BAS in Technology Management, and as the “M” in the title implies, I’ve had academic exposure to the topic of leadership. I was bored to tears. Reading how to influence people out of a textbook is akin to watching your favorite show by viewing a sequence of technical diagrams outlining the plot. Its pretty close to useless. In the spirit of open source, I wanted to document my journey for those considering incorporating leadership roles into their careers. Its an elusive topic for me with a few abortions, and probably just as elusive to people-averse developers. Its ironic since its a field that stands to benefit so much.

My mentor asked me what I thought leadership was. Of course I had technical answers: Its being an authoritative source on a technology; its picking up the most bugs; its working long and hard hours. He challenged all my answers and posited it’s about one thing: influence.

99% of workplace problems can be solved through Influence

All the rules are there on paper, in emails, IMs, Wiki pages. You have standard operating procedures, political hierarchies, red tape, and documentation. That isn’t how issues get solved. More often than not he challenged, its a leader’s influence that allows them to win someone over to their side. That is why Person A can ask for something repeatedly, with no response, and Person B can ask for the same thing and get results. People are not software, and do not operate algorithmically. Given the same inputs, the outputs can change based on charisma. Its a fascinating phenomenon to analyze.

Taking Burden Off Others

So how do we gain influence? You can be a technical resource, and you can put in long and hard hours, and slowly climb upwards, but its orthogonal to leadership. Simply, start by taking the burden off others. People notice when you own a problem and resolve it for them. This isn’t about doing other people’s work. Its about removing friction from the process of work so they can easily do other work. When you make your coworkers lives easier, yo build up credit. Your ideas suddenly carry weight. You now have a better chance of successfully influencing them.

Kobayashi Maru

How do we reduce friction? As I said earlier, there is plenty of red tape to go around. Push back. If a process is painful change it. Side step it. Fight it. Better to ask for forgiveness than permission. You might gain traction doing it a better way before it can be killed off in the planning phases. This is about rejecting inputs, and is one of the most markedly apparent difference in a developer versus a leader. You have to stick your next out, and build up your courage. Odds are you aren’t going to get canned.

Know Thyself

A word of caution to those attempting to be charismatic. Play to your strengths. If your not funny, don’t open with an awkward joke. Be sincere. A big attribute of charisma is confidence, hence you should know yourself.  The end goal is to influence people, but this isn’t a study on mind control. Its about influencing someone’s views to get them to see the same end result that you see. You want to win, but you want to do it by empathizing, and leaving the door open for the future.

Computers, Events, Family, Personal, Software, Thoughts, Vacations

The California of Texas

Austin is a counter-culture in the heart of Texas. I’m not sure what I expected, but vegan friendly restaurants, health food stores, hundreds of miles of bike paths, a city wide ban on plastic bags, and a highly affluent populous was not what I was expecting. So beings my journey.

The Sights

We drove thirteen hours overnight to accomodate our newest passenger, Morrigan and her sleep schedule. As bad as driving all night was, at least we didn’t end up with a screaming toddler in the backseat. We visited some of Kristin’s kin in Houston, which served as our base for the weekend before pushing further West to Austin.

We negotiated a great monthly rate on a condo we found on Airbnb off South Lamar on the South side of the city. (Affiliate link) I’ve been really impressed from the moment we pulled into our new home away from home. The unit is small, but renovated, and well furnished. What we lost in space, we more than made up for in location. Right up the street is a lifetime supply of changing restaurants, and only a 10 minute drive from Zilker park.

Our first weekend we visited a local farmer’s market and bought some Texas grown produce. I never thought I would do what we did next – attend a vegan festival. Sure enough. In the land of BBQ, thousands of health nuts live in this city. Despite being vegan the food samples they had were all delicious. If I hadn’t known, I wouldn’t have tasted any difference. Vegans have masterfully replicated an omnivore’s menu.

The next week brought with it a trip to Fredericksburg, another hour West of Austin (but still not halfway through the state!). It is a German town, and had plenty of beers, wursts, and gut busting treats. The main strip is really quite a marvel, as it goes for over a mile and encompases lots of original architecture. Sunday we visited the Austin Zoo which put a spin on the traditional approach, and opted for a non-profit animal rescue shelter and animal sanctuary. Morrigan loved spotting all the critters, but the Texas heat won out, even in April. I was never so glad to pay $2 for a bottle of Coke.

This week I rented a bike and road around the Lady Bird Johnson trail which follows the river that bisects the city into North and South. It is wonderfully engineered, running past coffeeshops, restaurants, playgrounds, fishing areas, boat ramps, and dog parks. I wish Atlanta had something like this to offer. Maybe when the greenbelt is completed? (And the bikeways protected with police?!)

We have plans to go to San Antonio next weekend to visit Fiesta de los Niños, and plan on visiting my cousins who are lucky enough to live here. Following that will be our last week before the long migration home. We will be spending the last weekend back in Houston where we will visit Kristin’s folks for her mom’s birthday celebration.

Remote Working

Working remotely during this time has been interesting. I’ve learned an important lesson: don’t go anywhere during the launch date for your product! Too much was up in the air to leave beforehand to stay clear, and I was concerned that afterwards we would be scrambling. Turns out ramping up to the last minute before launch can be just as stressful.

For those of you following along who already, or wish to do remote work, ensure that you rent a place that you can have a quiet place to work. I find that mornings are my most productive time, and I try and guard this time for the important tasks. But with a smaller rental unit, and a one year old, I found thata nice pair of headphones is essential. I’ve taken advantage of ROWE several times during the week when we visited the capitol, and visiting parks, and going out for walks with the stroller. It pulls me out of my comfort zone to not be sitting at my desk at 9am, but then I realized the world doesn’t end. I simply make up the time later. Exercising this perk has really boosted my confidence in working for my company. They genuinely care about results and not office hours.

Also, have a backup plan if (when!) the Internet goes out at your rental unit. The maintenance people decided to test the waterproof claim of the rental’s outdoor wireless AP with a pressure washer. I’ll let you guess as to the winner, but I spent the rest of the day at a coffee shop. Also – scope out your coffee shops. I would love to see a website that lists the rating of different places based on workability. Some places don’t give you the vibe (despite having wireless) that they want you hanging around with that laptop of yours. Other places look promising, but offer no connectivity. Grab a cup of coffee or tea beforehand and scope things out.

A few notes on extended vacations: Don’t binge vacation! You are there for a while, so relax. Buy some groceries; every meal doesn’t have to be an experience. We have been aiming for eating out once every few days. It helps with the finances as well.

Don’t wait until the weekends to go exploring – especially when you have ROWE. The weekdays are the best times because the crowds are small, and the traffic is light. Check out your local attractions. One of the most relaxing things has been for me to join Kristin and Morrigan in the mornings for a walk around the neighborhood.

I wasn’t at home with my millions of distractions, so I wasn’t prepared for a “boredom adjustment”. Once I realized its not a pure vacation, and that I had to work, I struggled to find ways to wind down in the evenings. I ended up finding a used bookstore and stocking up on reading materials. I’ve enjoyed reading again instead of falling asleep in front of the TV, or playing video games until the early hours.

Being in a place for a month is certainly better than the binge vacation, but it is just a taste of what living somewhere would be like. Its just enough time in my opinion to really begin to absorb the culture. I find it thrilling to wonder what each day will bring, as everything is new. Maybe you spot a new restaurant (or food truck if you are in Austin), or drive past a park you want to checkout, or see a bike rental shop. I’m really making up my itinerary as I go. I’m glad I strived to find a job that affords me the opportunity to do this, and I wish that everyone who wants the same can achieve their goals. I can tell you its totally worth it!

Apple, Computers, Events, Family, Personal, Ruby, Software, Thoughts, Vacations, Web

Cloudy, Cold and Hip – Two Weeks of Training in Portland

I’ve really enjoyed the last two weeks. My new employer, recently acquired Analog Analytics flew me out to Portland, Oregon for training. Portland is quite an amazing place. Skateboarders, cyclists, and runners abound, but with a laid back attitude. Its the greenest city I have ever visited. Stores seem to only dispense recyclable materials including paper bags, and foods in waxed cardboard containers. The entire city is very walkable without much danger of personal harm. The food was amazing, and the drinks even better. This city knows its coffees, teas, and beers. It has to be home to the most microbreweries of any city. Needless to say I have probably gained 5 pounds, and I am super caffeinated. Also, the proximity to all these hip restaurants is giving me second thoughts about living so far outside of the city limits. No lie, I even glanced at Portland housing prices.

It took me a few days to get oriented to the city and the work environment. The company runs out of the Ford Building, in the heart of quite a few cool restaurants and bars in the Southeast side of the city. In fact, it left me a little jealous considering the hotel is only surrounded by fast food joints.  I got a shiny new MacBook Pro (which I am currently battling to make it as “boring” as possible). I can’t talk too much about the work, but it does hit the sweet spot of what I was looking for – a small team feel with deep pockets, and a launch date.

Kristin and Morrigan joined me for the second week and did their own thing, and they had a blast. They visited OMSI, Powell Books, Finnegans, several parks, and malls, and some tasty food joints. I’m happy they got to experience some of what makes this city awesome.

I’m enjoying several aspects of the job in particular: A remote driven environment, and pair programming. Training isn’t the best test run of this environment, as I am in the office everyday for now. Once I am setup, I pick the hours. People hop online and offline, according to their time zones, availability, etc. Every piece of communication, and workflow is centered around remote teams.

Pair programming makes programming social. Despite the image that telling someone you are a programmer conjures, I really enjoy interacting with people. I remember teaming up with James, John and many others at Clayton State to tackle some large issues with our portal and other systems. Since Clayton State, I have worked on a couple teams, and it was almost always in isolation, save for 5-10 minute high level meetings. The best part is, its actually kind of fun.

Pair programming was a tough adjustment for me. I’m used to presenting a final product and defending its implementation. I have all the answers. I know what the talking points are up front, and I am comfortable because I am the authority on the subject. Pair programming is letting your guard down, and conceding as much as contributing. You are two people working on a problem together, with neither party starting off knowing the complete solution. The work is certainly slower than solo programming, as incorporating input, early refactoring, and general discussion takes up time. This team takes an interesting approach to combat some of the time drain; You can either pair program and merge directly, or work solo but your code requires a peer review before merging. The choice is yours. The solo programming option will probably act as a safety value for those days when I just want some time to myself. They also encourage “switching drivers” to vary the work. Interestingly, being the passenger requires more focus than driving, as you are trying to proactively find issues with the current approach.

I’m still struggling to embrace TDD. I don’t like the zealotry in the community when the topic comes up; presenting the only two options as either you test first, or you are just ignorant, undisciplined, or apathetic to the code you write. The truth is far from it. I figure things out by moving the pieces around – not by staring at it from a distance. That is not to say that there aren’t times when testing first is extremely useful, like when clarifying requirements. The test assertions (even with missing test bodies) is often enough to help solidify an attack plan. The amount of code coverage can be a hindrance though, as real world tests always end up being more tightly coupled than you ideally want them to be. If you make seemingly small code changes, you can end up with quite a bit of the test suite failing (all though with the same few errors repeating). If you mock and stub too much, you aren’t testing much that is useful. Even worse, the workflow doesn’t seem realistic: Write the tests, verify the tests fail, write the code, verify the tests pass. The reality seems to be write the tests (heavily guessing at the exact implementation), verify they fail, write the code, refactor almost all of your tests, and verify they pass. Given the choice, I think I’d still rather write code, then test the code to verify it does what I want in all scenarios. I’ve yet to meet a dyed-in-the-wool TDDer that sees any fault with this extra refactoring step. The subject of pre-written tests needing to be refactored seems to be glossed over. Maybe my opinion will be changed yet.

Things are looking awesome for this next step in my life! I’m keeping my fingers crossed for Railsconf tickets, since they are in my employer’s backyard. There are also a few missed restaurants I am meaning to visit next time I’m back up this way…

Personal, quotes, Software

In order to make delicious food, you must eat delicious food

In order to make delicious food, you must eat delicious food. The quality of ingredients is important but you need to develop a palate capable of discerning good and bad. Without good taste, you can’t make good food. If your sense of taste is lower than that of the customers, how will you impress them?

Jiro in Jiro Dreams of Sushi

When I heard this quote, I immediately thought of software development. The best way to write good software is to look at the design principles of good software. You can’t work in isolation. That problem you have is the same problem that has been solved millions of times before by people that are better than you will ever be. Without good taste, you can’t make good food. This is why open source is so important. Look at the source code whenever you are curious how something works.

Events, Family, Open-source, Personal, Software, Thoughts

Working for a Development Firm is Like Being a Rented Sports Car

As my last post alluded to, I am leaving my current development firm. The reason is primarily a boost in earning potential at another employer, but also a culture change. To explain the culture at a development firm I created this analogy:

Imagine you rent a Mustang, or a Corvette. (Of course you are gonna get the insurance!) What are you going to do with that car? Everything that you fucking can! You are gonna imprint the gas petal into the floorboard, and drive fast and wreckless. After all, you have to get every dime you can out of your rental before your time expires right?

Now imagine you own a Mustang, or a Corvette. Yeah, you would probably hot dog it, but it also your purchase, so if you wreck it, you are gonna be upset with yourself. In other words, you are going to maximize your purchase by caring for your vehicle, and obeying the speed limit (most of the time anyway).

I have just described the difference in my view of an internal development team, and an outsourced development team. Clients want to maximize that dollar when they outsource, which is done by getting the most work in the least amount of billable hours. They want the sports car rental. They aren’t going to set a moderate pace; they are going to speed! I’m not saying that all development firms, or all clients are like this (I’ve worked with great clients in the past). But I am saying there is a struggle between maximizing value and being realistic about what you promise.

How does a client pick your development firm? By your firm being the lowest bid. They understate the hours needed for the work. They over-promise features on an unrealistic deadline. When Company A quotes $100k under Company BCompany A gets the work. And the client isn’t going to be cool with missing deadlines, or cutting functionality. So now management is in a battle with the client who is pissed off because the original bid was unrealistic, and wants to rectify the problem. That shit rolls down hill to you – the developer.

And I can tell you, its not possible to write good code faster. Someone micro-managing me, asking me what I’m doing every five minutes isn’t making me any more productive.

There are lots of companies that push hard. You can make a good living working for these places as long as the compensation, or bonuses are commensurate with the work that you put in. But busting your ass all day, every day – every day feeling 10 hours long – every day being full of epic code pushes, and near impossible deadlines met in the 11th hour – that is a young man’s game. That is pretty appealing when you are 22, fresh out of college, and eager to prove yourself to the world. Stressing out at 4:50 on a Friday, trying to get something delivered while your wife and daughter patiently wait for you to get off work just isn’t worth it. I’d rather enjoy my time with them. I’m not mad about it – its just how the game is played.

Which is why this Sports Car is up for ownership. He is done with the rental game, being driven too hard, too long. He wants a nice garage somewhere, and a driver that just takes him out on Sundays for a trip around town. I want to spend time with my daughter while she is still young, instead of delivering some milestone that I wont remember in a month. If I wanted a stressful culture, I would have worked for a startup. Then at least I have some small chance of hitting it big when we get bought by Google.

Computers, Personal, Software

Working From Home: Redux

In July I wrote about my experience of working from home after one month. Six months later, I’m still working from home, but more the wiser. I had a lot of fears, and uncertainty one month in, and despite the silver lining, I wondered how some of the long term attrition would affect me. Happy to say, six months later I’m alive and kicking, hoping to never set foot in an office again! Here are some thoughts looking back.

Isolation It was a fear that never manifested itself. A coworker of mine warned me that after several months of working from home, he was like a lost puppy when someone would walk through his front door. Hell, I’m a bit strange after staring at the computer screen for a few hours, let alone months of working from home. I attribute this mitigation to my wife and my daughter, and keeping an active social life. I always eat lunch with someone, and keep my weekends full to break up the weeks.

Work is a great place to meet new people, but its not the only place. I still meet friends through friends, and have family, etc. I find that not having a soul-sucking commute and eight hours a day at a desk has made me more social (or at least more energetic). At the end of the day, I want to go out and do things and hang out instead of come home and crash on the couch with some greasy snack food named “regret”. My biggest connection is now user groups in the area. Its educational, and fun.

Reduced Visibility Since you aren’t there, are you going to be passed over when it comes to opportunities, praise, feedback, inclusion in discussions, etc? The answer is YES. The bigger question is if you really want to be in all those silly meetings anyway. I’m guessing you wouldn’t choose to work remotely to place work more in the forefront of your life. After hearing the glorious silence, I find all of the managerial office discussions distracting and just want to know what the outcome is. Less is more.

While I have upheld my end of the remote work bargain, there is still a trust issue. it can be frustrating for your boss when you don’t immediately respond to communications because the fear is “Oh man, we cut this guy loose, and we will never hear from him again!”. We started a new project and I had to (and still at times) push back on the amount of micromanagement. I think there is still a failure to understand that if the agreement is to let me work remotely, then the implied statement is that I am disciplined enough to get my work done.

I think I will prefer ROWE. An employee should be able to work when they want, and how they want without conforming to office hours. The bottom line for a business is that I deliver, not that I put in exactly 40 hours. More on this in a moment.

Getting into a Rut It happens to everyone from time to time. Maybe even more so in the winter. Its cold outside, and the daylight hours are short. When you are working from home, the days start to blend together, and it becomes harder to remain motivated. Caffeine will only carry you so far…

The best thing I did for myself was joining a gym right up the street. I try to visit a few times a week. Its amazing how much stress, tension, and anger you can eliminate just from jogging in place for 30 minutes. I come back refreshed, focused, and energized. When I have several visits in a week, I begin to look forward to the next visit, an this helps me get through the day.

For God’s sake whatever you do, don’t setup for work within arms reach of the junk food in your kitchen!

Another drain is being constantly focused. When you need to be, this is a good thing, but the human mind can only concentrate for so long before fatigue becomes a factor. I read an interesting article called the 10x Developer in You where the author describes the Pomodore Technique. He suggests 25 minutes of concentration, and a 5 minute break. I have opted instead for 45 minutes of concentration, and a 15 minute break, since I often get into problems that extend beyond the 25 minute mark. I have found my productivity (and attention) back to where it was when I first started remote work.

ROWE

ROWE focuses on results, and not hours. Remote work is half of the dream realized, but you still have to conform to office hours. What is the point in working from home if you still have to act like you are sitting in an office?  I think the ideal job would allow remote work and practice ROWE.

For those of you that aren’t parents, a one year old’s sleep schedule is quite erratic, and my shifts don’t always line up with her awake times. I resent having to work while she is awake, only to get off five minutes after she has gone down for a long nap. My daughter goes to sleep around 7pm, and I would prefer work after she is asleep so I can spend more time with her during the day. ROWE accommodates this, whereas a traditional schedule does not.

Charlie Maffitt has some great advice on breaking old habits and adopting a ROWE work style: http://blog.bignerdranch.com/1183-old-habits-die-hard-adapting-to-rowe/

 Final Thoughts

You might be sick of hearing those lucky bastards say it, but this is a game changer. Light traffic is irritating to me now, and I don’t know how people deal with it both directions, 5 days a week. I have a lot more time for reading, playing, and relaxing.

My wife and I have plans for long term travel just around the corner. We underestimated the costs of moving, and the overhead of renting a place for an entire month on top of your current rent. Nevertheless, its still on the books, and later is better than never.

We are also looking to move further out of the city. Without worrying about the commute, you can move further out and maximize your purchasing power.

I think this is the next revolution for workers. This wasn’t possible before for the most part because the technology wasn’t ther, but many jobs today can be done as easily from home as from an office. The entire notion of putting on a silly suit, sitting in traffic an hour, and sitting in a stuffy cubical away from your family most of your life just strikes me as bizarre. The workers will start to demand it, and the employers will have to stop being so controlling about monitoring their staff. This is how you fix rush hour – not by adding mass transit and more lanes. This is how you lower gas prices – not with more fuel efficient vehicles. This is how you fix the depressed American worker – not with medication.

Food for thought!

 

 

 

Personal, Thoughts

Saving Money

As I walked out of the Lilburn International Farmer’s Market today with four full bags of groceries for $22, it struck me that I’ve been overpaying for groceries my whole life.

How to shop is a learned behavior, and my parents never took me to a farmer’s market. We went to premium chain grocery stores, and payed premium prices. I’ve been spending money on things without thinking about it for a long time. The way I bought everything all came down to doing what my parents did. But times are different now. The consumer has a lot more knowledge of competing retailers, and thus a lot more choice.  I thought I would pass on a few everyday (no financial advise!) tips for a more frugal lifestyle:

First off – the “Golden Rule”: Never pay full retail. Yup. There are simply too many competing products in every space, too many retailers, too many sales, and an abundance of used items to every pay top dollar.

Groceries: As I mentioned in my opening, find a local farmer’s market. There are probably plenty around you. If there aren’t brick and mortar stores, check with your city’s website to see if they have a market on the weekends. Buying local, and direct can saves lots of money, especially on produce. Eat less meat. Meat is expensive, and too much is unhealthy. Substitute expensive meat for cheaper, healthier options.

Dining Out: Skip dinners and go for lunches instead. The prices are usually one third to one half cheaper than their dinner counter parts. Usually the portion is reduced, but not by the same percentage as the cost. Reducing portions is healthier anyway, as restaurants have distorted what is a reasonable meal size. On the subject – skip drinks, appetizers and desserts at restaurants. There is usually a high markup for these items. If you go with someone, split an entree. Depending on the restaurant, this is usually more than enough for two people. If not, order an entree and a side.

Clothes: Try TJ Maxx, Marshalls, or Khols. You still get new, name brand clothing, but for a fraction of the price. Shoes can be purchased at Payless, or other discount sellers. You may not find exactly what you want, but I think forcing you to expand your wardrobe diversity is a good thing. You might like the look of something you never considered. If you are buying for kids, try consignment sales. Lots of items are never used, since kids grow so fast.

Furniture: Craigslist! People get tired of perfectly good furniture all the time. Let others take the hit of the retail cost. You get to pick from thousands of items on websites like Craigslist for a fraction of the cost. My wife’s latest Craigslist trophies include a $2200 leather sectional couch for $400, and a $600 ottoman for $115. Half of our furniture at this point was acquired from Craigslist.

Utilities: After spending almost three years in New England, I have learned that it’s acceptable to open your windows. Save the AC for when its above 80, or excessively humid outside. Cut cable and pick up a streaming service such as Netflix, Amazon, or Hulu. You don’t need 300 channels if you only watch a handful of shows.

Transportation: While Atlanta’s options aren’t overly appealing, there are usually enough public transportation options to use for your commute. Outside of commuting, you and your spouse can get away with sharing a car on the weekends. Carpool with friends, or alternate weekends in which you get the car. You will not only save on the cost and maintenance of a second vehicle, but also gas, and insurance.

Books: Stop buying them! I’m not advocating that you stop reading of course, but rather check them out from your library. You are paying taxes to fund these municipal services, so leverage them. If you must read the latest best sellers, check what your friends have. When I finish a book I never lend it out – I give it away to whoever wants to read it next. Even e-readers have services that allow for lending digital copies.

Games: Lots of video games quickly depreciate in value. Within a few months of the launch date, the game may drop $15-20. Within six months the cost is probably half the launch day price. Within a year, the game usually ends up as part of a bargain sale. Forget the hype of playing the latest and greatest. Lots of online deals websites are heavily biased towards electronic items, including games. Keep an eye out!

Interestingly, we have less income now that my wife stays at home. We also have more expenditures now than we did when we made more income. We pay considerably more rent, own a new car, and yet we still manage to pay down our debts we accumulated when making the higher income. The trick is to shortcut everyday expenses, and prioritize your wants, and differentiate them from your needs. You aren’t entitled to have all the nice things your parents have. They are older than you and have been accumulating their possessions their entire lives. You are younger, so don’t make the comparison.

I wish someone had imparted this advice on me when I was younger, and I hope that these tips helps others to stretch the all-mighty dollar and live a little more comfortably.