Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming IT Technology

When Should We Ditch Our Platform? 622

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 discussion has been archived. No new comments can be posted.

When Should We Ditch Our Platform?

Comments Filter:
  • by paulpach ( 798828 ) on Thursday March 06, 2008 @03:33PM (#22666634)

    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.

  • Re:Which platform? (Score:5, Interesting)

    by orclevegam ( 940336 ) on Thursday March 06, 2008 @03:34PM (#22666644) Journal

    He wants to know, generically, how you decide that what you're using is the wrong choice.
    All choices are wrong, some are just more wrong than others. Generally you attempt to find the least wrong choice at that time, and then periodically re-evaluate the cost of switching to a newer less wrong choice.
  • Re:Which platform? (Score:4, Interesting)

    by LithiumX ( 717017 ) on Thursday March 06, 2008 @03:40PM (#22666740)

    Out of curiosity, what would you recommend using instead of Java (and don't you dare say PHP)?

    My unreasoning hatred for Java blinds me to any semblance of logic. I would suggest Ada before I'd suggest Java.
  • Do you hate the guy? (Score:3, Interesting)

    by Spinlock_1977 ( 777598 ) <Spinlock_1977@yahoPARISo.com minus city> on Thursday March 06, 2008 @03:47PM (#22666850) Journal
    Here's what I'd recommend:

    1) Get 3 vendors to bid on replacing it on your platform of choice, without any functionality changes. Triple the price of the lowest bidder, double the price of the highest, and toss the middle guy out. Then ask: Would you rather pay those prices, or live with what you've got?

    2) Answer these questions: Is it a mission critical app? Do you have support for all the hardware and software components - or are some so old that you're on your own?

    3) Is the existing code really really a mess, or just the usual well-commented mess most programmers like me leave around?

    4) What features do you need to add to it in the next year or two? Can they be added reasonably to the existing code base? Will the hardware, OS, etc support the new functionality, or cave under the weight?

    5) Do you hate the guy who wrote the original?

    Ok, maybe you should weight that last question a little lightly. But at least there's some things to think about before pulling your own plug, or someone else's chain.

  • Job Trends (Score:3, Interesting)

    by Target Drone ( 546651 ) on Thursday March 06, 2008 @03:53PM (#22666944)
    You can graph the trend of platforms/frameworks using job postings. For example heres rails, jsf, wicket, struts [indeed.com]. Make sure you look at both the relative and absolute numbers though. The relative gives you an idea of the trend for an individual platform. The absolute tells you how big it is compared to others.
  • Re:Which platform? (Score:4, Interesting)

    by MightyMartian ( 840721 ) on Thursday March 06, 2008 @04:12PM (#22667232) Journal

    Perhaps he's using LAMP on either perl or php. If it's perl, he should shift to php as soon as possible, because perl code becomes very hard to maintain the longer it goes and developers are fewer and higher paid. He might have a problem with php because the developers lack the professional focus, in which case he should tighten his hiring practices.


    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.
  • Re:Which platform? (Score:5, Interesting)

    by Omnifarious ( 11933 ) <eric-slash@omnif ... g minus language> on Thursday March 06, 2008 @04:20PM (#22667358) Homepage Journal

    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.

  • Re:Which platform? (Score:2, Interesting)

    by Omnifarious ( 11933 ) <eric-slash@omnif ... g minus language> on Thursday March 06, 2008 @04:23PM (#22667390) Homepage Journal

    I would highly recommend either Python or Ruby, though my general preference is for Python. TCL is an awful tar pit put there to make it easy to spot academic things that aren't actually useful in reality. They all seem to get trapped in TCL. It's eerie.

  • Re:seen this before (Score:1, Interesting)

    by Anonymous Coward on Thursday March 06, 2008 @04:29PM (#22667478)
    I have this problem. I was originally hired on as a 20 hour per week "IT guy" to take care of problems with some high-end CAD and PLM software on Windows and IRIX. As time went by (and one full time engineer who took care of the rest of the IT stuff was fired) I became responsible for more stuff. First it was total responsibility for the workstations. Then the network and servers. Then the custom software and websites. Then expansion of our resources including adding Linux and Solaris servers. Then scientific software written in FORTRAN for the Solaris machines. Then assisting in the development of software and engineering products. Then providing customer technical support for the products.

    Now here I am. Everything has been set up in such a way that there are days when I automate myself out of stuff to do. Most things are done to established and documented standards. Those things that could not be or were not are documented in case I get hit by a bus. If I had smart, adaptable, quick-thinking replacement(s) that I chose and trained it would probably take a week or two for up to two people to get the swing of things. But if I left without training a replacement or died, I can't imagine the nightmare they'd be living.
  • Re:Solution (Score:5, Interesting)

    by HomerJ ( 11142 ) on Thursday March 06, 2008 @04:33PM (#22667582)
    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.
  • Re:Which platform? (Score:3, Interesting)

    by Plugh ( 27537 ) on Thursday March 06, 2008 @04:36PM (#22667638) Homepage
    As a person who's been using Drupal for the past 2 years, I can honestly say, I'd prefer to be beaten up in the face than have to use Drupal any more.
  • Answered! (Score:4, Interesting)

    by Archangel Michael ( 180766 ) on Thursday March 06, 2008 @04:51PM (#22667964) Journal
    "What's making him think of switching platforms? "

    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 /. decries so much with Microsoft, except the vendor happens to be their Web Developer.

    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.
  • JDK 1.1 (Score:3, Interesting)

    by CustomDesigned ( 250089 ) <stuart@gathman.org> on Thursday March 06, 2008 @05:04PM (#22668214) Homepage Journal
    I routinely coded network apps in JDK 1.1 that ran in 256K memory - including the JVM (no jit). That's K, not M. In comparison, the later Javas are stuffed turkeys. Even J2ME needs 512K. The two things that finally made Java 2 usable were the precompiled classlib for reasonable startup, and the fact that memory is now measured in Gigs instead of Megs.
  • by microbox ( 704317 ) on Thursday March 06, 2008 @05:11PM (#22668308)
    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.

  • by Omega996 ( 106762 ) on Thursday March 06, 2008 @05:53PM (#22668946)
    I've had no experience with Fortran, but a billion years ago when I got my start in IT I remember writing programs in RPG II for a System/36. I remember the joys of the program cycle, and struggling to remember the positional params without the 'punch-card' cheat sheet. Actually, in retrospect, it's kind of keen in a really nerdy way that RPG had that 'virtual punch-card' support, but I wasn't so hot for it at the time...
  • Quick answer (Score:3, Interesting)

    by FatherOfONe ( 515801 ) on Thursday March 06, 2008 @06:02PM (#22669066)
    first you need to decide how painful it will be to migrate. Is this some mainframe application that has had 20+ years of refinement and bug patches behind it, that happens to be in the millions of lines of code size? If that is the case then you keep kicking the dead horse for a while.

    Is this some scientific/complex application that is written in a language that just isn't popular today, but isn't too large? Well then you "might" consider migrating it over time.

    Obviously this isn't something to be taken lightly, because the expense of migration/bug testing and possible validation can be HUGE for large systems.

    I only have a small amount of data that you provided, so I can say that I "might" look at trying to expose as much of the legacy system as possible via a web service or some other "normal" RPC call and then look at having another system start to use the business logic in the core system, but have in written in a more modern and common language (Java). You "might" be able to start and pull off parts of the system over time that way.

  • Re:Which platform? (Score:5, Interesting)

    by Dragonslicer ( 991472 ) on Thursday March 06, 2008 @06:09PM (#22669154)

    Sorry I have work on both Perl and PHP. I see little difference in them as far as read ability. Heck if nothing else PHP can be worse.
    The big difference is that PHP gets more readable as the skill level of the person who wrote it increases, while Perl gets less readable as the skill level of the person who wrote it increases.
  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Thursday March 06, 2008 @06:11PM (#22669174)
    This question plays into simular territory that one that came just a week ago [slashdot.org]. 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.
    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 .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)

    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 .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.

    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?
  • Re:Which platform? (Score:4, Interesting)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Thursday March 06, 2008 @06:45PM (#22669624) Journal

    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:

    • How much work is it, really, to find people with the skills?
    • How much does it cost to train people who don't have the skills?
    • How efficient are they at developing for this framework? If possible, measure in dollars to functionality.
    • How long is it going to take to migrate to a new framework? How much money? Double those amounts, because you're underestimating. (Yes, you are. Really.)
    • How long are you intending to keep the product you're developing on that framework?
    • How much does it cost you now to maintain?
    • Based on all of this, how long before your migration pays off?

    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.

  • by billstewart ( 78916 ) on Thursday March 06, 2008 @08:43PM (#22670948) Journal
    I has a summer job in college doing programming on an IBM System/34, mostly in RPG2. It had 48KB of Semiconductor RAM (as opposed to real core), and a 13MB Winchester drive, and came with two IBM employees who were around every couple of weeks to keep it happy (usually by updating the accounting software, and then re-patching the updates to deal with the customizations our system had because the construction industry does accounting differently.) Unfortunately, we only had the slow printer, not the fast printer, so compile time was largely constrained by how long it took to print out the 10-page program listing, which was 20-30 minutes, and the printout was not optional; you always got one when you compiled. And of course when the Apple II came out, except for the disk drive it could totally kick the /34's ass, not that you'd want to run corporate accounting packages on the Apple.


    The thing that was cool about the /34 was the Operations Control Language, which was a shell-like interface that you could actually do simple programming in. It was obviously cooler than JCL, but it was also even cooler than the PDP-11's RSTS-11 user interfaces that we used to run BASIC programs.


    One thing that wasn't cool about the /34 was its mainframish approach to file system management - the OS wrote new file system headers when you saved or closed a file, but if it got interrupted before you'd done that, you basically lost everything. We were a steel fabricating company, and one day the clerk had spent about 6 hours typing in the list of parts we were going to need for a project, and some guy in the shop was trying to shut off the circuit breaker for his welder and powered us down instead. Fortunately she'd entered an hour or so worth of data the day before, so there were pointers to the beginning of the file and where it had ended after the first hour's work, and it was an extent-based file system. So I spent about 5 hours on the phone with IBM wandering through hex dumps of the file system to find the remaining pieces; it ended up being slightly faster than just retyping the whole thing would have been, but that could have easily gone either way. If you remember fsdb, it was kind of like using that on the raw disk.

  • On the other hand, if you write serious enterprise class middleware there is nothing better and those frameworks you find 'icky' are 100% necessary. You simply CANNOT in any sane world replicate the large scale clustering, distributed transaction management, connectors, and resource management capabilities of a good J2EE server.
    You know, there's a reason that Java disallows its use in life critical systems in the license. If you really think J2EE is the top of the line in those four topics, you need to do some research. There are in fact quite a few application systems with higher availability than J2EE. Unfortunately, the only one you're likely to have heard of is Erlang.
  • Re:Which platform? (Score:3, Interesting)

    by skelly33 ( 891182 ) on Thursday March 06, 2008 @11:49PM (#22672170)
    As someone who has spent about 10 hours a day for the last 4 years coding predominantly MySQL-backed PHP-based content management systems, I concur: most things PHP works just fine for. That includes shell scripting automation processes, communication middle-ware, commerce, front ends, data conversions, image and video generation and manipulation, and some pretty good mathematical computations. There are a couple things that I have found it lacking in however:

    1) Some of the magical pre-processing that occurs prior to PHP script execution prevents you from doing certain things such as doing the work for uploading files through a browser to the server; with PHP alone, you cannot intercept a file upload without PHP first spooling the file off to disk. I use Perl for this instead which allows me to abort uploads in progress as well as provide an upload progress measurement system.

    2) Fatal errors cannot be redirected through a graceful handler and shutdown process. This, to me, is retarded, and has recently bitten me on an application that tests and loads third party modules which may have fatal errors even though they pass syntax checking.

    3) OOP is still pretty weak. There have been improvements, but it's still incomplete. I don't like, for example, not being able to navigate a pointer tree through parent identifiers which is something that can be done in just about any other high level language. I can fake it in my own app by deriving all my objects from a base class that gets a pointer to its parent in the constructor, but it's not a capability that's intrinsic to the language.

    Those are just a few samples, but I'm sure I could come up with more if pressed. If it weren't for the widespread availability of PHP-capable programmers and open source code development in PHP today and I were tempted to choose an alternative, I'd probably fall back to Perl - an oldie, but goody that never let me down.
  • by pjr.cc ( 760528 ) on Friday March 07, 2008 @12:00AM (#22672218)
    From my point of view it simple anyways.

    Go to the nearest job-search web site and search for your platform. then search for the current modern platforms (dot net and j2ee or whatever) and see what the results are like, if your job advert was the only result for your platform, you should be probably looking to switch platforms.

    Thats a very broad brush approach, but at least it gives some idea of the general popularity.
  • Re:Which platform? (Score:3, Interesting)

    by syousef ( 465911 ) on Friday March 07, 2008 @03:22AM (#22672958) Journal
    You're not alone in thinking that.

    I learnt to code in the late 80s and early 90s, when RAD was king. I went to uni and then got a job where J2EE wasn't used. I felt that J2EE had passed me by and my employability was in question.

    I transitioned to being a J2EE programmer because I felt I was losing touch with the industry. I was writing front end code using Java 1.0 just 3 years ago and using old unsupported Smalltalk for the server side. I'd been with the company for 5 years starting with the boom. Their pay and conditions went down hill but we didn't lose our jobs and the company was self funded so I didn't regret my time there, but knew it was time to move on. They started to take on J2EE work but were hiring new programmers to do that work.

    When I moved to my current job, knowing there was a learning curve, I thought it was just a matter of riding it out. What a rude awakening. No RAD tools. XML hell. Development with layer upon layer of crud that got in the way of doing the job and did little more than require huge amounts of boiler-plate and cookie-cutter wiring code. Even when I'd joined there had been a shift away from EJBs. Now the big thing is wow we have frameworks like Spring to remove the error prone code. Yippee? We're still hand writing visual code using JSP. We're still building monolithic files (jar,ears,wars) with lenghty build processes. What use to take a day to do client/server style takes a week to do in J2EE. Everyone's focused on the cosmetics of web pages instead of functionality.

    Some days I think the world's coming off the rails and society's in rapid decline. When I have to code like this to make a living it doesn't help.
  • Re:Which platform? (Score:3, Interesting)

    by s4m7 ( 519684 ) on Friday March 07, 2008 @10:04AM (#22674562) Homepage
    I think the gp's comment was more about Perl's "hack factor," where more skilled practitioners come up with unique solutions using less-used features of the language. This owes largely to Perl's "There's more than one way to do it" mentality.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...