May 31 2011

CEO of You

I’ve worked for large companies and I’ve worked with small companies. There is a big difference in your day to day responsibilities when working in either of these environments. In a large company, you know your rank, your salary pay, and your place in the org chart. In a large company, you can predict product releases by the conference room schedule months in advance. I remember working on a project in a large organization and I wanted to add a boolean property to a single database table but the there was so much bureaucracy in place that that it took two meetings and the review of the local database expert who used his tenure to carve out a little fiefdom for himself.

It’s completely different in a small organization. In a startup, there is no room for bureaucracies, or org charts with more than two levels, or egos of experts but at the same time everyone is the CEO of something. In a company of less then 10 people, there is no room for middle managers, everyone has to manage themselves, everybody has to be a CEO of something. In such an organization, you may have to be the technical lead, the hiring manager, or the vice president of phone system, or directory of version control, as well as the senior technical writer, and even maintenance guy. In a small organization you have to do it all. In a small organization, when printer is stops functioning you are the printer expert. When the phone system stops functioning, you need to take the lead.

I’ve found that this approach also works for other aspects of life. There are people that wait for a scheduled meeting to to figure out what they need to do next, I like to get done.


May 24 2011

Manage Your Manager, Organize Your Organization

No matter what your position in an organization, no matter your title, or pay grade you often need to manage those you work with. Sometimes you need to manage your own manager, co-workers, and other resources. You might work with the boss that travels often and consistently sends you notes on features and requirements right after client demos. Maybe you may work with a project manager who keeps hand written half crossed out tasks scattered in a series of prints out. Worse yet, you work in a team that delegates work by forwarding and replying to essay length emails.

Highly effective development teams have a series of habits that they routine practice including using a version control system and bug tracking software. As an individual contributor, you also need to develop habits to help you team. Here is a short list of habits you can develop to help you succeed in a team environment.

  • Manage tasks in a single document.
  • Keep lists of work items.
  • Keep correspondence with other short and simple.
  • When email people about separate issues, separate issues in different bullets or different paragraphs.
  • When describing a problem, list possible causes and solutions.
  • Use screenshots and image editing software to help you illustrate your point.
  • Use screenshots and image editing software to help you illustrate your point.

There are a multiple tools to achieve this, you can use Outlook Tasks, Google Documents, Microsoft Project. An effective organization has every member using the best tools available to organize their tasks and those of the people around them. The key to success is to make it easy for yourself and those around you to achieve your goals.


May 23 2011

Retweet April 2011

From time to time I just blast tweets about software development, project planning, team dynamics, or whatever else comes to mind. Here is a synopsis of recent tweets and rants. If you want to follow the conversation follow me at techknow and/or juixe.

Software Development

  • Thread.sleep(28800000);
  • You don’t need a PHD in PHP to be a great Web Developer.
  • Not Another Expression Language. There should be one expression language to rule them all.
  • I am not afraid of rolling up my sleeves and debugger.
  • It’s a thin line between feature and bug.
  • Code is a blunt instrument.
  • We ain’t afraid of no code block.
  • Web designers are modern day alchemists.
  • If developers are a dime a dozen, then product idea people are a silver dollar a dozen.
  • I don’t read romance novels or non-fiction before going to bed, I read programming language technical specifications.
  • New Name For Rock Band: Death By SQL Injection
  • Let there be code.
  • Just code it.
  • Code the future.
  • Crack the code.
  • Don’t be a code donkey.

Team Dynamics

  • Are you a value creator, subtractor, divider, or multiplier?
  • AWS failure is the perfect storm to the cloud.
  • Stress is excess, we don’t need it in our lives.
  • You can’t buy the scrappy mentality.
  • Scale your thought process.
  • The right time is right now.
  • Strive to do what you do well better.
  • People don’t scale and multi-task as well as computers do.
  • Give a man a thought, and he will think for a day. Teach a man to think, and he will think for himself.
  • You don’t want someone to reinvent the wheel, you need someone that makes it turn!
  • Everyone has great ideas, what is needed is great execution of great ideas.

Product Placement

  • Is Automattic, the company behind WordPress, working on an ad network? With millions of WP blogs out there, maybe it should.
  • Jiffy Lube peeps are great at up selling you on add-on services.
  • Forget HAL 3000, I’m afraid of my iPhone 3000. “I’m sorry Dave, but I’m afraid you can’t do that and I’ve notified the authorities.
  • Google announcing that better ads are coming to GMail is like the power company announcing that a better billing system is coming.
  • I feel like I get more snail mail spam than email spam. I wonder if GMail can also filter out my snail mail spam.
  • If you add up all the zero-day holes in Adobe products, you get a lot of days spent patching and upgrading buggy software.

The Valley

  • Welcome to the Blubble 2.0.
  • The trouble with the blubble.
  • I think we are in a #bubble when a website for listing free crap is valued at multiple millions of dollars.
  • Don’t pivot while you pitch.
  • How do you monetize the bubble?
  • Ah, Silicon Valley, the land of vanity startups, founders with ADD, fan boi VCs, me-to products, one trick apps, companies on pivot mode…
  • Bubbles are like snow flakes, there are no two alike, so we can conclude that this tech bubble I’d different from previous ones.

General Technologist

  • If Arthur Miller were alive today he would have written a sequel to Death of a Salesman called Death of a Social Media Marketing Ninja.
  • You know your service or product is successful if GOOG wants to buy you for a billion dollars, FB copies you, and if MSFT doesn’t get it.
  • Any lawmaker who proposes any bill related to technology should be able to correctly setup a wifi router, Facebook privacy settings, …
  • My iPhone knows too much about me. I think I want a dumb phone, instead of a scheming evil genius phone that is tracking my every move.
  • If TinyUrl was a utilities company it would force upgrade everybody to use smart grid meter and charge us extra to use green friendly links.
  • Twitter management seem to play musical chairs with titles. It seems like everyone at the company has had a turn at being CEO.
  • There are different degrees of open in open platforms, from marketing buzzword open to data portability open.
  • What I learned by reading Rework by 37signals: Emulate drug dealing celebrity chefs and up sale the by-products of what you do.

Apr 14 2011

Keep is Short and Simple

No one has time to read long rambling text. One of the great things about Twitter is that it has a 140 character limit, it forces people to be concise, precise, to the point. It is so much easier to follow someone twitter than someones blog. This is also true for corporate communication. Within a team, the best way to ask short question is through instant messages such as Skype. The one draw back to instant messaging systems is that people expect instant responses. But for quick yes or no questions this is the best approach. More detailed questions can be escalated to email. But always be short and precise in emails. Always stay on point when emailing someone. If you are making multiple points separate them to their own bullets or paragraphs. Don’t intermix different ideas in the same paragraph. Always outline and simplify key points to one line bullet points. When asking for something, be clear as to what you are requesting or asking and always outline what you have tried, research, or done prior to asking.

Effective communication is a skill. There are tools, habits, and best practices that can help maximize the results of your team communication efforts. One of my most effective tool in communicating is to keep to the Three Sentences practice. One way to successfully achieve reply within three sentences is to never answer the same question twice, to refer to existing documentation, wiki sites, and other resources.


Apr 11 2011

Hire Smart, Not Seniority

The folks of 37signals have written on Years of Irrelevance that years of experience is not a good enough indicator to hire people. Marissa Mayer and Joel Spolsky recommend to hire people that are smart and get things done. From my years of experience, and irrelevance, I believe this to be true. People that don’t get things done, will somehow delegate it to someone else that is most likely already getting her own work done. I my career I have seen people that don’t know how to get their stuff done (practice) but can talk a good game (theory) and are therefore promoted to manage people instead. The problem is that if they couldn’t get their work done, how can the manage others to do theirs? I’ve seen teams waste time, energy, and opportunity by not working smart, asking the wrong questions, and focusing on the what is not important.

Here is another more concrete example that I experienced this week. I recently closed a feature request and the bug tracking software we use emailed the requester back with the status. I immediately received a forward from the requester asking if the feature will be available in the next release. Replied replied that it would be available in the next beta release. I then got another email back asking a second question, if there was anything required to test this feature. I reply back with the location of the documentation, our testing procedures, and installation process. Then I get a another email saying, “Perfect. You rock!” With those words I knew I should brace myself for a screw up.

As predicted, right at 7:30 PM the feature request was rejected, no update or comments were given, just simply rejected. I immediately knew what the problem was, step in the release was not run, the database wasn’t migrated. This is what happens when you don’t hire smart. You will spend needless hours emailing back and forth one question at a time, back and forth like email ping pong.

If you don’t hire smart, you will find yourself repeating yourself in emails what is already in documentations, processes, systems. This is how you can easily spend all day in building, installing, testing and find out that you have to do it all over again because someone missed one step out of three.

Hire smart, not experience or seniority. Hire people that get stuff done, not have elaborate reason why it doesn’t get done. Hire those that work the smartest, not the hardest. Some people compensate working smart hours for long hours, they will stay long hours doing repetitive mind numbing tasks and not think of ways to automate, streamline, or reduce those tasks. You don’t want someone to reinvent the well, you need someone that makes it turn.

Reinventing the Wheel

Reinventing the Wheel by Doviende (http://www.flickr.com/photos/doviende/)