The main answer, at least in my own career, is this:
Lack of formal architecture training.
I'm self taught, as many web devs are.
Now, I was considered a pretty good Web Dev, by Web Dev standards, but I noticed that the projects my team was working on ran into common problems.
No matter what fancy programming methodologies and delivery tools we were using, we always reached a point where the solution ossified and became difficult to develop for. This meant that in projects with complex requirements we always overran.
Also, while we could make the client happy on delivery, we struggled to *keep* them happy.
We tried 'Agile', we tried 'Extreme', we tried a thousand different buzzwords, but nothing worked.
As a Web Dev, when you see this happening, there are two ways you can go.
You can:
A: Accept this as a reality of the field, and carry on as before. You can then have a breakdown at thirty and never work again.
B: Refuse to accept crappy software and look for a better way. If you're thoughtful, and not too vain to learn the lessons of the sages, you discover the Gang of Four, Design Patterns, etc, and achieve enlightenment.
I went for B and finally, after ten-odd years as a professional, am finally writing good software that *stays* good.
Instead of a touch screen, how about letting them control a computer with a projecter and a modded dance mat? With a little ingenuity, the dancemat could be anything you like; Big colourful pictures of icons to explain how a desktop works, or even just directional buttons to control any interactive display you like.
Dance mats, by their nature, are designed to be hardwearing, and the little tykes will probably enjoy jumping around like nutters. Of course, you'll probably need to do a risk assessment on them. Heaven forfend they should be subject to the laws of gravity, precious little angels that they are.
I've put Karmic on both my main machines; my x86 netbook and my Athlon X3 desktop.
The karmic install on my netbook was absolutely flawless, and Karmic on my netbook is a joy to behold. Waaaay faster, much better with multiple apps, more useful features (Gwibber integration with notifier-applet is a special ) and a much-improved UI.
But...
Karmic on x64 was an absolute pig.
Jockey worked on the livecd but not the full install, which makes precisely no sense. Not a particular problem for me, the only restricted driver I needed was the nvidia blob, and I could install that manually. The drive naming process, however, has been a nightmare. I haven't had to edit/etc/fstab in years, but I had to in order to give my external HDD a consistent mount point. The volumes tab simply refused to work. Getting my MTP MP3 player to work has also been an absolute sod.
I'm a loyal ubuntu user, but their release cycle is so hit-and-miss that it's just not safe to be an early adopter. I try not to complain too hard, at the end of the day, I'm getting a world class OS for free. But it frustrates me that their QA Process focuses so much on the new and the shiny and less on the core experience. I know from experience that within a month or so it'll all be peachy and I'll love ubuntu more than ever, but...why not just release it in a month or so, when it's ready?
(Note to self; why not just install it in a month or so, when you know it'll be fine, idiot?)
(Answer to self: I like new! I like shiny!)
The main answer, at least in my own career, is this: Lack of formal architecture training. I'm self taught, as many web devs are. Now, I was considered a pretty good Web Dev, by Web Dev standards, but I noticed that the projects my team was working on ran into common problems. No matter what fancy programming methodologies and delivery tools we were using, we always reached a point where the solution ossified and became difficult to develop for. This meant that in projects with complex requirements we always overran. Also, while we could make the client happy on delivery, we struggled to *keep* them happy. We tried 'Agile', we tried 'Extreme', we tried a thousand different buzzwords, but nothing worked. As a Web Dev, when you see this happening, there are two ways you can go. You can: A: Accept this as a reality of the field, and carry on as before. You can then have a breakdown at thirty and never work again. B: Refuse to accept crappy software and look for a better way. If you're thoughtful, and not too vain to learn the lessons of the sages, you discover the Gang of Four, Design Patterns, etc, and achieve enlightenment. I went for B and finally, after ten-odd years as a professional, am finally writing good software that *stays* good.
Instead of a touch screen, how about letting them control a computer with a projecter and a modded dance mat? With a little ingenuity, the dancemat could be anything you like; Big colourful pictures of icons to explain how a desktop works, or even just directional buttons to control any interactive display you like. Dance mats, by their nature, are designed to be hardwearing, and the little tykes will probably enjoy jumping around like nutters. Of course, you'll probably need to do a risk assessment on them. Heaven forfend they should be subject to the laws of gravity, precious little angels that they are.
I've put Karmic on both my main machines; my x86 netbook and my Athlon X3 desktop. The karmic install on my netbook was absolutely flawless, and Karmic on my netbook is a joy to behold. Waaaay faster, much better with multiple apps, more useful features (Gwibber integration with notifier-applet is a special ) and a much-improved UI. But... Karmic on x64 was an absolute pig. Jockey worked on the livecd but not the full install, which makes precisely no sense. Not a particular problem for me, the only restricted driver I needed was the nvidia blob, and I could install that manually. The drive naming process, however, has been a nightmare. I haven't had to edit /etc/fstab in years, but I had to in order to give my external HDD a consistent mount point. The volumes tab simply refused to work. Getting my MTP MP3 player to work has also been an absolute sod.
I'm a loyal ubuntu user, but their release cycle is so hit-and-miss that it's just not safe to be an early adopter. I try not to complain too hard, at the end of the day, I'm getting a world class OS for free. But it frustrates me that their QA Process focuses so much on the new and the shiny and less on the core experience. I know from experience that within a month or so it'll all be peachy and I'll love ubuntu more than ever, but...why not just release it in a month or so, when it's ready?
(Note to self; why not just install it in a month or so, when you know it'll be fine, idiot?)
(Answer to self: I like new! I like shiny!)