3

I'm actually working as a lead engineer in a pretty "old fashion" company.

Before me, they only have one programmer that is pretty unskilled. He manage to build a system using PHP but have no clue of HTML or CSS. The all project is really a mess (remember when you were writting some inline HTML/JS/CSS within a PHP echo??).

Anyway, I was hired to rebuild everything from scratch. Being very familiar with Rails, I started to build an API consumed by an Angular client.

This company is using their own servers. Well actually they are renting those servers from their internet provider. Nothing wrong so far.

Problems

Their service is handling a traffic of ~2.000 users per day (which is really a low traffic). They are paying to their internet provider $3.000 per month to use those servers which could barely handle more traffic. (because of the way the app has been developed).

I recently asked the other programmer to deploy my API and my client on a staging server for test. It's now been 2 weeks and he still have some problem to make it works.

Then I've tried to show them how beneficial it would be to use a service like Heroku, AWS or Webfaction. Having an account on webfaction, I showed them that it took me 15 minutes manually to have the system up-and-running. I also show them the cost of those internet service (something like AWS).

But they still tends to not want to use that. So I asked why. The ONLY answer I've got was : "because having our servers in our country allow us to use the local network (local country network) in case the international connection cut". I've also show them some statistic that I made showing on a period of 5 years, I much money they can save including constraints like the number of international cut per year (which is really really low)

Also :

  • Only their current programmer is able to touch the server. No one has access to it. So I raise the question of : Who gonna take care of that if something happen to that guy? I've got so far no anwser
  • It's infrastructure is really hard to maintain. Even for a deploy of a fix, that guy cannot do it in less that 2 hours

Before thinking about leaving that job, I would like some advice to maybe make them change their mind and especially start to trust me. They hired me because of my skills and to me it seems that after all they are still relying on that programmer who seems to be a GOD for them. Good for him, but I like what I'm doing here and that would be a shame to quit.

marked as duplicate by Stephan Kolassa, gnat, yochannah, David K, Telastyn Apr 8 '15 at 13:24

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 3
    What exactly is your question? Should you leave the job? How to convince? How to get used to the company? What is your question? – Ricketyship Apr 8 '15 at 6:13
  • I'm not sure what country you're in, but any time you decide to off shore your data there are potential legal issues. Honestly, if my company was based in say Canada, for example, then there would be no way that I'd use AWS in the USA due to the NSA having the ability to force the provider to give them access to it without even so much as notifying me. My point is that there are often bigger issues than just technical ones. – NotMe Apr 8 '15 at 20:31
  • Next, there is no way I'd allow a new developer to have unfettered access to my primary server day one. Sure I'd have the credentials locked up so that if the new guy up and left I could get in, but that doesn't mean that I'd trust you quite yet. Finally, if the existing guy hasn't been successful in deploying your stuff are you sure it works and have you actually given him all the proper instructions to set it up? – NotMe Apr 8 '15 at 20:35
7

This is literally 90% of the companies in the world. First, chill out a little. Second it seems that you have made many suggestions that (and all seem logical but I don't know the whole story - I am in the industry) may not even be understood by everyone.

Given that your company has several issues it is highly likely that they don't even understand there are issues. Also I would assume they are taking each of your suggestions in, in their own bubble. So you may say change A and B and C and D and E and F and G. So then they start talking about C (the topic they know the most about). They then deduce it won't work because they aren't thinking about D and E which are directly related. You are literally talking Chinese to them (given you aren't in China).

Then the other part of this is the social aspect. There are people that may be incompetent in your company. They are competent enough to keep a moving wagon going forward even though they have to change the wooden tires every 20 miles but they like it that way. That makes it seem like they are needed, that they are busy and that they are team players.

You coming in and changing things is either going to cause them an extreme amount of work in learning new technologies (something they might not be capable of doing) or may quickly show that they are not needed and it will highlight their incompetencies.

What can you do?

  • You can move to another job. Unless it is a small shop or ultra progressive you could be in the exact same boat but worse - since you are starting over. I work with a ton of vendors and really only talk to their lead developer. Their stories are all the same, you might be one of the guys I work with.

  • My biggest piece of advice is to move slowly and make sure you do your job as perfect as you can - slow down and double check everything. Everyone will scrutinize new things you are doing. For every 20 good things you have you only need 1-2 issues to go back to ground zero with their trust - they don't want to trust you.

  • Then take the first thing that needs to get done and start that. If it is hosting, talk to the hosting company and ask for a free starter account to prove out that things work and then get things working when they aren't asking you to do something specifically. Don't push everything on them. Work with your team and do the "team/legacy" stuff and then work on your ideas on the side. Then slowly show your manager things. If you got a program just show them one or two things. Get feedback. Move forward in increments. And increments where people are happy with things.

6

They objected that they did not want lose their international connnection. What have you said or done to meet their objection?

They may be worried about the reliability of AWS, Heroku and Webfaction. What have you said or done to meet their objection?

Your app has not been deployed to even a staging server. At this point, it's unclear to me whether your app actually works. What have you said or done to convince the management that your app actually works? In particular, what have you said or done to make sure that the deployment to the staging server is successful?

To me, you are not implementing anything. You are just throwing ideas around.

  • 1
    VP is being a bit harsh but these are good questions. Technical improvement has costs and risks; that as to be evaluated against real gains in reduced cost of support and increased revenue. You need to show convincing evidence that this investment will produce a net increase in profit. That may be approached by showing an incremental path to the new environment, or by doing a "skunkworks" prototype (which may mean investing some unpaid time of your own)... or waiting until the next major release cycle, which is generally the time when new and rewritten code is considered. Business! – keshlam Apr 8 '15 at 13:03
  • 1
    @keshlam Selling change is like selling anything: any objection to a sale must be met. The converse is that selling by ignoring objections is an approach that's dead from the start. Sysadmins, devops, software engineers and software engineers don't usually think that any part of their jobs involves selling anything. That's actually a misconception on their part. And of course, any successful sale involves great post-sales support :) – Vietnhi Phuvan Apr 8 '15 at 13:16
2

Unfortunately, it is very unlikely they will change their mind if they have chosen to keep doing what they're doing after you have shown them real data to support your recommendations.

You will probably be happier if you find a similar job with a better company. Companies that allow an incompetent "king" to rule in this way will eventually fail under the weight of their cumulative bad judgement.

Not the answer you're looking for? Browse other questions tagged or ask your own question.