only the most meager of modern technological comfortsgilligan and his cohorts must resort to scratching out living using the resources naturally available in episode after episodewe observe the professor developing exquisitely intricate tools for doing the business of life on their remote islandonly to be foiled in the implementation phase by the ever-bungling gilligan but clearly it was never poor gilligan' fault how could one possibly be expected to implement designs for such sophisticated applications as home appliances and telecommunications devicesgiven the rudimentary technologies available in such an environmenthe simply lacked the proper tools for all we knowgilligan may have had the capacity for engineering on the grandest level but you can' get there with bananas and coconuts and pathologicallytime after timegilligan wound up inadvertently sabotaging the best of the professor' plansmisusingabusingand eventually destroying his inventions if he could just pedal his makeshift stationary bicycle faster and faster (he was led to believe)all would be well but in the endinevitablythe coconuts were sent hurling into the airthe palm branches came crashing down around his headand poor gilligan was blamed once again for the failure of the technology dramatic though this image may besome observers would consider it striking metaphor for the software industry like gilliganwe software engineers are often asked to perform tasks with arguably inappropriate tools like gilliganour intentions are soundbut technology can hold us back and like poor gilliganwe inevitably must bear the brunt of management' wrath when our systems are delivered behind schedule you can' get there with bananas and coconuts doing the right thing of coursethe gilligan factor is an exaggerationadded for comic effect but few would argue that the bottleneck between ideas and working systems has disappeared completely even todaythe cost of developing software far exceeds the cost of computer hardware and when software is finally deliveredit often comes with failure rates that would be laughable in other engineering domains why must programming be so complexlet' consider the situation carefully by and largethe root of the complexity in developing software isn' related to the role it' supposed to perform--usually this is well-definedreal-world process ratherit stems from the mapping of real-world tasks onto computer-executable models and this mapping is performed in the context of programming languages and tools the path toward easing the software bottleneck must therefore lieat least partiallyin optimizing the act of programming itself by deploying the right tools given this realistic doing the right thing