The Truth About Development (Coding)

When I worked in an enterprise development environment and I would tell people the things I have personally accomplished and the time frames I accomplished them in, I would usually get looks of shock. Usually my weekdays consisted of getting a project that project managers scheduled for a month, then completing the entire project in two days and then lying on my time log to keep everyone happy.

Meanwhile the developer that worked directly behind me spent 8 hours a day swearing and not being able to get anything done; he was let go. Enterprise development for the most part is crap, and if you’re one of those rare talented developers then you know this to be true because you’re probably are in a team of 10-15 and you do 75% of the work while the other developers on your team are spinning their wheels not getting anything done or just making more problems that you will probably have to fix.

In his book The Mythical Man-Month Fred books talks about these issues and how large projects are actually made worse by adding more developers and that good developers are 5-10 times more efficient then average or bad developers. Large projects are usually developed by smaller teams first and you can take any sizable project to date and this is true from Microsoft to Google.

There is a fundamental problem with almost all enterprise development environments and that is they don’t promote efficiency. The sad reality is that an efficient programmer, if he is honest about his time with management, will be progressively given more less relevant projects in an attempt for the company to justify paying him until he is working on a project that is incredibly old and if by chance he could unscrew the mess that it is, will never be used. This is why development should be result orientated and not time based.

In a result orientated environment the developer has freedom based on his capability. If you had the choice between paying a developer $10000 to get something done in two weeks, or $10000 but it will take 6 months and 8 hour days, which would you choose? The answer seems glaringly obvious but to most companies it is not. In fact this is what happens with most out sourced contracts, they end up costing about the same (assuming your project even gets done). What makes it even worse is that most development firms act like factories and if you’re not working, then something must be wrong; so efficient programmers will purposely stretch things out so they don’t get stuck with nothing to do.

What happens when a tech manager who has been hiring bad developers suddenly gets an amazing one? He gets yelled at by the project management team because it appears that he is incompetent and grossly over estimated the time things take because he based his time quote on his bad developers. So the amazing developer will get an awkward conversation where he is essentially told indirectly to lie about his time and what he is doing.

Enterprise development can be crap.

Social Exhaustion

After my trip to SXSW, I discovered that everyone wants to be involved in social. The entire trade show floor was either new social networks or companies trying to sell social ‘marketing’ services. People have got very caught up in social believing it is some kind of magical playground where anything is possible, but very few people have actually stopped to ask what is facebook?

While this might sound hyperbolic, facebook is a message board. All the functionality that people enjoy about facebook existed before facebook. Private groups, private messaging, events, etc.. all of that existed in message boards. In fact one of the first tech companies that started off the internet bubble was a message board company.

It’s a form of communication, however unlike phones, the main thing that makes facebook valuable they can’t even charge for (communication). It would be like opening a hot dog stand, giving the hot dogs away for free and trying to make a living off of selling t-shirts about your hot dog stand. It’s a horrible idea, but now everyone thinks (incorrectly) that they are too big to fail.

A maxim I recite often is that the internet is nothing new rather it is simply the digital version of life. That being so we can figure out what is going to happen by analyzing non-digital counter parts. What happens in life when a dance club gets too popular? People leave. What happens if a communication mechanism gets any kind of annoying burden (such as ads)? People stop using it.

While it is theoretical what I am predicting right now is that in the next six months to one year we are going to see a stark drop in social usage. This can already be seen in Zynga reporting a net loss and Facebook also reporting a profit drop as well. People will use social for what it was designed for, communication. The layer that everyone has been trying to put on top of it is going to fizzle out gloriously. All the up starts that were so confident that they could sell your business with social will start vanishing when they simply cannot get any reasonable CPC or CPM from social. This will come to the astonishment of many. This is not to say that social is not going to have its place, but rather it is going to go the same route as any other form of communication.

Excitement!

So a couple major changes have happened over the last month or so, that I am excited to talk about. First is that I have move to Oakville, my girl friend is taking Computer Animation at Sheridan, and being that I have some freedom to move around being a web developer, I decided to come with her.

In addition a lot of opportunities have been opened up to 52 Stairs Studio Inc. We received a contract with a fiber company (A2B Fiber) to build them a really cool online application. In addition we have brought on a new adviser into 52 Stairs Studio; with this has come a great opportunity in the wine industry of all things. In addition one of the previous automotive companies we were working with presented us a great opportunity to work on another new and exciting project under a great company called Dealer Dimensions.

I will try to post more updates as things unfold.

Google+ and Social Search Results

Now that the fence is starting to come down with Google+ and people are starting to flood in, everyone seems to be highly focused on how it functions, usability, and how it stacks up against facebook. However I would like to point out some very interesting observations:

1. There are no Advertisements
Now it foreseeable that they may start serving advertisements in the future on the Google+ platform, but I have a feeling that they won’t. As I will outline in my hypothesis.

2. They don’t ask for Personal Information
Facebook flat out asks you for your favorite books, political affiliations, and other information that would help them tailor advertisements to you. Google+ simply doesn’t.

Why?
It seems rather counter-intuitive to have a social platform that doesn’t try to gain as much information as possible from you. However, it would make perfect sense if it was about building a graph to figure out search results. When Google started you had websites linking to each other, and they used this knowledge as a way of building a proper grading system for websites. However with the rise of social, something else started happening; a new link structure formed. Susie shared with Bob who then shared with all his friends and so forth and so on.

Social Context Search Results Hypothesis
Apart from the fact that your +1 recommendations come up in Google Search Results to your friends, I believe they are using Google+ and social as a way of putting results into context. Everyone knows that tailored search results are the future, and some start ups such as Hunch are trying to capitalize on it. However, Google is approaching the problem differently. Instead of building a massive personal profile for every user they are going off of the assumption (or fact?) that like minded people flock together. Connecting all the various circles give you a massive amount of data for returning socially contextualized results. This is why they don’t have advertisements, or ask you for personal information. What they care about is the websites you are visiting, and who you are sharing those websites with.

Good or Bad?
Assuming my hypothesis is correct, I imagine there will be much debate that arises from Google doing such a thing. For instance, would this promote confirmation bias in the worst way possible? Will this contribute to the filter bubble? Who knows, but I imagine the term SSEO (Social Search Engine Optimization) will be a new buzz word very soon.

IT is not Manufacturing

I recently have noticed an influx in app builders. Google was the first to venture into this, and now all kinds of services are popping up that are trying to do the same thing, build an app in a couple steps! The mobile space is a new space, but it fundamentally has the same characteristics of other mediums such as the internet, or a news paper. In almost all instances these new mediums make it easier to create and share information. When the internet started there was very little, then there was a lot, and then there was services that popped up to let you make your own website, can you name any? If you can, are they still around?

The general idea is that everybody wants something such as an app or a website so if you can build something that can easily do it, it will be a gold mine; it doesn’t work, for a couple reasons.

1. The Complexity Paradox (in regards to UX)
The simpler an interface is for doing complex things, the more complex the back end. The more complex the back end becomes the harder it is to make the interface complex. If both end up being complex, the product will explode. Why is this relevant? The more features something requires, the more it is going to affect the interface, because you cannot possibly make a back end that is predictive enough to handle every contingency. Yes it is true, some people want “simple” things, however the quantity of simple things is always increasing or changing. Facebook and their various widgets is a good example of this.

So user A wants feature B. In order to change feature B something must be added to the interface, how do you maintain simplicity?

2. People don’t want to pay for partial tools
Imagine going to a hardware store and buying hammer, upon getting it you discover it only works for 50% of nails, any other nails and it will shatter. Pretty big problem. If you’re going to invest the time in building something, you usually want to use tools that allow you to do a lot. Web interfaces for building applications is like a hammer that can only do 50%. If you’re trying to buy a tool because you don’t want to work, there is a fundamental problem with that, you will probably end up just hiring someone to do it for you.

3. People always want the latest stuff
Most web developers I am sure have heard and shook their head because of their client’s misunderstanding, “I want my website to be the greatest, it needs to use HTML5!” They have no idea what HTML5 is, all they know is they want it. The nature of technology is advancements will always (no exceptions) out pace any form of WYSWIG editor that utilizes separate technology, because of this editors will always be in a catch up model unless they have a supreme amount of capital and workers behind them. What was CSS and Divs 10 years ago? Adobe is a good example of how an editor can keep pace, when they wanted to do stuff on the internet that at the time wasn’t possible (and is just catching up now) they built their own plugin. Unfortunately, app/web builders rely on other people.

4. Self Competition
Building technology that produces the same technology easier is a form of devaluation and self competition. If you can make $75 an hour developing technology, but you build a product that lets other people do it for $25 an hour, you have destroyed your own price point. Now it might be fine if through your factory you get way more sales, but because of the aforementioned concepts the only people you are going to get are usually the cheaper kind, so it won’t be $25 an hour, it will be 0.5c an hour, and once other factories come out it will be 0.1c an hour, meanwhile the rich people who want the latest and greatest don’t mind the $75. Information Technology production does not work the same way as manufacturing. People require a unique product, and if they don’t they will go on something like wordpress or facebook who don’t make their money through information technology production.

There may be a time in the future when development can become an automated or simple process, that time is not now. No matter how intuitive and simple you make something, people will always want something else, or something new when it comes to IT.

Building and selling information is not the same as building a deck. IT development is more akin to farming, the product spoils.