|
Just as the title says..
John
|
|
|
|
|
Well, it does depend on the app. Something like a real-time video player really needs more speed than reliability. I don't care if a couple pixels are off on a frame or two, but I do care if the thing takes forever to play and looks like it is in slow motion!
But for many other apps, speed isn't much of an issue compared to reliability.
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
If your users don't find your app easy to use, they won't use it, and all the other options are moot.
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
Qualifier: We are talking about general-public apps. Not apps for us nerds.
I eventually chose that option too but I came very close to choosing reliability. Your app can be dead easy to use but if it falls over every 5 minutes then it is no use either. Of course a reliable but hard to use app is useless as well.
So reliability and ease of use?
regards,
Paul Watson
Bluegrass
South Africa
Christopher Duncan quoted:
"...that would require my explaining Einstein's Fear of Relatives"
Crikey! ain't life grand?
Einstein says...
|
|
|
|
|
But an application that fails and requires a user to restart often, is not easy to use IMHO.
|
|
|
|
|
I was very close to choosing "Ease of use". But it's a chicken and egg thing - how will you know what's easy to use until customers actually see it? You can spend all the time in the world designing a UI that you think is great and easy to use. Then you get it out to the customers, and they use it in a totally different way than you expected. So that's when maintainability comes into play - you'll have to be able to change that program efficiently once you realize you got the interface wrong the first go-around.
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
Thing is, I do a lot of work (in my spare time) for several doctor's offices. They each use the same software. Not cause its the best even because they like it. They use it cause its the only piece of software that they can use for their specific notes. Its the only thing. Scary, but it kind of kills the "they have to like it" part.
|
|
|
|
|
|
Slow apps suck.
// Steve McLenithan
Cluelessnes: There are no stupid questions, but there are a lot of inquisitive idiots.
|
|
|
|
|
Steve McLenithan wrote:
Slow apps suck.
What? Somebody mentioning Longhorn?
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
Slow machines suck
Perl combines all the worst aspects of C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of C with the readability of PostScript. -- Jamie Zawinski
|
|
|
|
|
Touche;P
// Steve McLenithan
Cluelessnes: There are no stupid questions, but there are a lot of inquisitive idiots.
|
|
|
|
|
Get a bigger whip for your squirrel.
Software Zen: delete this;
|
|
|
|
|
Extensibility means:
1. I can fix speed problems by adopting new solutions
2. I can improve ease of use problems with new interfaces
3. Reliability can be improved swapping out crappy modules for better ones
4. Maintainability is implied--if it can't be maintained, how the heck can it be extended?
4. Good looking UI's can be added later on
5. Efficent use of resources can be dealt with when we get some usage information.
None of the other options covers all the bases.
Marc
Microsoft MVP, Visual C#
MyXaml
MyXaml Blog
|
|
|
|
|
but you would rather make you app easily extensible than easy to use?
if you clients can not figure out how to use it, and it sucks in their daily workflow, then dont care about extensability, they'll get someone else to make the app.
- Anders
Money talks, but all mine ever says is "Goodbye!"
ShotKeeper, my Photo Album / Organizer Application[^]My Photos[^]
|
|
|
|
|
I guess it depends on your definition of extensible. You are implying extensibility by coding standards - I understood it to mean it could be extended by the user or third parties... e.g., skins that can be changed, plug-in DLLs, stuff like that.
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
Wow! I was going to post that exact point. I agree completely. Anyone who doesn't understand that simply has not done much desk top development.
"In the final analysis, secularism is little more than another religion the first amendment should be protecting the American people against."
|
|
|
|
|
Well, as of the time of this posting, I'm the only vote for maintainability. I voted it because... no matter how well you think you konw your users... no matter how many features you put in there... your code WILL change. Period. Fact. And the original coders may or may not still be there to help out. So you have to be able to change it in a way that won't introduce a ton of bugs or totally break everything else.
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
Is it possible to start an iterative development process by starting with Maintainability? The "ilities" (Maintability, Scalability, etc.) are considerations that should be addressed throughout the design and development process; with desktop applications though, do you not have to start with what the user sees, in order to get feedback on what the application should do?
What a piece of work is man, how noble in reason, how infinite in faculties, in form and moving how express and admirable . . . and yet to me, what is this quintessence of dust? -- Hamlet, Act II, Scene ii.
|
|
|
|
|
John Kuhn wrote:
with desktop applications though, do you not have to start with what the user sees, in order to get feedback on what the application should do?
No, that should be done before you start coding.
|
|
|
|
|
Perhaps you should design, code, design, code, ..., N, N + 1... times during your development process, going back to the user(s) at the start of each iteration to make sure you're on track and they're in agreement.
What a piece of work is man, how noble in reason, how infinite in faculties, in form and moving how express and admirable . . . and yet to me, what is this quintessence of dust? -- Hamlet, Act II, Scene ii.
|
|
|
|
|
Yes, I agree, and practice this.
Dave
|
|
|
|
|
John Kuhn wrote:
do you not have to start with what the user sees, in order to get feedback on what the application should do?
No, you need to be thinking of maintainability throughout the design. For instance, what if you design your UI first, get feedback, and realize you got it all wrong? If you took maintainability into account when designing, you'd probably have accounted for the fact that the UI might change, and it would be easier. If you wrote the UI first and just threw everything else in, then you might have to gut your whole app when the UI needs an overhaul. (I've been there. )
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|
Navin wrote:
For instance, what if you design your UI first, get feedback, and realize you got it all wrong?
It seems like that would only happen if you were working in isolation, and had never met with the user(s) in the first place. Certainly, in the design of a complex system, one would start with basic things, like identifying the business model, use cases, entities, items, things, scope, etc. However, after all of the abstractions have been captured an modeled, and the system's architecture is fairly firm, you have to show people something... and most people can't envision their future work flow by looking at UML diagrams, so you show them screen shots and sequences of events using "artifacts" that they can relate to. As I said earlier (or perhaps implied) maintainability is something we try to build in -- as a work habit as a coder -- and as an overall goal of system architecture.
Navin wrote:
If you wrote the UI first and just threw everything else in, then you might have to gut your whole app when the UI needs an overhaul.
That's definitely not what I was suggesting, but you are correct -- many of us have, in the course of our careers, designed, built and deployed small apps that were intended for a single purpose, that are easy to use, but even you, as the original author, have no idea why the @#$% you wrote it so poorly all those years ago.
What a piece of work is man, how noble in reason, how infinite in faculties, in form and moving how express and admirable . . . and yet to me, what is this quintessence of dust? -- Hamlet, Act II, Scene ii.
|
|
|
|
|
John Kuhn wrote:
It seems like that would only happen if you were working in isolation, and had never met with the user(s) in the first place.
You'd be surprised. Even major companies like Microsoft have to change their UIs from time to time (think VS 6.0 vs. VS.NET., or Windows 2000 vs. Windows XP) Beta testing, communicating with users and the like can give you a rough idea, but you never know for sure until your app is actually being used for its intended purpose.
Or, more commonly, you may have mistaken who your users really were going to be. Perhaps a completely different set of users started using your product and you didn't anticipate their particular needs.
Remember, even if you win the rat race, you're still a rat.
|
|
|
|
|