When Should We Ditch Our Platform?
odoketa writes "My organization recently had to replace our Web developer. It took us an extremely long time to find someone with the necessary skill set. I don't know if this is because of the platform we are running (which I will leave nameless), or simply because the fates conspiring against us. It's easy to assume that languages or platforms are popular based on buzz, but the rubber hits the road when you have to hire someone to maintain that code. How are folks out there determining when you've backed the wrong horse, and getting back on track?"
This same thing happened to us with Flash.
Flash was all powerful and pretty. Putting aside the serious deficiencies with flash, hiring quality people to work with it was nearly impossible. The people that where good with flash where graphics designers, they like to do pretty animations and colorful graphics, but they where terrible programmers, and knew nothing about usability and user interfaces. The people that where good programmers avoided flash like the plague ( myself included :), why did I ever go work for them? ). Usability people's first recommendation: dump flash.
So if you are a big enough shop, and you decide to do your web application in flash, you need a minimum of 4 people: A graphics designer to do flash, a user interface guy to design your interface and a programmer to do your code, and a project manager that can make them work together. If you are a small shop, and can not afford 4 people, you should really reconsider your choice of platform.
At the end, we ended up switching to good old HTML, the transition was very painful, but now there are lot more options when hiring, the product improved dramatically, and there is less worry about someone being hit by a bus.
Curiosity was framed, Ignorance killed the cat.
My unreasoning hatred for Java blinds me to any semblance of logic. I would suggest Ada before I'd suggest Java.
Do not confuse "Freedom of Choice" with "Free Will".
I'm attempting to manage someone else's PHP code, and I can tell you it can be every bit as awful as maintaining alien Perl code. Throw in a spattering of CSS and DHTML, and man-o-man, but trying to read some absent developer's mind can be a nightmare.
So here I am, thinking about redoing the whole thing, just so it makes sense. This is the real problem with a guy sitting in his basement writing your platform for you. Unlike a team where there is proper documentation, notes and usually decently documented source code, you have a collection of half-baked half-used ideas tossed together until they work, but in a fashion so maniacally complicated that you end up spending more time (and thus money) trying to sort it out than if you just simply rolled your own again.
Of course, the guy that follows you has the same problem, because the need to get it into production fast means you don't properly follow conventions either. It's an endless vicious cycle, and PHP is every bit as bad as Javascript, Visual BASIC, VBA and so forth for producing this shitty code.
The world's burning. Moped Jesus spotted on I50. Details at 11.
My hatred of Java has nothing to do with speed. The platform has become a giant morass of 'enterprisey' 'solutions' that create more need for more 'solutions'. And all Java 'solutions' must somehow involve XML, because it's standard, and enterprisey.
Need a Python, C++, Unix, Linux develop
I've actually WRITTEN web backends in Fortran....how else are you going to make a pretty website with data that only sits on a 20 year old VAX?
I also did one site in Fortran just to see how it would work. Fortran write statements using formats, is a lot better than using C, I'll tell you that much.
"What's making him think of switching platforms? "
/. decries so much with Microsoft, except the vendor happens to be their Web Developer.
He gave the answer to this question in the summary.
"It took us an extremely long time to find someone with the necessary skill set."
This can be unacceptable in just about any organization. Depending upon the definition of "extremely long time", which can vary from organization to organization, this is unacceptable. Most places want easily pluggable modules for positions, so that retirement, death, transfer or quitting doesn't break the organization.
This is the equivelent of "vendor lock in" that
There is an unacceptability in being held hostage to a singular developer. At this point, I usually recommend switching to one of the various CMS setups available. It is much easier to find people able to tweak and update using one of the available CMSes, than some proprietary hack that has less features and no other developers.
While this advice is not universal, it most likely would fit the kind of shop that has a single Web Developer on staff (or contract).
This is based upon the general problem presented, the general details, and my understaning of what is available in the market.
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
Well...
They develop web applications but only ever test them on windows. These are apps for the government that are for general consumption. Not having a single OS X or Linux testing station is plain wrong. But hay, at least the corporate types got the contract right? Never mind doing the job properly, or even learning what that means.
Also, testing things on Linux, Windows and OS X is a great way to make sure that what you're doing doesn't have hidden quirks. That goes for designing webpages as well as network shares and other network services.
I find Outlook a terribly annoying email client to use, and would prefer to use my own.
When writing documentation, I find it *much* easier to use OS X's screenshot technology and inter-app tools to bring the pieces together. This saves enough time that I frequently go home to write significant amounts of documentation, and it looks great when it is done, and it's done *fast*.
OS X and linux have a superior command line with a complement of tools that is esp. useful when you're batch processing vast volumes amounts of files. I used to write ruby scripts and run them on windows because of a lack of a command line. That is not the most efficient way of doing things. My co-workers were wowed at the things I could do that they just didn't think were feasible because they have no real experience with getting the command line to sing. Large numbers of files is typical when working on software projects.
I like using multiple desktops, I find that much faster and easier to do than work with the almost crippling windows taskbar.
And there's tones of fanboy stuff too.
What I don't get is how anybody thinks that standardizing everything on windows is somehow going to just make everything cheaper and hunky dory. People use other platforms for a reason, and using a bit of intelligence there is no reason why sysadmins can't figure it out. And you get the benefit of not grid-locking yourself into a single vendor.
To me it seems like common sense is being replaced by a rule book. That's why I left for a smaller company, and they let you run what you want - but only support you with stuff they know. It works out great.
Like all pain, suffering is a signal that something isn't right
This question plays into simular territory that one that came just a week ago. And, as you can tell from the subject, it really gets me going. If you are of the kind who posts questions on slashdot, then you at least are somewhat tech-savy enough to judge fairly quickly after talking to a handfull of developers if you're plattform is rubbish or not.
.Net it doesn't really matter for this part) and, so I strongly suspect, were paying your main "maid for everything" dev with a shoestring budget who then probalby left on his own when the farce became more than his self-respect could bare. You didn't train him on the technology, you didn't give him air to breathe, you didn't let him run his mind, you didn't space (not to speak of pay) the enviroment, pipeline and toolset needed for the product you wanted and you most certainly didn't plan *or* stick to your calls you made four weeks before. The usual stuff everybody with real developement experience here on slashdot has seen time and time again. (Watch them mod me way up to Jupiter to see what I mean)
.Net because of some hair-brained idea back in the day, he'll tell you he can continue with that for an extra 20 000$ per year to compensate for learning a hermetic skill or you give him free reighn and he'll implement on whatever buzzword draws the highest line in OSS technologies on trends.google.com. Or he'll maybe just dive into the system you're running and come out on top after half a year.
Since you're not saying which plattform I suspect you rode with some standard fare OSS plattform (which are all very good for 99.9% of all web solutions) for free and expected to get the programmer along with it for $4 per hour or something like it.
You said you had to look hard to replace you guy ("It took us an extremely long time to find someone with the necessary skill set."). You, Sir, are a liar. Here's what really happend: You chose a plattform (... jadajada, Django, Rails, Zope, EZ Publish or even
I tell you what: Stuff this bullsh*t about 'lack of skillset'. I've heard it all many times over and I'm sick of it!
Pay and treat the people the fair and you'll have so many well-versed devs at you doorstep you'll have to shoo them away. And once you've got your favorite, show him/her your web-setup. If he's an OSS guy and you happend to jump on
Oh, and to drive the point home:
If you're really lacking skillset and have a tough time finding it, I've got customers in the US too. I'm a freelance webdeveloper from Europe who also does consulting. Especially for the very sort of situations you claim to be in. Give me a neutral contact email-address here (post it in a child) and you'll get my contact data. Get back to me over your official channel and if we strike a deal and you afterwards can plausibly refer to this slashdot question as being your's I will apologize, stand corrected and you get 200 Euros off the bill. That's fair, isn't it?
And now I ask you, my fellow slashdotters:
What's the bets we'll never hear from this guy again?
We suffer more in our imagination than in reality. - Seneca
Depends how you measure efficiency, but yes. (Also depends how you define "framework".)
I'm sure someone could write a book -- I haven't got the experience, but someone -- which covered all the possibilities here. Fact is, this is actually something you want to do your best to translate into numbers, and then have a manager look it over and make the call.
The kinds of questions you want to ask are:
You could fill a book with questions like this, analysis, etc -- it's really a bunch of boring business stuff. And it's going to be very different based on what the framework is, what your project is, the lifespan of your project, etc.
For example: I just finished porting a simple corporate website (and a blog) from an old, contractor-hacked version of a blogging engine to a shiny new one. In the process, I tried to avoid touching the actual engine itself, rather adding our skin as a theme, and adapting the site to the features the engine had, rather than the other way around.
Say what you will, but it took the contractors months to make those modifications, and it took me about a week to port what I saved of their stuff over to the new engine. The old site was buggy as hell, probably because of the contractor modifications. The new one actually works.
Now, a few jobs ago, I was working at a company which had a fairly large .NET app, which had SQL injection vulnerabilities all over the place, and was not fun to maintain. But we did anyway, because it was a big app, and we'd lose money anytime it went down, and so on. Maintenance may have been a pain, but a ground-up rewrite was just not feasible, as much as it was needed.
And then there was the odd job I did -- a single server (an old, retired computer) which sits in a corner, whose sole purpose is to run a single app once every three months. I hacked it together as an AJAX app before I really knew JavaScript, with an ugly, hackish backend, horrible limitations, etc. But it allows one person to do in 20 minutes to an hour what used to take two people more like five hours or more, and allows reports to be sent via email, rather than printed out. And it's only run once every three months, so as much as I would like to patch it up now that I know better, it's not worth it -- it's good enough, and no new features are really needed.
Don't thank God, thank a doctor!
The thing that was cool about the
One thing that wasn't cool about the
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks