Getting out of CRUD

Crud

Crud Problem Overview


Definition:
CRUD - Create, Read, Update, Delete; The four basic functions of persistent storage. In the context of this question, specifically related to business applications.

I'll be honest, my goal when I began programming did not include being a lifetime CRUD programmer. Financial data is only so interesting for so long. And to me, that seems like the majority of programming gigs.

I'm still fairly fresh out of school, so any experience is still very beneficial, but eventually I want to move to something "less CRUD like." Currently, I have my eye on some machine control type work. However, I'm just not sure how to go in that direction.

So I want to get a feel for what other developers think about the topic.

  • Do you enjoy CRUD and why?
  • What have your experiences in CRUD been like?
  • How did you move from CRUD to non-CRUD work?
  • If you've moved, what do you like and hate?
  • If you've moved, what skills benefited/hastened the transition?

Edit:
I'm approaching CRUD with the attitude that I want to solve problems, not re-create the same form with different fields for a dozen different tables.

Crud Solutions


Solution 1 - Crud

I don't think that there's really anyone who enjoys doing CRUD (well at least anyone sane). It's the most tedious part of web programming. My advice is to find or write a framework to automate this for you.

However, if that's the majority of your work, you definitely should consider changing jobs.

Solution 2 - Crud

Get a different job. Seriously, not all software development is developing business applications. Developing shipping software would make you much happier, I think. Try to find a job at a software company, and write some stuff that's going to ship to customers. Also, if you want to get into some of the low level hardware-style stuff, just start hacking away on some basic microcontrollers so you have at least some background with that.

Solution 3 - Crud

Develop a framework to make CRUD creation easy in your line of work. Once you have done that, use the free time to improve it in terms of Usability, Security, Performance etc. That should keep your work interesting for a while.

Solution 4 - Crud

here is a nice presentation on how and why CRUD can still be inspiring:

http://www.scribemedia.org/2006/07/09/dhh/

Solution 5 - Crud

I agree that CRUD's pretty boring. But I don't think it's the fact that it's financial data that makes it so. Perhaps you'd find that financial data a lot more interesting if, for example, it was streaming into a neural net based expert system you'd written to work out how best to invest it?

There's definitely an awful lot more to programming than CRUD. Find an aspect that interests you, and pursue it.

Solution 6 - Crud

I am curious that no one mention task-based UI and CQRS here. In fact, to answer your questions :

  • I don't enjoy CRUD...why ? see the following answers to your question
  • My experience of CRUD is that's a pain to write CRUD (full stack frameworks are a workaround at best I think), and often a pain for users as well
  • I move to non-CRUD work when I understand that building software is about giving a powerful tool for users, not a database editor with some business rules
  • I like to build software less coupled to full stack framework (Symfony2, ASP.NET & cie...), more fully object oriented, but I am more and more annoyed by RDBMS CRUD orientation, and more and more attracted by EventStore (Event Sourcing)
  • Let's get inspired by task based UI, CQRS and Event Sourcing (search Google, I do not have enough reputation to add more links...) => all together

However, I would like to be less opinionated to finish : there are some points that will not let you get out of CRUD. Some users love CRUD, they feel like in Excel...and also there are probably some applications for which CRUD fulfill all the needs...

Solution 7 - Crud

CRUD - yes in the end we are storing, reading and updating data. But so what? That is just one part of the equation, at least in my world.

In business, data is essential, but it is the business logic and the decisions made from that data that is important. I have found it very rewarding to take raw data and use it to help business make decisions. We do that with business logic in our code, not to mention the endless ways of presenting that data in the presentation layer.

Yes in the end CRUD is involved, but it is much more than that, no?

Just my opinion.

Solution 8 - Crud

Having a wide range of experience, my solution is to create my perfect product and start a business around it. I'm facing all sorts of interesting challenges, such as how to stream realtime data from an embedded device to a browser. This stuff gets my programming juices flowing and I have a list of important, fun features to add.

Dream up your perfect product domain, find some people who could benefit and ask them what problems they have. Once you pick up a common theme that interests you (mine was automation and power monitoring) start hacking. Of course for me it helps that my father has run the electronics company Technman for the last 30 years, and wants to create this product with me.

Solution 9 - Crud

First, have you gone through most of what there is to know about persistent storage? It's worth figuring out how to practically apply database theory, etc. in your current job. Once you've been doing it for a few years and have it all figured out you should definitely think about expanding your horizons. I'd agree with you - unless you're building the DBMS itself - I find that the persistent storage part of the job gets to be fairly boring.

One of the best ways to get a job in a new area is to take a prototype of something relevant to the job to demonstrate at an interview. This is an incredibly powerful statement to make.

Embedded software is really my thing, but the market for this is slowly shrinking in North America and moving to the developing world, and it's a fairly specialized area to get started in.

It seems to me that the application space is still growing. Consider iPhone, J2ME, or Windows Mobile development for example. You can learn to do these on your own with a relatively small investment in equipment.

If you're not already doing this, there's also the web application space. Application server platforms like JBOSS and Glassfish are free and fairly easy to learn. Plus they provide a link back to the CRUD which you already know.

Solution 10 - Crud

Yes, a lot of business software is CRUD. I used to work on that.

In machine control, part of that can be CRUD too. For example, logging sensor data and reporting it somewhere. Basically CRUD.

But I will admit - in machine control, it's mostly non-CRUD. You would probably enjoy doing something that actually makes an assembly line move, or builds cars, or makes motors spin at a certain speed. I know I do. At a financial institution, it's literally just numbers. Nothing "real" like a motor or a car.

Solution 11 - Crud

Just about every program is going to have to create, read, update and delete some sort of data. In some systems this presents its' own challenges.

However most of the time reading and writing to databases is fairly easy (which is why they make databases). It is what you do with the data once you have it which is interesting, and generally unique to a business, and keeps you employed.

This article I agree with, basically a lot of programming is boring.

However if you are good and determined enough you will eventually get to do something interesting.

Solution 12 - Crud

Find or write a way to do the CRUD portions of the applications faster. Do so, tell your manager you are done with your assigned tasks (make sure they ARE done; tested, documented, etc.), and ask what you should do next.

Solution 13 - Crud

Just take a look to Django and move on to the interesting coding!!!

(Or RoR, or Grails, or whichever suit best to you, but CRUDS shouldn't be still being coded by hand from scratch)

Solution 14 - Crud

Modern frameworks can do all the crud for you. Checkout the standalone GORM from the GRAILS project.

Solution 15 - Crud

When I was an undergraduate, I changed my major from Electrical Engineering to Computer Science because I wanted to write video games. Later on, when I started working on business applications for real money, I learned that I simply enjoy solving problems with code.

You may be in the wrong profession.

Solution 16 - Crud

In this economy, it might be hard for you to just get another job, but that doesn't mean you shouldn't try. Find some type of work you think you would enjoy, go learn it and look for job opportunities. It doesn't hurt to make some phone calls and go on a few interviews even if you think you're unlikely to get the job. Even better, you could figure out a way to start your own company.

Solution 17 - Crud

Get into web-dev? Seriously the level of basic crud I have to do building web-apps is pretty low, even when there's a DB.

Solution 18 - Crud

For CRUD of windows FORM based applications developed in c# .net

RocketFramework is the answer

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGavin MillerView Question on Stackoverflow
Solution 1 - CrudJason BakerView Answer on Stackoverflow
Solution 2 - CrudAlex FortView Answer on Stackoverflow
Solution 3 - CrudChetan SView Answer on Stackoverflow
Solution 4 - CrudposeidView Answer on Stackoverflow
Solution 5 - CrudslimView Answer on Stackoverflow
Solution 6 - CrudClément BOUILLIERView Answer on Stackoverflow
Solution 7 - Cruduser69889View Answer on Stackoverflow
Solution 8 - CrudTom LeysView Answer on Stackoverflow
Solution 9 - CrudbillmccView Answer on Stackoverflow
Solution 10 - CrudJ. PolferView Answer on Stackoverflow
Solution 11 - CrudJeremy FrenchView Answer on Stackoverflow
Solution 12 - CrudAdam JaskiewiczView Answer on Stackoverflow
Solution 13 - CrudSamView Answer on Stackoverflow
Solution 14 - CrudJeff GView Answer on Stackoverflow
Solution 15 - CrudChris HolmesView Answer on Stackoverflow
Solution 16 - CrudStephen P. in RoswellView Answer on Stackoverflow
Solution 17 - CrudannakataView Answer on Stackoverflow
Solution 18 - CrudL.W.C. NiroshView Answer on Stackoverflow