Android

A Great Quote

If you're writing code and you're not testing it, the code is wrong. I don't 
care if it does the right thing, and people need to understand this. If it 
works by accident, you're still wrong. 


Bryan Liles - Ruby Hoedown 2008

[...]
Published on Sat, 05 Feb 2011 20:01
0 comments

Overcoming the Stockholm Syndrome for Agility

Back in December Chad Fowler posted on dead end jobs and the Stockholm Syndrome. The Stockholm Syndrome is "a name given to the condition wherein hostages develop positive feelings toward their captors despite being held in negative, unfavorable and even life-threatening conditions. Victims of Stockholm Syndrome will even inexplicably stay with their captors even when given the chance at freedom." Chad goes on to examine how this can happen in the workplace. You can read the entire article here.

http://chadfowler.com/2010/12/30/dead-end-jobs-are-you-suffering-from-stockholm-syndrome

 

Recently a colleague shared  a Dilbert comic that drove home something that I had been saying for a while.

Though the Dilbert comic is funny the sad thing is that the threat of "not being a top 20% performer" or "do this or we will fire you" is something that affects way too many sotfware engineers in various organizations. Far too many of these engineers are the lower 80% of pool*. The top 20%-50% know what they are worth, get frustrated and leave. While Agile is supposed to provide a safe environment where empowered engineers can say "no", this is not really the case in these shops that are attempting to be Agile. 

 

Right now the engineers who are empowered are the ones who know what they are worth in the open market and are not afraid to say "no". They are not afraid to say "no" to long hours on a project that was severely understaffed and given an unrealistic timeline. They say "no" to missing a scheduled vacation, professional conference, being asked to take time away form activities that keep them current/focused/productive to participate in the latest project fire drill. They say "no" to hacking together code because they take pride in their work and feel that professionalism means that you hold yourself to a certain standard of software quality**. They reject arguments that you must idiot proof designs for engineers with a low skill level (net negative producing programmers). These threats are meaningless to them because they know what is happening in the industry, and know that these threats, and the harsh words that they receive from management for doing the right thing have as much credibility as a drug addict lashing out at their counselor. For these individuals, if management follows through with the threat of firing them they will have another job, probably with a pay raise within two weeks.

 

Agile is all about people over process. CMM, due to it's inefficient nature has a larger tolerance for the lower performers. Agile on the other hand doesn't function unless you have 60%-70% top performers. When you put together a team of these top performers, get out of their way and let them loose it is amazing to see the innovation and velocity that comes from these teams. I have seen it first hand.

 

But many of the failings of Agile efforts go beyond engineers and are often are rooted in having non technical people running a technical projects. It is a recipe for failure. If you are running a software project, selling it or whatever and you do not understand the process of developing software and do not have a deep understanding of what works, what doesn't work and the current industry best practices then there is a high likelihood that your effort will either fail or produce sub-standard results ***.

 

One of the best frames of reference I have for this is the start up community. There are lots of business-type people who have ideas for companies that are strict technical plays. There is just one problem, they have no idea about tech. Every time I see that, I can predict the outcome of that startup. The other anti-pattern is when you have a technical team but take Angel money from someone who has no idea about tech start ups. These companies have a much higher failure rate because grossly under-qualified individuals are empowered to drive insane decisions that, in many ways are not unlike the requests/demands we get for fixed scope/fixed budget projects using antiquated/inappropriate technologies that generate lots of content for sites such as the daily WTF. The sad thing is that they create a lose-lose situation for both parties. 

 

As we move into the next decade and beyond society has a large number of problems ranging from demographics to addressing our future energy needs.  Many of these problems are going to require automation and software to solve.  This is why every industry expert is pridicting that demand is going to continue to be higher than the supply for the next 20 years.  The winners are going to be the ones who are able to effectively attract and use this scarce and valuable resource to solve these problems. When workers end up developing The Stockholm Syndrome it hurts the employees and the company. But more importantly it hurts society and man kind because that is one less engineer that is working on solving real problems that to improve the life of everyone.

 

* Look for a posting in the near future on Net Negative Producing Programmers and how they kill Agile projects.

** Bob Martin (uncle Bob) has some great articles on software craftsmanship here http://www.artima.com/weblogs/index.jsp?blogger=unclebob

*** The most dangerous are those who think they understand it but don't.

[...]
Published on Fri, 04 Feb 2011 19:42
0 comments

Tech, The Next 20 years

If you are in the tech industry today it is pretty easy to see who the up and coming companies are and who is in decline. All that you have to do is look at the work environment for their IT professionals. Are they attracting top technical talent? Do they foster that talent and do they do what it takes to keep them, or do MBA's that lack a deep understanding of tech run the show? Do they allow their technical people the latitude to do the right thing or do they constrain them with outdated processes and endless rules down to a two+ page dress code? Yes, this sounds like a lot of corporate environments, but I have also seen my share of startups that have done the same thing......most of which have not had any real success. My favorite examples of this were the tech start up that had a dress code and the one that recently was looking for a senior Ruby On Rails developer with a max salary of 50K with no equity.

 

Tech is on fire right now. Google and Facebook are fighting for the best talent, and everyone else is trying to keep up. With the announcement of Google giving across the board raises and bonus's so people will not leave, combined with the money that is currently going to startups many are speculating that we are in a bubble situation. Anecdotally, I get unsolicited calls on a daily basis from recruiters for Java and Ruby positions.

 

Are those who are claiming that there is a bubble right? Partially.

 

To understand this you need to understand the nature of programming and programmer productivity. Unlike factory work, different programmers have vastly different levels of productivity. The general consensus is that a rock star programmer is about 10 times more productive than a bad (net negative producing) programmer and an average one is about five times as productive. Yet if you look at the salary differentials they do not come close to reflecting the productivity of the engineer.

 

If we were to use developer productivity as a gauge for IT salaries then our lowest producing programmers would be making 30K, mid range ones would be making 150K and the best ones would be making 300K. Minus the guys who have been involved in successful startups that cashed out on stock options this hasn't happened. If you compare the net revenue gain for a company that is effectively utilizing the skills of a top software engineer as compared to that from a cosmetic surgeon, music star, professional athlete, or hedge fund manager IT labor today is a bargain!

 

But developer productivity is missing the point without demand for the systems they create. IT both saves companies money by automating tasks and creates new business opportunities. Look at the amount of time that has been saved via services such as Google Search and Wikipedia or the increased efficiency that the inventory management systems at Walmart has that is able to accurately predict when products will be needed at stores. Given the current unemployment rate many may think that it is displacing those workers. In the short term that may be true, but for the next twenty years demographics are going to be taking workers out of the economy at a pace that we have never seen in the US. Without the aid of this technology we will not be able to provide the same level of services we enjoy today. IT amongst other tech intensive disciplines will be critical in filling that gap.


Companies like Google have figured this out. Their number one asset are the people they hire. Sure they have a lot of IP, but at the end of the day that IP is worthless without talented engineers who can continue to improve and creatively destroy it to drive innovation. That is the nature of tech, and the nature of many of the main line businesses today.

 

So what does this mean.

 

  1. If you are an IT professional, you stay current and you are really good, you have a VERY bright future. If you are a average one you will do ok and if you are a net negative producing programmer you will probably be able to eek by in the third tier IT shops.

  2. One of the dumbest moves you can ever make as an IT professional is to sign a non compete if it is in a state like Georgia or Massachusetts. By signing that one document you could be losing hundreds of thousands of dollars.

  3. If you are running a company you are gong to need to ask yourself where you want to be. If you think you are a tech company and are not paying top salaries (either via equity or straight money etc.) all that I can say is, good luck. Personally I think you deserve to and will fail. If your main business is not tech then you are going to need to ask yourself if that really is the case. Walmart is not a tech company, yet they have some of the most sophisticated computer systems in the world. The advanced tech that powers their supply chain is a critical piece of their competitive advantage.

[...]
Published on Fri, 19 Nov 2010 22:59
0 comments

The GA bar is against Amendment 1

The president elect of the GA bar is against amendment one.  Looks like things could get interesting when the first test cases roll around.

http://gafreedomtowork.blogspot.com/

[...]
Published on Thu, 18 Nov 2010 02:45
0 comments

Vote No to Amendment 1 in Georgia

Georgia is trying to pass an amendment that will strip a workers ability to work for another employer.  The sad thing is that it will actually make the state less competitive and will really limit a persons ability to move from one job to another.  Educate yourself on this issue and if you are in Georgia think long and hard about voting yes to this thing.

Here is what others are saying about it.

http://techdrawl.com/News-Post/Fresh-Voices/KillHB173-T-Minus-22-Days

http://www.startupchicks.net/content/vote-no-amendment-1

http://blog.weatherby.net/2010/10/georgians-should-vote-no.html

[...]
Published on Sat, 30 Oct 2010 04:33
1 comment

The Android Needs a Better E-Mail client

I love my G1, but after using a Blackberry for a while I came to realise that there are some features with the Blackberry e-mail client that need to be incorporated into the android.
Published on Tue, 31 Mar 2009 12:43
0 comments

Tethering Your Android Phone

I recently took a trip down to Florida to see my parents. Though it is always fun to see them there is one annoyance that I have with their house in Florida.....they do not have Internet. Though I was one of the first people to get the Android phone, I haven't had the kind of time to play with some of the more interesting features of the phone, such as this tethering hack. With the trip coming up I finally decided to figure this out.

The basic instructions for doing it are fairly straight forward and can be found here:

http://graha.ms/androidproxy/

The problem was, even-though I followed these instructions to the tee I still could not browse to any websites. The reason for it is that they are missing one crucial step in the proxy setup for Firefox. That is to go to about:config in the Firefox address bar and to change network.proxy.socks_remote_dns to true. After that I was surfing the web....as an extra added bonus this also charges up the notoriously weak Android battery.

Unfortunately the signal at my parents place in Ocala only seemed to support gprs instead of edge (that area does not have 3g coverage yet), but it was usable.

The connection was too slow to attempt a VPN connection, so that will be the next thing to figure out....stay tuned for my updates on how that works.

2009-01-23 13:27:31'

[...]
Published on Fri, 23 Jan 2009 18:27
0 comments

RSS