Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
a customer asks for response times under a second for all "dialog-based" applications. He is speaking about our desktop applications that are getting the data from a business server connected to a SQL Server.
Usually 1 second is ok for us, but we have got some forms that will take longer (up to 2 or 3 seconds). Do you know any standards (or any source) that specifies what should be the response times for a user? I've found many different informations, but mostly for Web pages and not for desktop applications.
I read somewhere that 3 seconds is the "magical" number. Then I read about the "10 seconds rule" from Norman Nielsen for web pages. Some others speak about the "4 seconds" rule.
I would like to have some arguments for my customer from some "third party" ("as you probably know, the accepted limit is specified in the ISO norm as xx") :-)
Thank you
Even if the actual performance of your dialogs can not be improved, you can look at techniques which may improve the perceived performance of the application. Lazy loading, or asynchronously loading parts of the dialog after it's shown may improve the experience for the user and not require exceptional effort from you. Feedback on progress, may also improve the user's experience. You may want to test out some ideas with some users, even just a couple, to see what they perceive as the problem, and then look at techniques to address those specific issues.
Since you mentioned Nielsen Norman...
Some quotes from here: (about websites) (gives a bit more context to "the 10 second 'rule'")
From 1–10 seconds, users definitely feel at the mercy of the computer and wish it was faster, but they can handle it.
A 10-second delay will often make users leave a site immediately. And even if they stay, it's harder for them to understand what's going on, making it less likely that they'll succeed in any difficult tasks.
Even a few seconds' delay is enough to create an unpleasant user experience.
And this (for web and application) also mentions 10 seconds, but it only says you should give an estimated duration if it's taking longer. It also says "response times should be as fast as possible".
What you should take from this:
These are advised numbers to be taken as upper limits. Users generally aren't happy with response times that approach these, but will be willing to accept them occasionally (not consistently).
A one second response time is really not too much to ask for, in general. But, if you have a few dialogs taking longer, this should be acceptable.
If the response time absolutely cannot be improved any more and the client isn't happy, the only remaining thing you can do is to give some of the technicalities in laymans terms as justification for the response time. For example, the server isn't good enough to handle the program, or the network connection is to slow, or whatever. I don't think any client will really be happy being quoted some specification they've never heard of, even if one existed.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm in my first development job out of college and have been handed a (solo) project that is completely outside the range of my skills/experience both in terms of the technologies being used and the sheer scope of the thing.
I've spent the last 6 months or so basically completely retraining myself and then starting to do the thing, and although I did very well at college and I think that I'm on track for delivery, I've had zero feedback on what I've been doing and I'm suddenly starting to feel very much out of my depth.
My direct supervisor, while a nice guy and I think a competent coder, doesn't have the best communication skills and basically told me to "read a book" when I asked him for a bit of guidance, which is not really what I was hoping for!
Am I just being unrealistic about the amount of support I can expect as a junior developer? It seems to me that ignoring the issue and ploughing ahead runs the risk of a failed project which is to no-ones benefit. I could take my request for guidance a step higher to the head of development, but I don't want to sound like I'm saying I can't do the job nor do I want to make my supervisor look bad.
Can anyone suggest a good approach for saying "help!" without making myself or my supervisor look bad?
This is a great question, and I think a fairly common situation. Basically, I think what you're asking for is guidance on how to communicate with your boss, and the other people in your organization.
This might be a good time to look into the scrum framework, and take from it what seems applicable to your environment.
In particular, you mention that you might be in over your head. Or, there is an (implicit) expectation that you'll need to finish this project "tomorrow," when you really don't know how long it will take.
I suggest starting with a list. Write down everything you need to do. Include non-coding activities, like "research technology X for doing Y," and give each task a basic time estimate like "1" for short, "2" for medium, "3" for long. Then put the things in an order that you think makes sense.
Then meet with your boss, once a week, for like 20 minutes, to discuss what you did, and what you're going to do next week. Out of this discussion, you'll both see what's going on, and adjust expectations (and the list) accordingly. When conflicts of expectation come up, talk it out.
Regarding the amount of support to expect as a junior developer, this really depends on your organization, and your supervisor's opinion. As software engineering is still a relatively young profession, there isn't much in the way of industry-standard mentoring programs.
I suggest trying the list + meeting thing for a couple months, and observe how your opinion of the support situation changes. Then, go to a large conference as soon as possible; spend the money if you need to. You'll see who is struggling with similar situations, and also who is not, and you'll create your own, more-informed model of "how the industry is supposed to work."
Regarding a good approach to communicating, I (seriously) suggest The Seven Principles for Making Marriage Work by John Gottman, which has a lot of examples of what works and doesn't work when communicating with people.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I work for a web development company, and quite often, some of our projects come back from the client after being released, with small bugs.
This frustrates my boss as it means we must carry out development work to fix the issue, for which we are not getting paid for.
How can we prevent errors from ever occuring, or is this just something that should be taken into the initial cost?
Our philosophy, time versus money applies to your circumstance as well. The more time that is spent on unit testing, the less likely it is that code will contain bugs after it is released. At the same time, the more time your spend unit testing the less profitable the code is.
We take a more cavalier approach. Our programmers test their own code, pass it off to a fellow programmer for testing, and then a final review and unit test is performed by a supervisor. If all three tests pass, the code is stamped complete and is passed on the end users.
Bugs are an inherent part of programming and must be anticipated as inevitable. No amount of testing can truly guarantee that code is 100% bug free.
Some good methods of avoiding writing bugs are found at this site.
http://sites.google.com/site/yacoset/Home/how-to-avoid-writing-bugs
Released software will always contain some bugs, even the big companies like MS, Google and apple can't release without bugs. Ofc you can do lots of thing to prevent it, like unit testing, smoke testingen, stress testuing ect. ect., but there will always be bugs. thats as certain as rain when you'r on holiday in England.
Make sure you discuss stuff like this in the sell proces. For example 3 weeks aftercare(bugs fixed for free), after that the can buy maintaince hours
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Leaving work at my contractual end of play time seems to be a rare event. Usually work has to be done that requires working an hour over the end of the day, or a meeting (time differences are a real pain).
Is there anything I can do to avoid this? I already make sure I don't start a task in for the end of the day (or the end of the next day), which I cannot finish within that time.
Is this a sign of bad project management? Also, how do Project Managers handle time zones (they are a real inconvenience)?
Thanks
Is there anything I can do to avoid
this?
Sure, leave on time. Task not done? Start on it when you arrive on time the next working day.
Manager doesn't like this? That's his (or her) problem. Scheduling tasks, assigning priorities, and managing resources is the managers job. Doing your tasks to the best of your ability within the contractually agreed upon working hours is your job.
Constantly asking you to stay late or work on weekends or holidays is either poor management or lack of company resources (not enough people to do the job). Requiring you to stay beyond the statutory limit without paying overtime is a violation of labor laws.
(Of course this assumes you are an hourly employee.)
It could be that they simply don't have enough people on the job, and there's too much in the role you're doing for one person to get through in a day. That said, I find that I'll often get engaged with something at work, not notice the time, and end up leaving somewhat late. This is more that I'm enjoying it at a given moment, than it is to do with that extra time being strictly necessary. I think this is something that you need to ask yourself about. Is more being asked of you than you can get done in your contract hours? If so, why? Do you really enjoy what you do, and spend time trying to do it as well as possible?
On the time zones thing, they are a nightmare. Sometimes you need to have a conversation with someone who wakes up not long before you want to head home, and someone's going to have to take the awkward time (or more usually, a compromise must be reached). There's no perfect answer to this, since someone is always going to have to be available at a time they rather wouldn't. I think the most important thing is to ensure it's at the least inconvenient time for all parties involved.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
we have a number of functional deliverable planned for 2010 but we also have a technology agenda (architectural refactorings, consolidation, upgrade a platform). any suggestions on the best way to include these in a roadmap to help the business understand why they are important.
one option is just saying trust us as this is the right thing to do to keep everything healthy but i would like some better visualization if possible
Being a bit cynical about it, I would say phrase every thing in terms of money. If you can't re-write your technical agenda in terms of money made or money saved, then why are you doing it at all?
Also, there is an article on "technical debt in financial terms" that I found very useful at:
http://forums.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
One of the more interesting points, to me, is "One of the important implications of technical debt is that it must be serviced, i.e., once you incur a debt there will be interest charges."
There is a brief follow up at
http://forums.construx.com/blogs/stevemcc/archive/2007/12/12/technical-debt-decision-making.aspx
Show how support time, time between failures, number of problems should go up if you won't do the change.
Each technology has it's time limits, end of support from the manufacture, and regular life cycle.
Example - if you use MFC - you can show that programming a simple task in MFC is 3 times slower than in winforms. so after x months, the benefit from not upgrading will be lost.
with equipment it is even easier, as the older the equipment gets, the more mal-functions there are and it is easy to show (usually after the 3 years covarage everything starts to break, and I think it's planned like this. it didn't use to be but these days it does).
with infrastructure - again - if you have oracle 7.6 - show how much more time (money) you spend on administration and how less will be spent in 11g.
ect. ect. ect.
eventually manager wants to see ROI... TCO... BLA BLA BLA so you need to give them that.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
What are your opinions (as users as well as developers) on begware that e.g. at the start screen or intermittently shows a modal dialog for x seconds? What about other methods of getting the user to pay (or send you a postcard or any other kind of appreciation) instead of using the trail version?
Nagware is a bit pointless Imo, any thing you do to limit the software so that the "free" version is somehow encumbered will ultimately lead to it being reverse engineered and people will just download the out dated and possibly virus infected alternative of your software, which although not your doing, makes your software look bad.
I know this isn't viable for all software types, but whats nice is to just give up that fight, and give your software away for free, and then find other circumstances that make you money from the software.
Dual License, Free for Private/Non-Profit use, Licensed for Corporations/Companies.
Charge for consumable releated services , ie:
Support
Subscription to online service ( many games do this )
Aferro GPL: Anybody can use it but must share their source to all people using it. People wanting to not share have to contribute a licensing fee.
Many ideas just have different payoff rates, the "give it away" and then collect funds on related services may sound like it will never help you, but being free gets it out there faster, and then its a numbers game as to when you'll have a large enough base to fuel the other services.
( The contra-idea is having a product that costs millions, you sell once, and it doesn't spread because of the high cost )
As a user, it's annoying, but I don't feel I have any right to complain. If I don't like it, I can either pay for the software or use something else.
As a shareware developer, I don't use it - I prefer making the free version crippled or time-limited.
I really don't find they actually accomplish that much. I've gone on using things like WinZip, without paying for a license, for years, watching it count up all 1000 days I've been using it, simply because I didn't think the price they were asking was worth not seeing the nag screen. If the person doesn't want to buy your program, showing them a nag screen won't give them any extra incentive to buy it.