

Ask HN: How do you inspire programmers to work with older tech? - jasonhanley

My company has been building a system to manage clinical trial health research for the past 5 years.<p>It's a really cool, useful application that helps people in the real world do really important stuff.<p>However -- it's not build with the latest, "coolest" technology.<p>I find a lot of programmers turn up their nose when asked to work on something that's not using the latest beta buzzy framework or language.<p>Instead, it seems like they'd rather work on the latest doomed social network craplication as long as they can program only using libraries with version numbers &#60; 1.0.<p>So how do you present an opportunity working with a really cool, useful application, when it doesn't use the latest tech?
======
beat
So is there no NEW development going on? Is this just maintenance? If there
are new pieces, maybe they'd have a chance to work in newer tech.

Also? The way you framed this question seethes with condescension. "beta buzzy
framework" and "craplication" and "version numbers < 1.0" suggest a very
negative attitude. Perhaps potential employees are reacting to this perceived
hostility, not the lack of hip new tech. I might not mind less than bleeding
edge, but I don't want to work for or with Mr Youkidsgetoffmylawn. And I AM an
old fart who has been doing this for 20 years!

~~~
jasonhanley
You make a fair point.

I have been programming for a long time now (~26 years) and I do tend to roll
my eyes every time some fancy "new" language/framework/library comes out
that's just a re-re-re-implementation of something 20, 30, or 40 years old.

It's simply not practical to keep rewriting large, stable applications using a
completely new language and architecture for marginal benefits on an ongoing
basis.

I've programmed in everything from BASIC to Pascal to C/C++ to C#, Lisp,
Python, PHP, Java, Javascript, can't even rememeber what else and let's be
honest -- there's no silver bullet.

They all have their strengths and weaknesses, and they all compile down to
machine code.

I just have trouble understanding why people refuse to work with language or
framework that's more than a year old.

~~~
beat
I don't roll my eyes at new tech, but I do roll my eyes at the idea that new
tech can fundamentally solve problems, because the hard problems aren't
language problems. I do, however, roll my eyes at using crufty old tech for
new projects when better tech is available. I dayjob in the enterprise Java
world, but I'm working on a startup at home. I'm still not quite settled on
all my tools for the startup code, but I'm definitely settled on the 12 Factor
App approach (<http://www.12factor.net>), and it's led me to the conclusion
that mainstream enterprise middleware as expressed in J2EE is fundamentally
wrong. Application servers are an inherently bad idea.

That said, my own coding is currently leaning toward Node.js for server stuff.
I'm using Neo4j for data and it turns problems right on their ear - for my
space (not all spaces), it's a million times better than relational and a
thousand times better than document databases. So I'm looking for
languages/frameworks that make my particular use of Neo4j more graceful.
Started with Rails, but gave it up as the ActiveRecord ORM is kind of
Neo4j-hostile in practice. I expect this is true of most ORM solutions (hence
the R, for "relational"), so maybe I can make it better in a lighter-weight
system.

At any rate, there are no silver bullets, but plenty of wooden ones. I lump
PHP in that category. If there's an existing PHP app, then by all means
maintain it, but don't use it for new projects!

~~~
jasonhanley
Well that's insightful. At least I realize the problem I have is perhaps not
the problem that I thought I had.

It may just be a strong bias against PHP.

But even if we did choose to rewrite at some point, how do you choose?

Java is "enterprise-y" and people generally hate it.

As you mention, Ruby has fallen out of fashion, and it's always had a
reputation for being a resource hog.

Python is a great language overall, but was never really meant for web
programming so ends up being a bit kludgy.

Node is super popular with the bleeding edge crowd, but it's only been around
for 3 years and speaking of wooden bullets -- Javascript has more language
pitfalls than PHP! And there's still no clear winner in terms of framework
stack.

Meanwhile, Google has invented its own proprietary languages , which seems
like a real Microsoft in the 1990s kind of move.

So even if we started over, it's pretty unclear what we'd choose to build
with.

~~~
stray
> But even if we did choose to rewrite at some point, how do you choose?

I'd pack my bags tomorrow for a Lisp job.

------
dvt
It depends how old. It sounds like you're working on COBOL or something. Most
programmers are pretty flexible I think -- at least I am.

What's your Joel test score?
<http://www.joelonsoftware.com/articles/fog0000000043.html>

It may be an indication why developers are avoiding you.

~~~
jasonhanley
It's PHP -- but solid object-oriented PHP with a popular framework (Symfony).

Hadn't seen the Joel Test before -- thanks for pointing it out.

1\. Do you use source control? Yes (Git) 2\. Can you make a build in one step?
Yes (one command) 3\. Do you make daily builds? Yes (continuous integration)
4\. Do you have a bug database? Yes 5\. Do you fix bugs before writing new
code? Yes 6\. Do you have an up-to-date schedule? Yes 7\. Do you have a spec?
Many 8\. Do programmers have quiet working conditions? Yes (remote) 9\. Do you
use the best tools money can buy? Mid-range 10\. Do you have testers? To an
extent 11\. Do new candidates write code during their interview? Yes 12\. Do
you do hallway usability testing? No

So we've got like a good 10/12 (I'm giving a half point each for 9 and 10 :)

~~~
TheCoelacanth
Your problem isn't that PHP is old. PHP is the same age as Java and there are
plenty of people willing to use that. Objective-C is trendy now, and that's 12
years older than PHP.

Your problem is that PHP has probably the worst reputation of any programming
language since COBOL.

~~~
jasonhanley
Looks like I'm not the only one who has had this problem:
<http://blog.mailchimp.com/ewww-you-use-php/>

------
airlocksoftware
You pay them a lot of money, obviously. Or do something else that makes up for
the fact that you're not using technologies that developers are drawn to.

It's pretty simple economics. If you are using "cool" technologies, you
basically get a discount on your developers because there are so many of them
that want to work with the tech. The less desirable your tech stack is, the
more you have to pay (in cash or benefits) to make up for it.

~~~
beat
Or you outsource it to India!

~~~
jasonhanley
:) Been there, tried that. Did not go well.

------
GregMarcus2
I would strive for a culture that emphasizes life balance. Reasonable
deadlines, recognition, flexibility. Look for the people with kids. Offer part
time. Things that the new cool can't touch.

------
glass_of_water
Part of the reason people want to work with the "coolest" technologies is that
they want skills that will be relevant/desirable by a wide range of employers.
If the skills they pick up working for you are not relevant in other areas,
then they're basically wasting their time.

------
eip
Tell us what tech you are using and we will tell you why no one wants to work
with it.

~~~
jasonhanley
PHP. Unfortunately it's earned itself a terrible reputation due to its
popularity with beginners. You can start throwing tomatoes now :)

~~~
beat
I have a hard time thinking of PHP as "old". :) C is old. FORTRAN is old. And
I'd argue that PHP's terrible reputation isn't because it's old, but rather
because it's primitive. It has all sorts of nasty coupling between layers, and
encourages bad programming habits. On the other hand, something like 75% of
the world's websites run on it, so it can't be that hard to find PHP
programmers.

~~~
johnsocs
C is old ? I'm a 31 year old developer and I really enjoy working in C, maybe
I'm just old ;)

------
magic_man
Well the problem is if this tech isn't relevant how are they going to get
their next job. The days of company loyalty are done. Insix months if you do a
layoff what will they do?

------
kapv89
The problem is that php itself has been undergoing a lot of change in the past
4-5 years, and tbh, even symfony 2 is not the "coolest" PHP tech out there. In
php land, laravel 4 is the rad thing these days, and from the looks of it, its
gonna stay that for several more years. And since its new PHP, most of the
people using it are not those who are into "new" techs, per se, but those who
used to CI, or Kohana, or Cake, and avoided Symfony because of its blatant
copy of Java ecosystem. As a pretty decent php-dev, I can surely say that php
5.3+ can be easily used to create better abstractions and tool-kits than Java.

Also, If you haven't yet, take a look at composer and packagist. Their are
several cool php libs up there.

I am also pretty interested in knowing what are you doing about this problem,
because my forte is php and JS, a bit more better at at php, and i am pretty
confused about which tech to make a product I have in mind in. Since its a
distributed system, PHP might offer a better reach (also because of its
popularity as "easy" amongst non-devs). But JS over node is a much better lang
to work with, though it would hinder getting talent and traction and would
require huge amount of marketing etc.

------
LarryMade2
OK, maybe the "technology" is out of date, how about what you are allowing
them do with it?

In my circles there are folks still writing and building new tools for the
Commodore 64. Same old 6510/Commodore BASIC but employing new programs with
new methods and some new add-on hardware.

So, as another respondent asked, are you offering them the ability enhance and
update that older yet cool useful application (using the tried and true
technology), or just merely maintaining it?

------
dhruvkaran
You show them traction. Show them the money, the business model and sell the
dream. That said, if you like someone, be open to their ideas about using new
tools. Just make sure they have an incremental plan, not shotgun re-write.

------
ig1
You don't, you find programmers who want to work with that technology instead.
It's much easier to find someone who's goals align with your own rather than
trying to convince someone that their goals are wrong.

------
orangethirty
Old stuff is fine with me. I once considered taking a job as a mainframe
programmer (RPG). There is always my free time to tinker with new stuff (
which is what I always do).

------
pasbesoin
You convince people that they will have a _career_ with your company and then
hire for that. There are people who are looking for a good career over
"bleeding edge" -- some of them are even good. (I've worked with some,
although even in such institutions, those who are _good_ are in the minority
-- and often incorporating newer technologies into side or non-critical
projects where they make sense and save time/effort/money/bureaucracy.)

If you can't convince such talent that you can offer a career, then you may be
screwed.

P.S. Is PHP significantly coincident with such "career" type positions, these
days?

------
stray
What is it? What is it built with?

Do you offer part time? Telecommute?

~~~
jasonhanley
It's a system that manages clinical trial research data, built with PHP. Yes
and yes.

~~~
stray
Well there's the problem. It isn't that php isn't the newest technology -- but
rather, that php is a horror to work with.

I'd jump at the chance to work with Lisp (which is far older than php) because
it's a joy to work with.

I'd dearly love to work part-time so I could devote more time to writing and
personal projects. And I'd love to be able to telecommute so I could do some
traveling while working. And for those opportunities I'd happily work in
Pascal, BASIC or even COBOL.

But I just can't bring myself to touch php again.

