Hacker News new | past | comments | ask | show | jobs | submit login
What specific problems are lots of programmers solving over and over again?
11 points by Skeletor on April 25, 2009 | hide | past | favorite | 4 comments
I'm working on a web based medical billing code search engine for my software start-up that will let users search for ICD-9 (and related ICD-10, clinical codes) medical codes used in medical diagnoses and medical billing.<p>The problem with building the data files for the search is that the Center for Disease Control only releases the file in .rtf Rich Text Format files that are ok for printing and reading, but difficult to programatically load into a database.<p>There are a few existing ICD-9 search engines out there and I know dozens of other programming teams have tackled this problem for every crappy practice management system on the market. But due to the nature of the field things are very closed and no one has released their data publicly or released code to parse these .rtf files or a repository for the data. The reason is that each company sees the X amount of hours they put into parsing these files into database data as a barrier to entry for competitors.<p>What other types of specific programming problems due programmers keep solving over and over again, and how do you break the vicious cycle and be the first person to release data or a solution? Or is it ever worth breaking this cycle and releasing your solution and making it easier for competitors? How do you profit or benefit from releasing a solution for a problem like this?



Even when things are released there is often duplication.

The biggest "problem" is code reuse. Everyone's problem/skills(i.e. ability to understand & trust particular solution)/infrastructure(e.g. needs to run on cell phone vs we gots Big Table) are slightly or massively different. We as a profession still struggle to abstract things correctly so they can be reused.

It's best to not to have a solution or have a partial solution and convince your industry to work on it together thus distributing the costs and benefits. This is commonly practiced as standards and open source.

Another situation were it is good to release solution you paid to build is if there are high maintenance costs associated with that solution. Others will be incentivized to use (and thus share maintenance costs) your solution. You will have "lost" the initial development cost but save on maintenance and there are multiple fringe benefits (publicity, good will, control/influence).

It sounds like the ICD things have low maintenance costs, creates a barrier to entry for competitors and is fundamental to medical billing and thus seen as a core competitive advantage. All factors that discourage openness.

Should sell directly or spin off company to sell libs/software/translation service of the ICD. When you recoup costs and/or sales decline open source it.


I think your analysis is correct. I'm kind of torn between the business person in me telling me to find a good solution and use it as an advantage and the programmer in me that hates anyone duplicating work needlessly.


Almost every C project re-implements some of the same basic data structures and algorithms (strings, lists, arrays, queues, hash tables, trees, unicode, etc). It's remarkable these haven't been standardized yet and it doesn't appear that the C++ standard template lib has solved the problem.


At least in that space at such a low level, there are many existing products people could choose to use if they wanted to. There are no existing free open source projects that solve this problem (and there are other problems where market forces seem to prevent a good common solution from coming about.)

So if you are a C/C++ programmer you have the option to use someone else's low level data structure implementation you can use the STL or tons of open source projects (GLib, Boost).

But just as programmer's love to avoid work and re-use code, they also love to reinvent the wheel which we are all free to do. However, if you were a start-up founder and you insisted on reimplementing low level data structure libraries for your product I don't think your company would last long (unless that is your hobby.)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: