Regular Geek

Where programming, the internet and social media collide.

SHARE:  Tweet This Post to Google Buzz Share on Facebook Submit to Digg

Google is trying to ensure that you never leave GMail. Besides GMail being a fantastic email service, Google has continuously added features to keep you engaged. We have chat in GMail and various widgets like Google Calendar to add functionality. We also recently saw a cool revamp of the Contacts application which really did need some help. So, it should come as no surprise that Google Voice is being integrated as well. Initially, this is not a full integration, it is an addition to the chat feature to allow for VOIP calls, but it will use Google Voice if you use it:

If you have a Google Voice phone number, calls made from Gmail will display this number as the outbound caller ID. And if you decide to, you can receive calls made to this number right inside Gmail (see instructions).

I know I wrote about the continuous Google Me rumors recently, and the VOIP integration seemed like a logical extension at the time.

Social features are starting to permeate all of Google’s products. Lots of products are getting mobile updates. Even the Contacts application has been recently and nicely revamped. What if all of these changes are really related to Google’s new social push and Google Me?

Given this idea, the VOIP inclusion with the contacts updates still just seemed like a small move in a bigger plan. The recent release of GMail Priority Inbox has me thinking that there might be a different direction:

Priority Inbox splits your inbox into three sections: “Important and unread,” “Starred” and “Everything else”

Granted, this seems like a logical extension to GMail and a good way to deal with the flood of information that people receive daily. The only problem with this is that GMail and its inbox has not changed in years. I had always figured this was one of those “sacred” areas that could not be touched. Priority Inbox is not a small adjustment either. Partitioning your inbox into 3 sections based upon importance is definitely a Google thing to do, but it is a fairly big change. In addition to the basic concept, the inbox learns as you use it:

Over time, Priority Inbox gets better at predicting what’s important to you. You can help train it using the Priority Inbox buttons buttons.

So, this likely means that this change is part of a bigger plan as well. By including VOIP, text chat, email priorities and a vastly improved contacts manger, GMail has become your communications hub. Google is obviously taking many chances to increase your engagement. If you include Google Buzz in this equation, you can see the makings of a social network. If you look at this from the Google Me perspective, why put this much work into GMail when you will push people to Google Me in the hopefully near future? That seems fairly short-sighted or there is no communication within Google projects. Or there is another option.

Some people have been arguing that email is the first social network. What if your email program became your new social network? What if those changes to Orkut were really a way to move it closer to GMail? Let’s look at the feature list I wrote about for Google Me:

  • Messaging provided by GMail
  • IM provided by Google Talk
  • Google Buzz integrated with the basic status updates on the network
  • Orkut, new and improved with social circles provides the core social network features and a platform to build upon
  • Google Docs integration so that you can share documents with specific social circles
  • Picasa integration so that you can share pictures with specific social circles
  • Wave integration so that a specific social circle can have real-time collaboration features.
  • Latitude integration in order to share location information with specific social circles

Messaging is already provided by GMail, and it has IM integration. Google Buzz has already been integrated with GMail, but not entirely thrust in your face yet. Social circles could likely be inferred from your email history within GMail. GMail has integration with Google Docs. The real-time collaboration features would be an interesting addition to GMail, may be more successful there because there is not a new contacts list to create and it deals with people you already collaborate with. Latitude integration would be the only tricky thing to include as the integration has to be done very carefully. If it gets pushed through Buzz, then Google would be following the Foursquare/Gowalla route. If it has deeper integration with your social circles and email, then it could be more like Facebook Places and promote more serendipitous meetings. That is one of the greater potential benefits of social location services.

I am not sure if Google is really making GMail your next social network, but there is a lot of work that seems to be moving it in that direction. It could be that Google Me is just a name for GMail 2.0.

Enhanced by Zemanta
SHARE:  Tweet This Post to Google Buzz Share on Facebook Submit to Digg

It has been a while since a good bitchmeme came about, so it is with great pleasure that I participate in this one. Actually, is it not with great pleasure as the issue hits close to home. The issue at hand is regarding age in the software development profession. This is important to me because I am 38 years old and have been in software development for about 16 years. Some people are saying that Silicon Valley has a bias towards younger people. TechCrunch has an interesting article that makes some very good points:

The harsh reality is that in the tech world, companies prefer to hire young, inexperienced, engineers. And engineering is an “up or out” profession: you either move up the ladder or face unemployment. This is not something that tech executives publicly admit, because they fear being sued for age discrimination, but everyone knows that this is the way things are. Why would any company hire a computer programmer with the wrong skills for a salary of $150,000, when it can hire a fresh graduate—with no skills—for around $60,000?  Even if it spends a month training the younger worker, the company is still far ahead. The young understand new technologies better than the old do, and are like a clean slate: they will rapidly learn the latest coding methods and techniques, and they don’t carry any “technology baggage”.  As well, the older worker likely has a family and needs to leave by 6 pm, whereas the young can pull all-nighters.

Initially, I was going to leave this topic alone, but Dave Winer decided to complain as well:

If I can’t get into the game, I can’t imagine there’s much chance for most other people in their 50′s to play a role. Which is really fucked up. It’s probably the reason why we keep going around in the same loops over and over, because we chuck our experience, wholesale, every ten years or so.

The combination of the two struck a nerve. I only partially agree with either quote as they do not look at the real issues here. In particular, both posts talk about ages and startups. Startups are not a huge portion of the software development industry. They may be the beginnings of it, but there are tons of engineers slaving away in a cube for some corporation that has 50,000 employees. However, even in a large corporation, age can be an issue for a few reasons.

Age and Hours Worked

For startups, hours worked are extremely important. Sometimes developers will work 80 hour weeks for months in order to get the product shipped. Many people assume that this is a young person’s game. This is technically true, but not because the people are young. The main reason that older people cannot work long hours is because they typically have a family and kids at home. They may not want to work long hours because they want to see their children at night. Some of these family people will work long hours after their children go back to sleep, but this is not the majority of software developers. If your company requires long hours, and you do not want to work those hours, age is not the issue, the hours are the issue. Maybe you are just not cut out for the startup life.

Age and Cost

For a startup, cost can be a significant issue. Many veteran (10+ years) software developers will have a salary in the top 25% of the industry. This problem is also not specific to the startup world, though startups do feel the cost pinch sooner than a large corporation. Startups have a tendency to pay for significant benefits to offset a lower salary. Sometimes you can get stock options or maybe it is just free food. In either case, your startup salary is likely lower than your salary at an equivalent corporate job. The corporation will eventually cap the experienced developer’s salary as well. Experience is important, but sometimes people just become too expensive. If you are that person, you must realize that you will not always get a raise when you change jobs or get more experience. If you decide to stay in software development, you have decided to make some maximum dollar amount in your city. If you want more money, you need to get into management.

Age and Skills

The TechCrunch post states that “The young understand new technologies better than the old do, and are like a clean slate”. Dave Winer feels that we make the same mistakes over again because we are throwing away or ignoring experience by only hiring younger developers. The truth is somewhere in between. Experience is somewhat helpful when a product is first being developed, but that is not critical at the early stage. Experience is critical when the early startup gains more adoption and needs to become stable. Younger developers do not have the experience to stabilize a product, whether it is by scaling a product for millions of users or just dealing with all of the issues that software has after being used for some time. These skills come with experience. Younger developers can learn these skills, but typically the knowledge is passed on from someone with experience.

Older developers have always had the stigma of staleness attached to them as well. I think this stems from the long tenure at large corporations. The internet changed a lot of that as well. Now, older developers are starting companies of their own. Technology is significantly easier to learn today because of the wealth of information available. 15 years ago, your ability to learn a new technology depended upon how many books you could read and whether your company would send you to training. This would become very expensive, potentially over $5000 per year. Now, I can find better information, quick than before and it is free.

Age Is Just A Number

In reality, age is just a number. There are plenty of younger developers that have no interest in working at a startup, just like those family-oriented older developers. Older developers can learn new technologies without being hampered by whatever “technology baggage” they carry. They just need to decide to do so. There are some younger developers that learned Java in school and have no interest in learning anything else because it is stable and used at many large corporations. There are people of all ages that refuse to work for less than they feel they are worth. Some of these people are misguided, and others may be worth the money. In all of these cases, developers young and old may not be a fit for a startup. To be a fit for a startup, you must have the desire to be in a startup. If that means working long hours at a lower salary while learning all sorts of new technology, then you must be prepared.

Preparation and desire are not age related.

Enhanced by Zemanta
SHARE:  Tweet This Post to Google Buzz Share on Facebook Submit to Digg

Google launches new products and features constantly. Some of these products gain widespread adoption, like GMail, and others eventually whither and die, like Wave. In this age of the internet, the question is now whether Google expects some of these products to fail and is just releasing them to see what features people like.

As an example, look at Google Wave. Wave was extremely aggressive in what it was trying to do, reinventing email and collaboration. In hindsight, we can easily say that the change was too great for mainstream adoption, but there were a lot of people that love using Wave for collaboration. What if Wave was really just a market test of real-time technologies and collaboration? If that was the case, then Wave was hugely successful in testing real-time collaboration. They also received useful feedback on their “reinvention” of email and saw first-hand how resistant to change people can be.

Timing is also another important feature of these types of market tests. Google Buzz was released and had privacy issues around the same time that Facebook was having serious privacy issues. Buzz was not a reinvention of email, but it was a limited foray into changing your inbox. It looks just like any other folder. Sometimes Buzz items end up in your inbox because you commented on them as well. Buzz saw some backlash about the integration with email, but that criticism did not really stick with the product. Maybe Google was onto something.

In the past few months we have also seen the “real life social network” presentation from Google researcher Paul Adams. The presentation talks about the limitations of current social networks and how people really interact differently with their various circles of friends. That presentation spurred many of the rumors about the possibility of a new social network called Google Me.

Now, we see that Google Orkut has received an interesting update.

we all maintain different groups of friends (or “social circles”), and the Internet was not able to reflect that. Until now, social networks treated people from different groups like they were all the same: they were all “friends” … To make it easier for you to interact with your groups of friends, now you can open them from your homepage. Your groups will always be a click away from you, on the top of the page.

So, social circles are being introduced to Orkut where you can share items differently with each group. This is very interesting timing. Orkut is getting some nice updates, and people continue to talk about Google Me. Social features are starting to permeate all of Google’s products. Lots of products are getting mobile updates. Even the Contacts application has been recently and nicely revamped. What if all of these changes are really related to Google’s new social push and Google Me?

Think about Google Me with the following features:

  • Messaging provided by GMail
  • IM provided by Google Talk
  • Google Buzz integrated with the basic status updates on the network
  • Orkut, new and improved with social circles provides the core social network features and a platform to build upon
  • Google Docs integration so that you can share documents with specific social circles
  • Picasa integration so that you can share pictures with specific social circles
  • Wave integration so that a specific social circle can have real-time collaboration features.
  • Latitude integration in order to share location information with specific social circles

I would not call this a Facebook killer, but I would be very impressed if this is what Google Me had in store for us. It takes a long time to kill an application with 500 million users. The difference in this case is that Google has millions of users already in various products and could quickly ramp up to 100 million users. That would make for an interesting battle between Google and Facebook.

Enhanced by Zemanta
SHARE:  Tweet This Post to Google Buzz Share on Facebook Submit to Digg

So, the worst kept rumor in the valley was finally confirmed. Facebook now has a location offering called Places. However, this was not a simple check-in application announcement, it was much different. First, they announced partnerships with many of the major location-based applications:

We’re working with an initial set of partners including GowallafoursquareYelp and Booyah‘s InCrowd to enable users to share check-ins on Facebook.

Booyah has an application soon to be released already, and Gowalla is already talking about building on top of the Places platform. So, Facebook has started with some good third-party adoption. Assuming that these partners get access to the write API, integration will probably be swift.

However, having partners does not mean you don’t get to make fun of them. The funniest part of all this was the inclusion (or exclusion) of Foursquare:

Facebook has now “helped” out Foursquare by making them wonder what’s next. They also welcomed the company up on stage to announce that they would … GASP … consider what to do with Facebook Places! Wait, so their launch partner didn’t have early access to the Places API? Nope! Instead, Holger Luedorf of Foursquare was brought on stage to announce nothing, just stand there.

That is a nice slap in the face, but the public API is read-only for now so there is little that a third party can do. Of course, this gets more interesting as Facebook opens up the write API, which would make Facebook a location sharing platform. As a platform, Places becomes much more interesting.

First, look at the Places API that is currently available. You can lookup a specific check-in by ID, all the check-ins for a user ID, or all of the check-ins for a “place page” ID. What is a place page? Well, the API documentation has a short note about that:

Check-ins are associated with locations represented by Facebook Pages; the location must have a Facebook Page ID, whether the Page was created on Facebook directly or using the Open Graph protocol.

So, this location database is being displayed and stored as Facebook pages. If you look at the main help page for Places, they have already answered some basic questions like “How do I claim a Place I represent?”. This is interesting because it unifies the painful location database merges that other services have needed to deal with. Because Facebook has 500 million potential Places users, they will quickly become the defacto standard for location databases.

There is one major problem with Places, it is very limited in functionality. You can search a little, and you can check-in. They are only providing a platform for third-party developers to fill in the details. I think this was done for a reason. They want the users to determine who has the best application. The winner gets purchased by Facebook, in what I call the Facebook Places Sweepstakes, so that they can integrate the most mainstream application that their users already wanted. This is market testing at its best.

Of course, it would be easy to just say Foursquare is king, but the location applications are very immature still. My personal favorite in the Facebook Places Sweepstakes is Groupon. The main reason is that Groupon has a significant application that is not based solely on check-ins. We have seen that businesses like the idea of giving discounts to the “mayor” or people that check-in. Yelp is another interesting possibility as it has a significant number of user reviews that can not be ignored and it has check-ins too. Adding discounts for frequent diners or even new visitors would be simple to add if it was integrated with Places.

What this all points to in the end is search. Facebook is becoming a major player in search because of its size. If you look at Facebook Questions, that is a way to create a knowledgebase on Facebook. If Places does gain adoption and starts to include more content from Yelp and basic check-ins from Gowalla and Foursquare, Places could be the business recommendation service everyone has been looking for. As an example, John Battelle complained about Google yesterday when he tried finding a yogurt shop a mile away. At the end he mentions the obvious:

What if Foursquare or Facebook had Places search? Man, that’d be great! I could search for yogurt shops in Edgartown, and I bet, without a doubt, I could find what I’m looking for.

Yep, that is what this is about, relevance and location in searches.

Enhanced by Zemanta
SHARE:  Tweet This Post to Google Buzz Share on Facebook Submit to Digg

At the beginning of this month, I compared the job trends for traditional programming languages like C++, Java and others. This post is one of the recurring programming job trends posts, where we look at web and scripting programming languages. Feel free to review the web programming job trends from February as well. You may have noticed that I have changed the title of this series to “Web & Scripting Programming Language Job Trends”. I think this more accurately reflects the list of languages, but it is still a crappy title. Let me know if you have a better description of these languages. Currently, the list includes Ruby, Rails, Python, PHP, JavaScript, Flex and Groovy. If you think I should be including another language, please let me know in the comments.

So, what do the trends from Indeed.com look like?

Indeed Web & Scripting Programming Language Job Trends August 2010

Obviously, JavaScript continues to grow like a weed, showing a more rapid increase in the last 6 months. Flex seems to have gotten out of the doldrums with a nice upward trend over the past year. PHP is also growing nicely as it continues to be used for major sites like Facebook. In the past six months, Python has started to distance itself from the remaining languages. Ruby and Rails are showing slow growth with Ruby finally separating itself from its Rails legacy. Groovy is still trailing the pack and not growing very rapidly, but it is still having a decent growth period.

Now, let’s look at the trends from SimplyHired.com.

SimplyHired Web & Scripting Programming Language Job Trends August 2010

As stated in other job trends posts, because the SimplyHired data is limited to 2 years, we really see the short term bumps. SimplyHired does not show JavaScript to have a dominant position over the other languages like its Indeed counterpart. Javascript is still the leader and has more consistent growth than Flex. Flex had a really good bump in the last quarter, but it seems to be coming down from that temporary high. The trend for PHP looks like it may be stabilizing a bit over the past year with only limited growth. The others, Python, Ruby, Rails and Groovy, show only limited or flat growth. In all of the languages, there was a significant downward trend from January through April probably due to the continued economic issues around the world. Overall, Indeed is showing much more growth than SimplyHired, and this should be concerning for people as you would not expect two job posting aggregators to have such different trends. Hopefully, this is not pointing to a slowdown in web programming jobs overall.

Lastly, lets look at the relative trends for job growth from Indeed.com. This shows an interesting perspective of the job trends, comparing language growth as opposed to percentage of all postings.

Indeed Web & Scripting Programming Language Job Growth August 2010

Groovy demand has continued its tremendous rise over the past 2 years. Groovy may not have the same number of postings, but this type of growth could mean that it is ready for more mainstream adoption. Ruby and Rails have also shown an increasing growth trend that is much higher than the others. This has not translated to a huge increase in jobs, but even this growth trend shows that Ruby is now able to stand on its own, and not require the Rails framework. Python seems to be pulling away from the other languages in the list in the past year. We could see a rapid rise of demand for Python in the near future if this growth trend continues. PHP, Javascript and Flex do not share the huge growth of the other languages, but they are the current leaders overall and it would be difficult to sustain 1000% growth over a long period.

Based on all of these trends, you can see that web and scripting languages still have excellent demand. The relative growth of Python and Groovy make them “need to know” languages, even if you just start using them for side projects. Javascript is something anyone involved with web applications should already know, and dynamic websites require significant amounts of it. Ruby, Rails and PHP continue to grow and are an excellent addition to any programmer’s toolbox.

Enhanced by Zemanta
<< Older Entries