Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have an opportunity to work in a company that looks good from the outside but has something that bothers me. It doesn't use commercial technologies. The main language that will be used is Java but the company doesn't use all known technologies like Spring, Struts, Hibernate etc. Instead it has its own technologies that do pretty much the same.

Can you tell me what are the pros and cons about working in such a company?

share|improve this question
    
Nice question , I'd the same but its better suited @ programmers.stackexchange.com –  Jigar Joshi Jan 27 '11 at 8:21
    
Thanks for all the answers. They really helped me take a decision –  Mihail Yordanov Jan 28 '11 at 7:41
    
The odds that their framework is better than the best popular framework out there are slim, just as the odds that your co-worker can answer your questions better than StackOverflow collectively. However, if you work at FogBugs, then the odds are slightly better. –  Job Jan 14 '12 at 3:22

5 Answers 5

up vote 4 down vote accepted

Adding to @Syg's answer from a more pessimistic perspective: proprietary libraries may be used because when they started to work on their specific problems, the libraries in fashion now did not yet exist. And they have been stuck with what they have built up ever since. They may well be aware of the more modern and mainstream ways of solving these problems, just they

  • don't want to migrate because "if it works, don't touch it", or
  • can't migrate due to lack of resources.

And an even more pessimistic perspective: they may have created their proprietary libraries because

  • they were/are unaware of the latest developments on the field,
  • have the "not invented here" syndrome :-(

Neither of these last possibilities sound very inviting. So it would be important to get further information from the company, to determine which (combination of the) possible causes are in play, before you commit yourself to work with them.

share|improve this answer
2  
I knew I was "old" when I was asked why I hadn't used a couple of "modern" tools in a couple of my projects, and my answer was: they didn't exist yet. –  red-dirt Jan 27 '11 at 10:39
    
@el fuser, then we are both "old" :-) I may have sounded a bit too one-sided above. Having a proprietary library for historical reasons may be perfectly OK, as long as the library works well and its in-house maintenance costs are justified. However, usually a mainstream (esp. open source) library has far more resources available for development and maintenance, so over time it is likely to get better and/or cheaper to use than an in-house solution. Therefore it is important to monitor the state of the art, to notice if/when it is time to start migrating towards the mainstream. –  Péter Török Jan 27 '11 at 11:01
    
Try not to get only information about the situation of the company and their technology, but especially on your position. Perhaps its your job to migrate their software to some sort of standard library. –  Christian Jan 27 '11 at 11:58
    
I'd be weary of a position that says they plan to migrate. Chances are you will be the one that is stuck putting an IV in the project to keep it alive rather than taking the front loaded cost option of migrating it. –  Rig Jan 14 '12 at 1:52

Well, a pro might be (and I'm really looking at this from an optimistic perspective) that they recognized that the standard libraries didn't fit their needs and they created their own tools, which could mean they have skilled developers that you can learn from.

If you are going to work with and program against these custom libraries, this will help you improve your skills and get a better grasp on the problems these libraries solve.

The obvious downside is that you will have to learn to use and program against these custom libraries, a skill you won't be able to use when you move on. This gives you that nagging feeling, which I find really really annoying. The -"why am I learning this, I'll never use this stuff again, I have better ways to spend my time"- type of feeling.

Final point: software organisations (and their clients) do work with the standard libraries like Spring and Hibernate, so it's a good thing to have them on your resume, which is something you won't be able to do if you are working with a custom set of tools.

share|improve this answer

It depends.

Fog Creek has it's own specific language and compiler that it uses instead of ASP/ASP.NET, and I'm fairly sure they're a pretty safe place to work.

What makes the difference?

There are good and bad reasons to write your own framework.

  • Good
    • To better solve the application problems.
    • To create a better abstraction for the problems involved.
  • Bad
    • Arrogance (Those people writing Spring don't know what they're doing!)
    • Ignorance (What's Spring?)
  • Indifferent
    • Created their own framework before comparable frameworks were available.
    • Stylistic concerns.

The fact that the company has it's own framework isn't enough information. If you can ask why they use the framework, get a look at the code they write with the framework, and look at the framework code itself. These things will tell you more about whether this job will be Bliss or whether you'll be submitting things to The Daily WTF in a couple months, than just the fact that they have their own framework.

share|improve this answer
    
Fog Creek is a good example of how to build internal resources. I'd wager they are 1%ers when it comes to in house stuff on that magnitude. My company has internal tools that are definitely good but I they haven't had the dev push to keep up with the trends. They lag and it's because of resources are in house. I suspect that's the major failing of places that use closed source in house frameworks. Some places swing it, others don't. –  Rig Jan 14 '12 at 1:59

There are two behaviors you can have.

  1. You see that as an opportunity. If you see there are some possibilities to introduce new technologies, this is great for you. What your future employers will seek is your ability to help a company becoming more competitive. Therefore working for a company that already have everything is probably less challenging than if it was nowhere (which is the case here I guess).

  2. You move on. One of the most common advice I give when you have the choice, is to take the hardest path, always. The best way to learn and therefore increase your market value is to be exposed to brilliant people and stuff you don't know. So you should go for other opportunities that contains the uncertainty you need to evolve.

share|improve this answer
    
+1 Good point "exposed to brilliant people and stuff you don't know" –  Amir Rezaei Jan 27 '11 at 11:24

I'd see that as a negative.

Yes, the people there may be mega smart as they have identified common software could not match their needs.

But also, they may well be architectural astronauts who are blind to the benefits of reusable software, and/or arrogant ("we can do it better!").

If you didn't know that until you started the job, then I'd say stick it out for while to see which of these is true.

As you know before you start the job, I'd be a lot more wary. What other opporunities do you have? stay at current job, is the market booming in your area? etc.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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