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 see many apps written by programmers who obviously don't use the program like the end customers in a production environment. This results in features that don't really make sense in practice, inferior ways of doing things, half-baked functionality, bad workflow, many tools doing similar things, etc.

But on the other hand, in rare cases you see the same end customers making similar apps in an effort to overcome these shortcomings, and they might not be as sophisticated code-wise as the ones written by programmers but they work much better and feel like it's written by someone who uses the program professionally just like the end customers.

So is software better designed and developed by people who will use it, people who have intrinsic knowledge of the domain the program will serve in?

share

migration rejected from stackoverflow.com Sep 3 '13 at 14:27

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as primarily opinion-based by gnat, Kilian Foth, Yusubov, MichaelT, Corbin March Sep 3 '13 at 14:27

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

    
i was gonna answer but too many answers shot down –  Michael Durrant Mar 10 '12 at 1:06

2 Answers 2

You can iron out a lot of issues using Hallway Usability Testing.

Also, if you have a good product management team, they should be doing some alpha and beta testing with actual real-life clients. That can provide a lot of good feedback from the field before features and GUI flow are set in stone.

In short: Yes. It's good if the development team are experts in the domain that a product is being written for. But you can use the above to mitigate these problems very well.

share
    
Thanks but I think it's not enough. Because #1 companies try to appeal to new users not existing ones so even though I am also in some betas of the apps I use, they rarely listen. You say something and other beta testers love it, and agree with this change to be made, even though it can be a 1 min work, they don't do it. You tell them change this to that, and 100 people say do it :O But they still ignore it and say "we know what we are doing", etc. But if it was my app, and I hear a feedback like that, I would be like "great idea, let's change that", and be happy that my app got better. –  Joan Venge Mar 23 '11 at 17:33

Would you ask a cabinet maker to make his own saws? More generally: would you ask a tool-user to make their own tools?

Yes, you would end up with a tool that works exactly as that tool-user and possibly many of his/her colleagues like(s). However, questions can be raised:

  • Is making a saw, hammer or chisel the best way for a cabinet maker to spend her time? What is the value added here? I would think that a cabinet maker's time is best (most effectively and profitably) spend making cabinets.

  • Is the quality of the tool up to the level of use it will be subjected to or will it break after a short period? Making a hammer is something completely different from using a hammer to craft a bench and requires a different set of skills and mindset.

With software you get the added complexity of changing wishes/requirements over time. While making his "ideally suited" piece of software, someone untrained in and unburdened by what is required to make it maintainable and extensible, will generally create something that will detoriate even faster than software created by people whose specific job it is to create, maintain and extend software.

So, by all means, involve the users in the design, but keep them away from turning that design into code.

share
    
Thanks but it's not the same thing IMO. I don't know about cabinet makers but in some fields certain people already use programming in their daily jobs even though they aren't programmers per se. Think of shader technical directors in the film industry. They write code all the time too even though they are artists, but the tools they use is rarely ideal. But if they could make their own, I am sure, and also have seen some examples that would be much more successful. Although not saying it's gonna be 100% better. The person also needs general programming knowledge, etc. –  Joan Venge Mar 23 '11 at 17:30
    
-1: Would you prefer a cabinet maker who made cabinets for his own kitchen? Of course you would. Case closed. –  Jim G. Mar 23 '11 at 17:59
    
@Jim G. You didn't get the point. Of course a cabinet maker can make cabinets for his own kitchen. I don't want him making the chisel and the hammer to make the cabinets in his own kitchen. Nor do I want a chef to make his own kitchen. I may want him to design his own kitchen but let a cabinet / stove maker make it. –  Marjan Venema Mar 24 '11 at 6:50
    
@Joan. Yes I do know some people have programming as part of their "normal" job. And those people may be very qualified to develop their own stuff. I still question their ability to make something that could easily be used by others as often it is way too specific to their needs, and I still question their ability to make something that would be up-to-par in many non-functional requirements aspects, simply because that isn't their focus. –  Marjan Venema Mar 24 '11 at 6:56

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