Wednesday, August 14, 2013

Don't hire a "technical architect" without understanding what you want.

In my opinion, positions that need to be hired, with folks you have not worked with, into an "architect" title that has no clear roles/responsibilities is asinine. Ask 100 different people what an architect's roles/responsibilities are, you will get a 100 different answers.

I continuously get requests for a company looking for an architect. When asked what are the roles/responsibilities, some say "it's a management role", others say "heres a list of technical items you should know" with no clear understanding of the position itself. My favorite is "you do everything technical" <== I don't understand this. Does that mean product development? Managing tech projects/people? Development? Infrastructure? Building out systems? Doing drawings all day?

If the roles/responsibilities are unknown, then it's a failure on management to understand what the need is and what the expectations of commitment is from the individual.

Finally, hiring an architect that is an unknown without clear expectations puts the individual in a detrimental position, because they do not know the systems, the apps, or the business well enough to effectively do their job.

So, the organization is better off doing one of the following :

1) Hiring a senior developer that has the potential of being promoted over time to architect.

2) Make it a tech manager position, if that is the intention, and allow them to effectively manage.

3) If the hiring manager and the architect candidate that needs to be hired in have worked together before (either in a full time or a consultancy capacity), then it's an option to bring that individual in, as there are clear expectations from both sides on the role and, more then likely, the manager is in a similar industry/work environment as before to allow the architect to do his job effectively.

4) Hire an "architect" that is proven in industry through blogs, books, or speeches so that the manager understands their capabilities/expectations.

5) Be very clear on the roles/responsibilities of the individual coming in and stick to them, do not continuously re-prioritize.

However, don't ever make an "architect" role and hire someone in that's unknown without clear expectations. It will not work or will be excruciatingly difficult.


Friday, August 9, 2013

CTO/VP at small companies/startups… really?!


I’ve been getting a lot of calls for “CTO”  or “VP” technology positions for start-ups.

Come on guys, a 2-5 person company where one person is the CEO does not make the tech partner a CTO >OR< VP. Put it as how it really is, they’re a senior engineer. Especially, since the senior engineer will be busy coding up your little website or mobile app, setting up servers, figuring out hosting providers, collecting requirements, working on designs, and trying to appease the CEO.

Trying to market a senior engineering role as a CTO or VP is detrimental to the employee and the company. What happens is in 2 years, >if< the company does gain any momentum, that individual who is a CTO or VP will be replaced by another more senior CTO or VP. Suddenly, the senior engineer exits the company out of the weirdocity of it all and the company loses someone that has knowledge and experience.

Giving equity and a piddly salary does not help the morale of the employee or the sustainability of the organization.

Why not instead just give that person a senior engineer title and let nature takes it course? It will make it less comfortable for both parties and, honestly, at the end, probably put the company in a better position.

The problem Google Goggles is trying to solve


A lot of people I talk to in industry and articles talk about the problems with Google Googles and associated issues. Also, many mention why anyone would use it?

Well, it’s actually trying to solve a problem. When I was out yesterday walking the streets of Manhattan, I saw a lot of people head down looking at maps/head up looking to see where they’re going, rinse, repeat to get to their location.

So how can you view maps and see where you’re going at the same time? That’s the problem Goggles’ is trying to solve.

I don’t have an opinion until all the kinks and legalities are worked out, and I have had a chance to try it
– but at least Google’s trying to solve the problem of the kinked neck.

The other solution is to set up GPS voice navigation to an earbud, but my experience with voice navigation is it’s flaky, so there is an element of distrust in it, imo.

Separation of functionality and data


Today’s structures for software development is basically two distinct separate pieces. This is true for any software that is developed:

1) Features/functionality/framework to let users munge, CRUD, maintain data.

2) Data storage and retrieval systems.

It got me thinking this approach has not changed in over 30 years in software development. That said, this is the same approach that has been used even before software development became an industry.

Examples: Televisions are features/functionality/framework, television shows are the data that is exposed. Movies are same with movie theaters and movies. Even you can, with a small leap of faith, claim that real estate has apartments, office buildings, etc as features/functionality/frameworks and the “data” are the tenants using it.

As humans, we’ve evolved into two piaces of products we make in general –
Features/functionality/frame work and data to utilize it.

It makes me wonder if this is how we’ll continue, or if we need to restructure to come to a different type structure for us to move to a new level of optimization. I am not sure what this would be, but it is an interesting paradigm we’re in.

Mobile vs Web usabilities


I have a laptop and a mobile phone. Why is it that some features are better on mobile and are not easily replicable on the desktop versions? It seems like things that should be simple to do on a desktop is just not there, but it’s simpler on mobile, that I have to go between the two.

A few examples are:

- Google Places – GREAT feature on Google Maps to find contextual places near an address. However, to do a similar feature on desktop, there’s no Google places button. You actually have to search and find near by.

- Newsreaders on desktops are a pain. On mobile, it’s easier to digest and view news. I use Pulse, and Pulse on the desktop is just awful. It’s slow, harder to navigate, and painful to use.

- Linkedin on mobile’s great, especially these days. The desktop version is a plethora of items that’s difficult to navigate and focus on what you want. The mobile version, on the other hand, is elegant, and easy to navigate to information that you want.

- Most of the major email clients on mobile are great. The desktop versions also have the same issue of navigation.

Now, I get this push for mobile, but sacrificing the desktop version for mobile is a bad idea. After all, more people still use desktop versions of these web applications then on mobile.