|
Vladimir Afanasyev wrote:
Absolutely disagree with you...
Why programmer don't love one's neighbour as self?
Why programmers like to work with good UI (visual IDE, UML,
etc) don't think that user also like to work with good UI.
I am sure bad user interface is most programer's sin!
IMO. Programmers shouldn't design user-interfaces. Sure they code them... although in the days of HTML and XAML then that task can be taken away from them too. A UI should be designed by people who understand user interfaces and how the user thinks and works.
There are far worse sins on the list than a poor-ui. Sure its a sin, but its not the worst of the lot.
Michael
CP Blog [^]
|
|
|
|
|
I may be agree with you if to say about developer team with
strong role base structure. Even to say about eXtreme
Programming every sin from above list it only half of sin
(programming in pair). But what about teams without strong
role structure or small teams without role structure at all
or stand-alone programmers. I know many boys here in
codeproject are stand-alone programmers. Let us see some
article by Matt Gullett from this perfect site. He wrote 7
articles series with common name "The Standalone Programmer"
In most of them he says about user interface. Let us see
inside one of them (The Standalone Programmer: Communicating with Users). Now quote:
"All too often I hear developers referring to users as "dumb". I have been guilty of this myself and although I have run into a couple genuinely stupid people the vast majority of my users are quite intelligent. Most users are good at their jobs and often their jobs exist with or without software so software can either be a burden or a blessing. Having a proper appreciation for this fact is very important. Just as I don't want people treating my work as unimportant or calling me "dumb" I should not treat other people this way. (This is also why I consider user interface design one of the most important technical aspects of my job.)"
May be it is time for another Polls:
Are you stand-alone programmer.
1. Yes
2. No, I work in small team (2-3 developers)
3. No, I work in team (4-8 developers) without strong role base structure (every of us programmer, writer, spec. UI)
4. No, I work in team (4-8 developers) with strong role base structure (we have writer, spec. UI etc)
5. I work in extremly big team
Do your team have UI writer
1. No, I am stand-alone programmer
2. No, my team has no UI writer
3. Yes, it's me.
4. Yes, but it's not me (God bless...)
|
|
|
|
|
I'm a "stand-alone" programmer, but as such I have to talk to the customers, understand their needs and wants and understand how they work. Therefore I have a better understanding of user-interfaces than your average programmer who sits in his cubicle and is given a list of requirements. I've also got 16 years experience of writing software, a lot of it dealing directly with the users so I am better placed to understand what works and what doesn't work for users. I like to think I'm good at giving my clients the user-interface they need and not the one they think they want.
User Interface is important, thats why I keep it as a seperate responsibility... even when I'm doing both the coding and the the UI. The UI is a seperate task that isn't impacting on by coding the "back-end. "
I now use technologies such as MyXaml[^] to help keep the UI seperate from the workflow and business logic.
Michael
CP Blog [^]
|
|
|
|
|
Frankly, I have 26 years experience of writing software and
know that sometimes it is impossible to work with user. Sometimes it is many users and they has different requirement. So it is sometimes difficult work and, of course, UI writer are needed but may be not always at least in my opinion.
|
|
|
|
|
Firstly, let me just say that I agree that the user interface is something that is often forgotten about and pushed away and I believe that is should be given more prominance.
However, I don't think that the User Interface is a programming sin. The code behind the user interface is the programming bit. Where I work we have a guy who specialises in UI "stuff" and what happens is that I get the basic business logic working (or at least the public interfaces exposed) and then he comes along and puts together the interface and connects everything up. There are design specs in advance to say what he needs for the interface, and the result is much better than anything I could come up with.
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
|
|
|
|
|
Probably because the survey asks "What's your pet peeve when it comes to source code?" So it's asking from a programmer's point of view. While a bad user interface is annoying, and downright infuriating in some cases, I see a lot more to curse about in code structure (my first choice) and formatting.
Jeff Martin
Triple20 Software
|
|
|
|
|
I think a bad user interface is a symptom of a more fundamental problem - poor design.
If you have a good well thought out design (not only technical design but functional design as well), you will probably have a good UI.
I agree that this is the only contact with the ultimate judge and jury... the user, and is of critical importance.
PJP
|
|
|
|
|
It all has to do with ones perspective. I've found this thread interesting because everyone is saying that UI == GUI. Wrong!!
UI can be much more than GUI. In terms of Object oriented designs UI has everything to do with the interface to every class in the entire system. In an OO system, programming to interfaces is one of the most fundamental priorities during the initial analysis of requirements and design discussions. An object oriented design is the design of interactions between all the "things" in your system. I consider this to be user interface program as well as the end user interface (GUI, buttons, switches, etc). If Object Oriented programmers don't setup good interfaces then it can be a major thorn in ones side when one tries to reuse existing classes. I'm dealing with this now because we have a bunch of old classes with atrocious interface designs (ridiculous compile time dependencies and interface functions that are not only not documented but code itself is terribly unintuitive). I should easily be able to read a class header file and read the interface functions and figure out if I can and should use that class. That makes me a user and thus every class has a user interface. Right now it is killing me because I hate these designs but yet, time and budget forces managers to force me to meeta tight deadline by re-using as much existing code/class designs as possible. UI is not just GUI!
My 2 cents is up.
Best Regards,
Shawn
|
|
|
|
|
You make an interesting point. Whilst I think the poll was referring to GUI sins, a poorly designed API interface is a sin too. A poorly designed or inconsistant public interface to a class is a real pain in the ass.
A lot of this can be chalked up to bad design and poor planning. I know I'm very guilty of not always thinking through my public interfaces before implementing them.
Michael
CP Blog [^]
|
|
|
|
|
single-character loop indexes, that is. Why, ever since i met i, my former standby (nIntegerLoopCounterUsedInManyPlacesForManyDifferentPurposesAllOfThemTooObviousToBotherDocumentingInVariableNames) has been collecting dust.
You're one microscopic cog
in his catastrophic plan...
|
|
|
|
|
I think i , n , j and k should be implicitly declared in all code blocks as int s.
--
Ich bin Joachim von Hassel, und ich bin Pilot der Bundeswehr.
Welle: Erdball - F104-G Starfighter
|
|
|
|
|
|
ARRGGHH!
Speakin' of user interfaces, software quality and so on..
i can't access your website with my favorite
browser and mail prog. Here is the ID:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
This implies that you site practically can only be seen
on windows systems.. what about users with macs,
linux, solaris etc?
No why is that?
Regards
Ted
Dutch programmer living (now unemployed in switzerland
that's why the english is a bit dusty.
|
|
|
|
|
tedvg wrote:
This implies that you site practically can only be seen
on windows systems.. what about users with macs,
linux, solaris etc?
No why is that?
It's IE only because the site doesn't render properly on other browsers. Add an IE to your useragent string and it shoudl open in Mozilla/any other browser but it looks complete crap.
I'll redo the site when I get around to it but to be honest I don't think it really matters... nobody goes there anyway.
Regards,
Brian Dela
http://www.briandela.com IE 6 required. http://www.briandela.com/pictures Now with a pictures section http://www.briandela.com/rss/newsrss.xml RSS Feed
|
|
|
|
|
You're not alone in this thought. If not explicitly declared, Fortran variables whose names begin with the letters I thru N are of type INTEGER .
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
That's where we dinosaurs acquired the habit .
Software Zen: delete this;
|
|
|
|
|
Jörgen Sigvardsson wrote:
I think i, n, j and k should be implicitly declared in all code blocks as ints.
WOW !!! That's FORTRAN '77 !!
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|
|
...Because having a "good design" means that requirements for some of the other aspects would have been covered. For example, IMHO, a good design would (should?) cover error handling, code structure (or "flow"), UI design, etc.
On the other hand, a so-called good design might not cover error handling and result in code that has no error handling, and quickly dies at startup. Or maybe the user cannot get to the "Do It!" button after launching the app (due to a bad UI). Either one would render the otherwise perfect design/architecture of the code pretty much useless, since no-one can actually use it.
I believe that a developer has to pay attention to all aspects of software development; from planning, to design, to implementation, to testing, to support. (And should have at least some experience in all of them.) Doing do should help them become better designers and architects in the future.
I think it is unrealistic to believe only in the Ivory Tower of Design -- it still comes down to the individual developers doing the work. Anyone here that has been involved in software for more than 5 years must have seen or at least heard of a "perfect design" that got F-ed up by someone, somewhere...
Just a few thoughts.
Peace!
-=- James
Tip for SUV winter driving survival: "Professional Driver on Closed Course" does not mean "your Dumb Ass on a Public Road"! Articles -- Products: Delete FXP Files & Check Favorites
|
|
|
|
|
James R. Twine wrote:
Anyone here that has been involved in software for more than 5 years must have seen or at least heard of a "perfect design" that got F-ed up by someone, somewhere
I have yet to see a real "perfect design" from any business dept in my 5+ years. I believe they could screw up the requirements, specs, and design for a "Hello, world!" console app.
|
|
|
|
|
I wrote in "Too many external dependencies".
I suppose you could roll that into "Bad design" or lack of design. But nothing is more annoying than code that has a bunch of (unnecessary) dependencies. I wrote this to mean external dependencies - as in, say, operating system that I may not be able to upgrade, a component I don't have, a DLL that ends up crashing my system, etc.
But you could also take it to mean a lack of "loose coupling", so you have some module that can't be changed without needing to change 100 billion others.
An expert is somebody who learns more and more about less and less, until he knows absolutely everything about nothing.
|
|
|
|
|
as it should... all other problems are minor when working with a good design...
now, if you're working with a BAD design, then I dont care how pretty, well-commented, or speedy your code is... it's not going anywhere.
|
|
|
|
|
Of course, "bad design" is also the most subjective of the lot...
You're one microscopic cog
in his catastrophic plan...
|
|
|
|
|
no... i think "inneficient coding" is.
actually, inneficient coding is not subjective.. it's simply not specific enough.
I think it's pretty easy to differentiate between good and bad designs
|
|
|
|
|
How many times have you seen a developer take a vague requirement and start banging out code ?
It is hard to believe that there are still people who do not believe that a good design based on tangible business requirements is a prerequisite to successful software development.
Even for a small application the business requirement and design should still be done.
It is like saying you want to vacation in Hawaii, so you get in the car and start driving... only to arrive in California and realize you can't get there by car!
PJP
|
|
|
|
|