I know this is subjective and not really a question. I won't feel bad if it is closed, but I'm curious about this.

I was recently learning some details about a project that uses Microsoft Sharepoint as the development platform and honestly I don't know if they are doing something very wrong or the product itself is just a pain to develop against, but it was like an horror story.

The funny thing is that using Sharepoint like that is very common. I have heard about many projects that attempt to use Sharepoint as the platform for bigger applications. In most cases is a business-driven decision and not something suggested by the development team.

And don't get me wrong, I am totally aware that Sharepoint might be the best fit for many scenarios and that business needs are always higher on the priority scale than developer comfort, but that doesn't lessen the fact that some products are just so nasty that in extreme cases developers quit their jobs (or change projects) just in order to avoid them.

Which product embodies your worst developer-nightmare?

I nominate Crystal Reports. I just hate the thing.

168 accepted

For webdevelopers, it's certainly Internet Explorer 6. :D


Crystal Reports is the lonely king of this! Everything works fine - until one magic moment! And from then on, you have often no chance to identify the error or fix it.


Lotus Notes.

It is almost impossible to use version control in tandem with it.

And that's just first in a very long list of complaints.


The worst product to develop for is SHAREPOINT. It's hard to debug, hard to set up, hard to do everything.

It's a pain in the neck!


Frameworks which are developed from businesses as their own "inhouse framework".

They are overengineered, ugly, bloated, not maintrainable, obfuscated, against every standard, far away from good and bad.

One of the best things I've ever read came from Rod Johnson in his Book "Expert one-on-one J2EE design and development" when he said:

The first rule of developing frameworks in-house is: don 't.


Another one I just remembered is Microsoft Access.

And I'm not talking about Microsoft the-friendly-end-user-desktop-database Access, but about the Microsoft just-turned-into-enterprise-application-platform Access.


I have had a little experience with Sharepoint and, yes - it was painful.

One of the most painful experiences I had to develop on was Oracle Application Express (formerly HTML DB). It was great to develop quick, small applications on but as soon as you wanted to do anything slightly outside of the norm it was a nightmare.

It's probably better now though!


Having developed under Linux, I vote for the autotools: Automake, Autoconf... - they're as useful as painful.


ESRI ArcObjects caused me years of agony - so many interfaces and C++ exceptions spewing their way out of the API.


Truly, Ektron CMS400 is easily the worst (both in terms of programmers' API and internal code) product I have ever seen.

Closely followed by RedDot. What is it about content management systems?


JSF. Takes ages to get even basic things done. No documentation and nothing works right out of the box.


The string operations in the standard C library.


I nominate Oracle Apps when people have to implement it without enough knowledge about how it works. It can be a beast if not configured correctly, and it eats up space like there's no tomorrow.



I mean most of SAP. two or three years ago one of the biggest improvement in development environment was that the editor has syntax highlighting and auto completion.


Software is typically pitched at two groups of people: either the people who will actually use it, or the corporate decision-makers. If it's pitched at the actual users, it can't be too painful and still sell well. If it's pitched at VP level and up, to people who have the power to write big checks and never will touch the software, it doesn't matter how painful it is.

This means that the worst stuff comes from corporate giants. Several Microsoft products are listed here, and Microsoft gets a lot of sales out of convincing higher-ups to buy as much Microsoft as possible. SAP and Oracle are also very good examples. Companies that don't dominate, that don't have the boardroom cred, have to generate interest in other ways, frequently by making software that appeals to the actual users. (Microsoft was in this category before MS-DOS, while I doubt SAP ever was. It shows.) IBM products used to be painful to work with, because for most of IBM's dominance computers were really expensive, and therefore bought by executives (on my first job, whether to buy another megabyte of RAM was a VP-level decision).


Using registry keys in Windows for storing the values.

Disadvantages of Registry keys:

  1. Increased memory overhead, leading to inevitable system slowdown as more software is installed on a particular system.
  2. Any application that does not uninstall properly, or does not have an uninstaller, can leave entries in the registry. Over time the computer suffers "Software Rot" as the registry fills with left-over and possibly malfunctioning entries.
  3. Installers and uninstallers become complex, much more than just copying files into a folder.
  4. Applications that make use of the registry to store and retrieve their settings are unsuitable for use on portable devices used to carry applications from one system to another.

Not developing against Sharepoint but simply using it is like a nighmare. I'm not a web developer so it's very difficult for me to understand why going deeper into the document structure (or actually clicking any other link on Sharepoint) will require re-rendering of the whole page.


I had a particularly bad time a few years back working on a very large BizTalk project. It does some cool stuff but the tooling is awful (and I'm aware of how much worse it used to be), and forget about testing any aspect of it in isolation - every change needs to be deployed to the server before you can see if it worked! We had everything scripted and some good automated tests but the feedback cycle was just short of an hour...


Crystal Reports... seconded...

We're having major problems with Crystal Reports. They release versions on a regular basis and seem to purposely NOT make them backward compatible!

XML Serialization can be a ball ache, especially when dealing with string arrays declared in an XML Serialization class.


You guys are all wrong.

IE6 does suck yes, but interwoven teamsite (CMS) takes the cake. let me list some horrible things about it:

  • its written in perl, java, jsp (with inline java), and about 30K lines of horrible javascript
  • the DataDeploy (the thing to deploy the data) sucks. Reading its logs is black art.
  • developing DCTs is a nightmare because you have to use their horrible javascript API. (i found a bug where recursion was broken in it!)
  • while you develop in javascript, you might have to interface with perl, and also write scripts in perl.
  • installing it is really hard. there are a ton of config files everywhere.
  • it costs lots of money.

I voted in favor (?) of Crystal Reports. But I thought Oracle deserved to be mentioned at least once. I mean every product which name contains Oracle.

Whatever the product you very consistently get :

  • poor UI (when usable at all). I once had a demo by an Oracle salesman of a product once developed by Siebel (cannot remember the name now). He warned me half laughingly of all the useless graphical stuff they had spent their time on : modal windows, a graphical designer... He then had a sigh of relief when we fell on a page developed by the Oracle guys where all you had was a text box to create your queries. Ha !
  • poor integration in its environment (ODP .NET parameters bound by position by default...).
  • inconsistent syntax. In the DBMS_LOB package, can you spot the discrepancy in the naming conventions between GETLENGTH and GET_STORAGE_LIMIT ?
  • legacy burden. They never pay their technical debt (do I get extra points for citing Jeff ?). Have a look at the OCI header files if you want to know what C was like 25 years ago. This point is obviously linked to the previous one.
  • poor quality/support. They once released an Oracle Client (9.2.?) where one DLL was linked against the debug version of the Microsoft C Library. This version is obviously not present on the usual workstation, so the client was just broken (as in non functional). At the time, you either had to wait for the next release, or get the patch from the overly priced Metalink support.

Funny note : Business Objects, now owners of the infamous Crystal reports, was founded by ex Oracle employees...


Symbian OS phones - you try so hard to find documentation, and when(if?) you do, nothing actually behaves as it is documented.


Facebook - it's a moving target.


Sharepoint for sure. It will make you want to kill yourself twice.


Haven't seen it mentioned before: developing anything that interacts with Microsoft Exchange. Lots of great APIs to choose from, but in my (luckily very little experience) only pain was involved.


FileMaker Pro for a few reasons.

  • The scripting system is so controlled that you do it by point and click
  • No separation of data files and code files
  • Poor performance

I'm wondering if you all people are still sane, no one mentioned Typo3 yet!

It's the worst.thing.I.have.ever.seen on earth. Horrible code base, cruel user interface; it's a waste of time of your precious live.


Magento. Eshop framework comprised of 9000 files and less documentation than a wristwatch


Developing a custom IFilter for Sharepoint Search or Microsoft Search Server equals a lot of pain - almost no relevant documentation and lots of unanswered questions.


I know few people have used this, but Biz Talk is awesome one day and someone shoot me the next day.

Behind that I would say the Visual Designer (web apps) in Visual Studio. I love Visual Studio, but the dam designer can drive me crazy.....


My own personal hell of late has been OSCommerce. Sure, it's a great open-source platform for what it aims to do, but actually making any serious change or even implementing a module add-on seems to be an exercise in frustration and anxiety.

For that matter, I find any framework built on PHP to be something akin to a rolled-up wad of Christmas lights. I really hate digging through countless includes in almost as many subfolders to find a constant definition. (Again, OSCommerce, I'm looking at you!)


For sure, Microsoft Commerce Server 2002.

  • Three different method to store data (including mashalling into a single column, XML and normal O/R mapping).
  • Three different ways of configuring data fields.
  • VB6-like APIs only half-way hidden behind a .NET-API
  • You see at each bit of the app that it has been developed by different groups that hardly speak with each other. A programmers nightware. Not meant to do things with beyond the base functionality.

The ArcGIS server Web ADF. It's a horrible combination of the ASP.NET Atlas update panel stuff and the callback results framework, which might not be second and third, but are both in the top ten.


Vignette Application Portal in conjunction with Vignette Content Management with some Vignette Dynamic Portal Module on the side. If you've ever done this you deserve some kind of award.


Murex. I've never seen product that inconsistent.


Informatica PowerCenter. It's meant to be the Rolls Royce of data extract tools. It's certainly that expensive but sadly runs like a single gear cast iron Penny Farthing.


I don't think anybody here would have developed for it before, but recently the Sakai Framework has been my nightmare.

I consider myself lucky that this job is only temporary (scholarship), and I feel sorry for those who have to deal with Sakai for years to come.


JSF + Richfaces, JSF is bad, but it just gets worse when you add Ajax


I wish to disagree with those who have nominated crystal reports, including the asker. I have worked with (versions 6 - 12 ) it extensively and for many years without a hitch. I think its a great reporting tool, and provides a really easy interface to integrate into projects. Anybody else agree with me?


CGI in C!

You can complaint as much as you want on crystal reports, sharepoint, and other products, but they all pale in comparison with it.

It was the first job after I graduated from college (I had worked before that), and it was on a time where we already had jsp, asp.net, crystal reports, sharepoint, etc. So I am not doing an unfair comparison, its a real horror story :(

I switched job after 2 months and worked on an e-commerce product sold with an administrative software on asp.net (1.0), and yes it used crystal reports.


I would definitely nominate Crystal Reports, piece of ****.



IIS with PHP and the only way you can access the server is WebDAV. Updating and debugging was pain...


Websphere has to be two of the most difficult application servers to work with. Difficult to setup, difficult to deploy, difficult to work out how feature X works and difficult to code anything for. Weblogic isn't much better, JBoss either. In fact most application servers to work with.

However, I'm sure there is a method to their madness considering they make so much money out of support, purchased documentation and training courses. Way to make money - make it convoluted!


Interfacing with MYOB



Write once, run anywhere. Yeah, right.

Worst handset I've developed for: Motorola T710. It had a crap screen and would fail to install JAR files, for no apparent reason, if the JAR size was a multiple of 100 bytes.



Windows Workflow Foundation!


Without a doubt, JBoss, the java application server. Trying to get it to talk to anything else is a nightmare.


IE6, iPhone


Once had to program a TINY embedded chip. Not sure whether it was the chip or our tools but that was a really really bad experience.


Can I say legacy hardware in general?

I often find myself in a downhill fight for any type of driver support. Usually it plays out like this... "a C driver exists... but only on X architecture... its been ported to Java though... but the JRE that it was said to be ported worth is 9 years old.... etc... Ever play this game?


Interbase, version 6 or earlier.

This is one database that just refuses to scale. And if you try to remove old records to keep it slim, it will not re-index, ever. The only way to get it to shrink it to pump it to a backup, delete it, then recreate it using a god awlful set of metadata, then pump back from the backup. This process takes about 3 days on DB of 20 GB


Can I nominate OpenCV? It's a C++ library, but it's giving me lots of headaches.


As someone who has primarily done Unix dev I'd say Windows is the most painful product to develop against. It feels cumbersome and backwards.

I also hated developing in anything other than assembly for PIC micros because the MPLAB tool was painful way back when I was doing embedded PIC dev (XP had been around a while, but MPLAB was still a 16 bit Win 3.1 program).


I detest writing RISC assembly.


The iPhone, or rather UIKit. UIKit's APIs are really more limiting than useful, if you go a little beyond what the example code does.

It's not so much that I haven't seen worse APIs - it's that on a product this successful, you'd think you'd get a decent UI toolkit. It's the combination of hype on the one hand, and the quality of the APIs on the other that's so disappointing.


Dralasoft aka Clarify aka Verity aka LiquidBPM aka doesn't exist anymore, support guy from latest company to buy it says "What's Dralasoft?"


not worked with M$ SP or CR so don't know.

Access is a pain, so is the liferay also had fair share of problems with developing add-in for office, it is bit better with VSTO but still pain in the back side.


I'd vote for Powerbuilder. (But it could have been the project I was working on back then...)

Oh and how about Borland Starteam for source control? Especially in combination with the Visual Studio integration. The pain! Does anyone actually use this?


I'll happily nominate BREW here. Not sure how much experience people will have had to agree with me, but having done a great deal of web development in the past and having suffered through Netscape 4 and IE 4, 5, 5.5, and so forth, I can say with confidence that nothing they do comes CLOSE to the backasswordness that is the BREW platform.


SOA Applications over Oracle SOA Suite platform


Any application with zero unit tests.


Visual Fox Pro

The data typing is so loose it would have to pay to get into the strip joint!


The Windows Installer -- No one, outside or inside Microsoft, uses its API or data (well, except the poor people who make wrapper tools like InstallShield, Wise, AdvancedInstaller, and VStudio Deployment). Even when using wrapper tools, it's painful to do anything outside its narrow limits. Custom Actions are a kludge and often can't be used for conditional actions because you never know when things are going to happen. Testing for conditions ("launch conditions") are extremely limited, its habit of starting up on users at the craziest times, giving them worthless guidance on what the problem is and how it is trying to solve it (usually the hapless user deleted some shortcut accidentally left "vital"), ... I could go on.


Sharepoint, Crystal Reports