Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm in the process of putting the final touches on an open-source framework that I hope to release in the next few months. It's something that I'd like to develop a community for and so I'm curious about what factors influence your decision to use a new framework or tool and why.

Some of the specific things I'd like to know more about (feel free to add to this):

  • Types of documentation/tutorials/instruction
  • Community support (comments/forum)
  • Updates (blog/social media/feeds)
  • Look and feel of the project website design
  • White papers/testimonials
  • A big feature list
  • Community size
  • Tools
  • Ability to contribute
  • Project test coverage (stability/security)
  • Level of buzz (recommended by friends or around the web)
  • Convincing marketing copy

Ideally, I'd like to have all of the above, but what specific features/qualities will carry greater weight in getting programmers to adopt something new? What says, 'This is a professional-grade project,' and what are red flags that keep you from trying it out?

share|improve this question
Good Buzz plus evidence of extremely simple and well-thought out design. Does it solve problems or create problems? Does it solve problems that I currently have? I recently discovered Clojure and it rocks. – Job Aug 9 '11 at 3:19
Thanks, Job. If you had to define "well-thought out design", what things are you looking for specifically? – VirtuosiMedia Aug 9 '11 at 3:26
Something that makes me want to use a computer again :) I will use examples: Check out Asymptote language, Python, Clojure, many GUI tricks by Apple… StackExchange, LilyPond, iPhone, SmartDraw,,, some aspects of LaTex,, gmail, google, chrome, bing maps,,, *nix terminal, torrents,, twitter api,, github,, fogbugz, datadog, mercurial. – Job Aug 9 '11 at 3:48
up vote 3 down vote accepted
  • It is EXACTLY a solution for the problem at hand, at least on paper
  • I can expect that it will be adopted by an enormous amount of developers, or is already
  • It's not a stupid buzzwordfest
  • It's designed by knowledgeable people and has positive reviews
  • It does what I need in at least 5x less amount of code/time that I would have to add/spend if I would do it myself
  • It's an industry standard
  • Prototypes clear out nicely
  • The code/pattern/API is very clear, compact, straight-to-the-point
  • It will be supported long-term, or has the source code available
  • It clears complexity rather than adds new one
  • Has no noticeable runtime overhead
  • Does not limit extensibility
  • Does not need lots of external dependencies
  • Is not experimental
  • Licence is compatible with the project

All of the above, that pretty much sums it up.

share|improve this answer

I first check the website. If I can't figure out what the project was designed for quickly enough I skip it. Some put a whole lot of news on their homepage, without stating what the software was actually made for.

Then I check the license, there's plenty of projects that can't be used with propriety software, and some add silly things to their license, like stating "The Software shall be used for Good, not Evil." (by whose judgement?)

Then I look for sample code. It's usually quicker to get a feel for the project than to check the documentation. A reference documentation is good, but sample code is a must.

Anything else is just bonus. If the three above are ok, I'd be willing to test it out to see if it works for me.

share|improve this answer
I often do not even read text but check screenshots first. – Job Aug 9 '11 at 3:17

Your list is a good way to do the quick evaluation, though I would add license.

If I'm looking for a mature product I also check out job websites to see if anyone puts it as something they are looking for. Usually a new project is itself a red flag, because unless it does something nobody else does then I don't want to risk a new project.

If it passes a quick evaluation and fills a need, I look at the architecture and design and quality of the source code. Then I actually try to test it out, if it's passed all the earlier tests.

As far as standing out as professional grade, for me it's usually a design that makes sense and a project that has a reason to exist. Everything else on the list is to check if the execution makes it more valuable than troublesome.

share|improve this answer
+1 - Good point on the job site criteria, though that won't be one that I'll be able to do anything about for a while. Simplicity in use is one of the key points that I'll be stressing as it's why I created the framework, so hopefully that will make for a good "selling" point. – VirtuosiMedia Aug 8 '11 at 22:19
Could you elaborate on the license part of your answer? Do you just look for open-source in general, or something more specific? – VirtuosiMedia Aug 8 '11 at 22:38
I usually am looking to be able to use commercially, so it has to have something that clearly allows free commercial use without onerous obligations. Most non copy-left open source projects seem to qualify, but if not it's probably a deal breaker. – psr Aug 8 '11 at 23:12

It all comes down to two things (for me at least):

Necessity: Can it help me solve a currently unsolvable problem, or one that requires a lot of time, work, and overhead?

Desire: Let's be honest, we're a crowd that enjoys a cool show when it comes to frameworks and tools. If it can wow us, then all the better.

The best combination is to get a mixture of those two. Good luck!

share|improve this answer

Does it solve a problem I've got!

I personally feel there are too many "frameworks" out there. Not having much to do with the ".NET" "C#" world I do think the single biggest advantage in that environment is MS providing a single comprehensive integrated development framework.

The Java world in particular has just too many competing, overlapping and incompatible frameworks, none of which really stands out as the best and all of which have gaps and idiosyncrasies.

share|improve this answer

Your Answer


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.