views:

352

answers:

7

I am pretty alone at my workplace when it comes to thinking about the overall design of the applications we're building. I don't have anybody to discuss the pros and cons with different frameworks, technologies, patterns, layering and so on with. The other programmers either don't care or thinks "the old way" is fine, which it isn't because those applications are hard to maintain, not testable, etc.

Any thoughts on how I can find like-minded, get applications reviewed or...? I'd rather not change employer but that is not excluded.

+2  A: 

You can talk with them to see if they are willing to do Unit Testing. Tell them that it will help them catch bugs quicker if they approach it from a test-driven development point of view -- which is absolutely true.

Unfortunately, this is something you need to talk to about with your manager and other programmers to figure out what the best solution is. Many places don't do any testing, and it is disappointing.

In the end though, testing is the best thing you can do to validate software.

Do realize that learning new frameworks and adapting to them does take time away from getting the project finished. Research into new languages is something I often see programmers doing on their own dime, or, they are so busy with work they don't have the energy to look into new things after hours.

Jovan
A: 

It is the standard situation everywhere in software business. Most workers are not qualified and simply do not care. Those who are and who do usually develop an apathy, switch jobs or finally start something their own and then only do the other job only for paycheck.

In most cases there is nothing you can do since your interests and those of your employer do not coincide. Yours: make software perfect. Employer's: make software bring revenue and cut all possible expenses. They almost never meet, except in single cases. You need luck to find such a place.

User
+3  A: 

Ill break your question down into two pieces:
1) One is that you are working with people who either don't care or don't understand design to question or give input. If people don't care, there isn't much you can do about that (other than find a different job). If they don't understand, I would say that maybe you could put together a presentation on design and get them up to speed, so you can have those "is this a good design" conversations.
2) If you are looking for physical validation, what I usually find that helps is doing some prototyping. This gives you a good idea usually of any unforeseen problems that might be in your design.

SwDevMan81
+1  A: 

If you cannot get your employer to understand the V-model for testing, then it's a lost cause for that company.

I'm talking:

  • unit testing
  • integration testing
  • system testing
  • user acceptance testing

Each of these map to their phase in the software development life cycle, and is a step in the right direction for validating your software design. Try to explain this to the higher-ups, if you can. They may be inspired if you bring in some numbers of other companies that do this, who knows.

More about the V-model.

AlbertoPL
+1  A: 

First I'd suggest getting involved in the programming community in your area. Even if developers in your company are behind the curve there are likely local groups who will meet up to discuss software development. I go to Spring user groups and British Computer Society meetings for example. Mixing with your peers will give you exposure to different technologies and approaches and also have the benefit of getting to know people who can help you out if your looking for opportunities.

Second it may be worth getting in an outside consultant to provide an independent code or design review. This may be a tricky thing to sell but it's sometimes easier for management to "hear "things from an independent outside source than it is from a more junior developer say.

BenM
A: 

I'm in the exact same spot as you.

Just last night I found a website where you can upload an design and get feedbak on that design.

When it comes to use of framework, patterns etc. the best thing is forums like this one. See what other recommends and ask when in doubt.

I've learned a lot from browsing different forums / sits, but it's time consuming.

try and find groups that meets every once in a while, over a beer to discuss things like this. I know there are meetings in my town (though I never have time to attend).

Steven
+1  A: 

It's definitely sad when other programmers care little about good software design. The only things I can suggest to do are:

  1. Follow some of the excellent developers around the world on their blogs to gain insights into their ideas
  2. Continue to encourage those around you to become interested in good design
  3. If there is no one local to validate your designs you can make friends with other developers online and ask them the validate ideas for you
  4. Participate in open source software and use that as a source of validation for your ideas
  5. Ask questions on stackoverflow.com about your ideas
  6. Keep programming and learn from your experiences
  7. Don't stay at your current company too long. Moving companies is a great way to keep yourself from getting comfortable and complacent
  8. Get involved in a local user group filled with like minded developers

Hope that helps.

mezoid
I'll definitely ask on stackoverflow the next time I want to verify some specific design with the rest of you guys. So many smart people and the voting system is perfect for this.
Jimmy