I have never worked for a large company, so this may not be a helpful suggestion. However, where I work now (a Uni) does have a similar policy of Windows only, and specifically the Standard Build with specific apps only. This policy is relaxed a little for those who need to be able to install and test software. The issue is support: the IT Services people do not want to have to support anything that isn't known and understood by them. So by stating to management that we were willing to have no support from IT Services, and putting together a case for it to improve productivity) a colleague and I were able to persuade management that it would be worth their while to let us install Linux on our desktop machines.
Putting together a credible case is important; if you don't do this, you won't get anywhere, and even if you do get shot down, having one will make people question a decision that seems to go against common sense. (Which might help the next person, even if it doesn't help you.) The key issue is productivity. If you will be more productive, and the change will not reduce the productivity of others such as support staff, then it should be possible. Other issues to bear in mind when writing a case would include security and cost; no company is likely to be keen to have to resupply you with a desktop machine that costs three or four times as much as everyone else's Windows boxes.
I do some teaching on an Open University course here in the UK which uses the concept, and my experience is that many students, including experienced programmers, find it difficult to do. Common errors include:
- confusing the signature of the function (in terms of the types of permitted input) with the pre-condition. It may be true for some implementations of pre-conditions that you need to include information of the form "input is a string" but it isn't for the way we do it in the course. - ignoring input cases (e.g. giving a post-condition which only makes sense when the input is a non-empty string, but using a "true" pre-condition); students know theoretically that every possible permitted input needs to have an appropriate output in the post-condition but can't put this into practice - difficulty in creating conditions which are precise; this is both in the early part of the course, which uses English language conditions, and later on when algebraic conditions are introduced - designing tests which use inputs which fail the pre-condition (which is partly because the testing tool used in the course doesn't check the validity of the pre-condition, so invalid inputs can produce sensible looking outputs) - confusion between pre- and post- condition rules: they often want to restrict the input by changing the post condition
It seems to be the case that it is at a particular level of abstraction vs practicality that many find difficult to cope with.
Yes, indeed - EUNet claimed to be the first when I worked for an ISP back in the mid-1990s (we poached the guy who put the wires in for the first commercial connection). I think Pipex was the first home user ISP. (Assuming we can ignore Compuserv.)
This sounds like something that classical music groups have tried in the UK, and it seems to work well. The scheme I know a bit about involved the Birmingham Contemporary Music Group's Sound Investment http://www.bcmg.org.uk/sound_investment.asp; supporters get closely involved in the commissioning of new works.
In the rock world, didn't Marillion get members of their fan club to finance a new album when they were dropped by their record company?
I don't know if this is the first time a group of workers has been laid off by email quite so brusquely, but it's something Frank Herbert (of Dune) had happen in his seventies novel The Dosadi Experiment. From memory, it goes something like:
Keila's terminal showed a new message, coded 9BPRW. She smiled. Good old 9BPRW - bad news develops its own standard features. She opened the message:
The Demopol has determined that some posts are surplus to requirements. If your job title following this message is underlined, you are hereby terminated.
Senior Liator
(She's pleased about it because she hacked the system to sack her - part of a complicated plan to take over the world.)
It's something that seems obvious to me but I've never seen comments on it (maybe my reply threshold on Slashdot is set too low), that we're always seeing virus/worms/malware/zombie nets as something used by criminal hackers, but presumably they're as important a tool in "legitimate" warfare. Does the CIA own your Windows box? What viruses have MI5 created?
One important thing to remember which comes before you can do any actual usability testing is that you need to know about the potential users for the product. You have to bear them in mind during the design of the program; miyako touches on this by mentioning making your application look like other applications and what this means, but there is more to this. If your application is closely linked to another (a Firefox extension, maybe), then the users will be users of the other application and will have expectations based on how they use this application. So it needs to fit into the design decisions made for the other application. (That doesn't mean that your application can't be innovative - look at all the wonderful Firefox extensions there are.)
Many applications are more standalone, though, so you would then need to consider how your software fits in with your users' general experience of computer usage. This will be massively different if your users are software engineers than if they are gamblers in a Las Vegas casino than if they are old age pensioners communicating with grandchildren than if they are receptionists on a hotel front desk (and so on). Knowing how your users currently do the job your application is going to perform for them is really useful (and what they like/dislike about how this procedure). Too much innovation in terms of user activities (this is not just in terms of the actual interface, but in how the software does its job) will make it hard for users to start using the application. Google didn't re-invent the search engine interface completely; what they did shares many features with the interfaces used by Altavista and Lycos before it came into existence. What they did was to improve the experience that the users of search engines already had, by concentrating on what they wanted to do: get relevant content quickly and simply. So the Google interface is a streamlined version of other search engines circa 1998, but the major innovations are ones the user doesn't see (the relevance algorithm).
I guess this can be summed up as: do formative user research to work out how you will present your application to them, as well as testing how good it is when you've got a prototype.
The biggest problem I have is compatibility with MS Office. I have been using Open/Star Office for some years, but I work with people who want to work with MS Office products, so this has been a major issue for me. I really need both way compatibility - my line manager likes me to be able to read his documents and vice versa.
It is getting better (OpenOffice 2.0 is a big leap forward), but I still find that there are issues. These seem to be far worse for spreadsheets and presentations than for word processed documents, and I have ended up using gnumeric for spreadsheets rather than OpenOffice Calc; I would be doing the same for presentations, but I've not got round to checking out some of the alternatives. It is mainly formatting that is a problem, with different page breaks on Word documents sent me by colleagues, occasionally text hidden behind graphics etc. Although the problem with presentations seems the same, my presentations tend to confuse Powerpoint's layout engine much more severely: one bullet point that goes over the page boundary, and all the fonts from then on get massively confused. (WMy manager and I recently co-authored a presentation for the Internet2 spring meeting, and ended up sending text files containing the bullet point text as well as the Powerpoint files in order to be able to work together.) Font compatibility is probably a major cause of these issues, so it's not all precisely OpenOffice's fault. However, it should be easier for a novice to create documents which are readable.
Volume is definitely one of the main reasons my partner and I stopped going to cinemas - the amplification suddenly got louder about the time of the Star Wars special edition re-releases (1998ish). My partner suffers from noise sensitivity. We haven't been back since then, and we've found that it's now driving us out of live theatre too - and she has a masters in drama, so it would take a lot to do this. (Since when does Shakespeare require loud dance music?) If the watching environment is intolerable, we'd rather wait until it comes out on video, or even until it comes round on TV.
It's been almost a week since this was originally posted - and I'm curious as to whether the poster has followed what's been said and whether they've tried to apply any of the suggestions (and what the boss' reaction was).
Then again, maybe they've been too busy with the sysadmin to read/. all week!
"If you can set something up that is really kickass from the get go, then you can probably keep the amount of admin time per week in the future really low, but not down to 1%. Of course, this requires basically not programming for awhile just to plan and set everything up."
Not only that - without sysadmin experience, it's going to take you longer and be much harder to set something up that's of high quality not to need a lot of upkeep. (Unless you're someone who expects not to make any mistakes, is confident that any documents you use are bang up to date, and that the only criterion being used to decide how the system is designed is to minimise future sysadmin time.) It'd probably in my opinion be better financial sense to employ a consultant at least for the set up stage, particularly if they can help you get started and get you to understand the system. Even then, it'll probably take all of your time to start with, just to get your head round all the tasks that need to be done.
As I think everyone has said (yes, I want to be modded redundant!), 1% is ridiculously optimistic. Accept it if you have to, but you should try to insist on keeping records of time spent on sysadmin tasks and reviewing the situation on a regular basis.
I had carpal tunnel problems a few years ago (ended up in hospital. My problems were made worse because I'd had a broken right thumb in my teens that hadn't been set properly, so what helped me may not help everybody. This is what I found helped: 1 Finger exercises (suggested by hospital doctor) - When I first had the problem, I couldn't actually complete a full set of these. They consist of different exercises, each repeated five times. Before starting, rest the elbow on a surface, holding the wrist a few inches above the surface, palm down. Then, lift and lower the hand five times, moving vertically but not horizontally, pivoting at the wrist. Second, still holding the wrist still, move the hand horizontally but not vertically, left and right five times. Third, clench and unclench a fist five times. Fourth, rotate the hand so the palm is up, and turn it back over five times. For the fifth excercise, you can move your wrist. (This is the difficult exercise, in my experience.) For each of your fingers in turn, run the tip of the thumb from the tip down to the base; repeat five times. 2. Get an ergonomic keyboard and ensure that all your computer equipment is set up to best help your posture. It only took me a few days to relearn how to type on the slightly different layout. I still use the Microsoft keyboard I got at the time. 3. The first two solved the problem for some time; when I had a recurrence, I saw a physiotherapist who basically suggested taking up the excercises regularly again and adding to them something to strengthen the muscles in the wrist and hand. Her suggestion was to get a rubber ball and squeeze it when not doing anything with the hand (e.g. when reading or watching TV).
We've just received a new birdbath for our garden. Believe it or not, it comes with operating instructions, including "Always hold the birdbath horizontally when filling it with water."
Do you think that the manufacturers had support calls along the lines of
Caller: No matter how much water I pour into the birdbath, it won't fill up. Support engineer (or whatever birdbath support function is called): Have you tried ensuring that it's horizontal so the water doesn't flow out?
One of Brian Stableford's novels, Architects of Emortality, has a murder committed using a bunch of genetically modified flowers which are tailored to kill a specific victim through (I think) the pollen. The novels are full of different ways genetic modification and nanotech could be used, including plagues and adding to longevity.
I live in the UK, and in our local paper there was an account a couple of weeks back about a local school which had installed closed circuit TV in the toilets. So this view of things is not so far from reality.
I have never worked for a large company, so this may not be a helpful suggestion. However, where I work now (a Uni) does have a similar policy of Windows only, and specifically the Standard Build with specific apps only. This policy is relaxed a little for those who need to be able to install and test software. The issue is support: the IT Services people do not want to have to support anything that isn't known and understood by them. So by stating to management that we were willing to have no support from IT Services, and putting together a case for it to improve productivity) a colleague and I were able to persuade management that it would be worth their while to let us install Linux on our desktop machines.
Putting together a credible case is important; if you don't do this, you won't get anywhere, and even if you do get shot down, having one will make people question a decision that seems to go against common sense. (Which might help the next person, even if it doesn't help you.) The key issue is productivity. If you will be more productive, and the change will not reduce the productivity of others such as support staff, then it should be possible. Other issues to bear in mind when writing a case would include security and cost; no company is likely to be keen to have to resupply you with a desktop machine that costs three or four times as much as everyone else's Windows boxes.
I do some teaching on an Open University course here in the UK which uses the concept, and my experience is that many students, including experienced programmers, find it difficult to do. Common errors include:
- confusing the signature of the function (in terms of the types of permitted input) with the pre-condition. It may be true for some implementations of pre-conditions that you need to include information of the form "input is a string" but it isn't for the way we do it in the course.
- ignoring input cases (e.g. giving a post-condition which only makes sense when the input is a non-empty string, but using a "true" pre-condition); students know theoretically that every possible permitted input needs to have an appropriate output in the post-condition but can't put this into practice
- difficulty in creating conditions which are precise; this is both in the early part of the course, which uses English language conditions, and later on when algebraic conditions are introduced
- designing tests which use inputs which fail the pre-condition (which is partly because the testing tool used in the course doesn't check the validity of the pre-condition, so invalid inputs can produce sensible looking outputs)
- confusion between pre- and post- condition rules: they often want to restrict the input by changing the post condition
It seems to be the case that it is at a particular level of abstraction vs practicality that many find difficult to cope with.
Yes, indeed - EUNet claimed to be the first when I worked for an ISP back in the mid-1990s (we poached the guy who put the wires in for the first commercial connection). I think Pipex was the first home user ISP. (Assuming we can ignore Compuserv.)
This sounds like something that classical music groups have tried in the UK, and it seems to work well. The scheme I know a bit about involved the Birmingham Contemporary Music Group's Sound Investment http://www.bcmg.org.uk/sound_investment.asp; supporters get closely involved in the commissioning of new works.
In the rock world, didn't Marillion get members of their fan club to finance a new album when they were dropped by their record company?
Keila's terminal showed a new message, coded 9BPRW. She smiled. Good old 9BPRW - bad news develops its own standard features. She opened the message:
The Demopol has determined that some posts are surplus to requirements. If your job title following this message is underlined, you are hereby terminated.
(She's pleased about it because she hacked the system to sack her - part of a complicated plan to take over the world.)
It's something that seems obvious to me but I've never seen comments on it (maybe my reply threshold on Slashdot is set too low), that we're always seeing virus/worms/malware/zombie nets as something used by criminal hackers, but presumably they're as important a tool in "legitimate" warfare. Does the CIA own your Windows box? What viruses have MI5 created?
One important thing to remember which comes before you can do any actual usability testing is that you need to know about the potential users for the product. You have to bear them in mind during the design of the program; miyako touches on this by mentioning making your application look like other applications and what this means, but there is more to this. If your application is closely linked to another (a Firefox extension, maybe), then the users will be users of the other application and will have expectations based on how they use this application. So it needs to fit into the design decisions made for the other application. (That doesn't mean that your application can't be innovative - look at all the wonderful Firefox extensions there are.)
Many applications are more standalone, though, so you would then need to consider how your software fits in with your users' general experience of computer usage. This will be massively different if your users are software engineers than if they are gamblers in a Las Vegas casino than if they are old age pensioners communicating with grandchildren than if they are receptionists on a hotel front desk (and so on). Knowing how your users currently do the job your application is going to perform for them is really useful (and what they like/dislike about how this procedure). Too much innovation in terms of user activities (this is not just in terms of the actual interface, but in how the software does its job) will make it hard for users to start using the application. Google didn't re-invent the search engine interface completely; what they did shares many features with the interfaces used by Altavista and Lycos before it came into existence. What they did was to improve the experience that the users of search engines already had, by concentrating on what they wanted to do: get relevant content quickly and simply. So the Google interface is a streamlined version of other search engines circa 1998, but the major innovations are ones the user doesn't see (the relevance algorithm).
I guess this can be summed up as: do formative user research to work out how you will present your application to them, as well as testing how good it is when you've got a prototype.
The biggest problem I have is compatibility with MS Office. I have been using Open/Star Office for some years, but I work with people who want to work with MS Office products, so this has been a major issue for me. I really need both way compatibility - my line manager likes me to be able to read his documents and vice versa.
It is getting better (OpenOffice 2.0 is a big leap forward), but I still find that there are issues. These seem to be far worse for spreadsheets and presentations than for word processed documents, and I have ended up using gnumeric for spreadsheets rather than OpenOffice Calc; I would be doing the same for presentations, but I've not got round to checking out some of the alternatives. It is mainly formatting that is a problem, with different page breaks on Word documents sent me by colleagues, occasionally text hidden behind graphics etc. Although the problem with presentations seems the same, my presentations tend to confuse Powerpoint's layout engine much more severely: one bullet point that goes over the page boundary, and all the fonts from then on get massively confused. (WMy manager and I recently co-authored a presentation for the Internet2 spring meeting, and ended up sending text files containing the bullet point text as well as the Powerpoint files in order to be able to work together.) Font compatibility is probably a major cause of these issues, so it's not all precisely OpenOffice's fault. However, it should be easier for a novice to create documents which are readable.
Isn't superconductivity a discovery then?
Volume is definitely one of the main reasons my partner and I stopped going to cinemas - the amplification suddenly got louder about the time of the Star Wars special edition re-releases (1998ish). My partner suffers from noise sensitivity. We haven't been back since then, and we've found that it's now driving us out of live theatre too - and she has a masters in drama, so it would take a lot to do this. (Since when does Shakespeare require loud dance music?) If the watching environment is intolerable, we'd rather wait until it comes out on video, or even until it comes round on TV.
It's been almost a week since this was originally posted - and I'm curious as to whether the poster has followed what's been said and whether they've tried to apply any of the suggestions (and what the boss' reaction was).
/. all week!
Then again, maybe they've been too busy with the sysadmin to read
"If you can set something up that is really kickass from the get go, then you can probably keep the amount of admin time per week in the future really low, but not down to 1%. Of course, this requires basically not programming for awhile just to plan and set everything up."
Not only that - without sysadmin experience, it's going to take you longer and be much harder to set something up that's of high quality not to need a lot of upkeep. (Unless you're someone who expects not to make any mistakes, is confident that any documents you use are bang up to date, and that the only criterion being used to decide how the system is designed is to minimise future sysadmin time.) It'd probably in my opinion be better financial sense to employ a consultant at least for the set up stage, particularly if they can help you get started and get you to understand the system. Even then, it'll probably take all of your time to start with, just to get your head round all the tasks that need to be done.
As I think everyone has said (yes, I want to be modded redundant!), 1% is ridiculously optimistic. Accept it if you have to, but you should try to insist on keeping records of time spent on sysadmin tasks and reviewing the situation on a regular basis.
I had carpal tunnel problems a few years ago (ended up in hospital. My problems were made worse because I'd had a broken right thumb in my teens that hadn't been set properly, so what helped me may not help everybody. This is what I found helped:
1 Finger exercises (suggested by hospital doctor) - When I first had the problem, I couldn't actually complete a full set of these. They consist of different exercises, each repeated five times. Before starting, rest the elbow on a surface, holding the wrist a few inches above the surface, palm down. Then, lift and lower the hand five times, moving vertically but not horizontally, pivoting at the wrist. Second, still holding the wrist still, move the hand horizontally but not vertically, left and right five times. Third, clench and unclench a fist five times. Fourth, rotate the hand so the palm is up, and turn it back over five times. For the fifth excercise, you can move your wrist. (This is the difficult exercise, in my experience.) For each of your fingers in turn, run the tip of the thumb from the tip down to the base; repeat five times.
2. Get an ergonomic keyboard and ensure that all your computer equipment is set up to best help your posture. It only took me a few days to relearn how to type on the slightly different layout. I still use the Microsoft keyboard I got at the time.
3. The first two solved the problem for some time; when I had a recurrence, I saw a physiotherapist who basically suggested taking up the excercises regularly again and adding to them something to strengthen the muscles in the wrist and hand. Her suggestion was to get a rubber ball and squeeze it when not doing anything with the hand (e.g. when reading or watching TV).
We've just received a new birdbath for our garden. Believe it or not, it comes with operating instructions, including "Always hold the birdbath horizontally when filling it with water."
Do you think that the manufacturers had support calls along the lines of
Caller: No matter how much water I pour into the birdbath, it won't fill up.
Support engineer (or whatever birdbath support function is called): Have you tried ensuring that it's horizontal so the water doesn't flow out?
One of Brian Stableford's novels, Architects of Emortality, has a murder committed using a bunch of genetically modified flowers which are tailored to kill a specific victim through (I think) the pollen. The novels are full of different ways genetic modification and nanotech could be used, including plagues and adding to longevity.
I live in the UK, and in our local paper there was an account a couple of weeks back about a local school which had installed closed circuit TV in the toilets. So this view of things is not so far from reality.