Caporegime
This is offtopic, so I won't go into massive detail; but have you undertaken Scrum development in your gaff? It's an amalgamation of Agile and XP, and it is very, very useful - especially when you need to deliver monthly/weekly.I don't do "science" development but I certainly don't do monkey coding either IMO. I write multi-threaded code on a daily, even hourly basis. Pretty much all the projects I work on are multi-threaded in some way. The projects I work on require research, prototyping etc - so there is a clear development process and path. We tend to use the "extreme programming" model because it tends to fit best with a small business and has least overheads. The bads points are that it doesn't scale well (although we fully intend to be bought out before we have more than a handful of developers... so not our problem! ) and also the long working hours. I often work evenings and sometimes weekends just to make sure the team are reaching the goals and finishing projects.
Being a successful developer is a lot more than writing code and knowing complex algorithms OTOH. You need to be business-minded as well in order to satisfy the businessmen of the company. If you aren't churning out polished code or visible progress on a week by week basis and they are having to go back to the customers saying "it's not quite ready yet" then they are going to get annoyed very quickly. Luckily I have the best relationship with the company director one could ever ask for which makes things easier. Also "good" developers understand that sometimes the best solution is not always the most elegant one. There are time constrants so sometimes "hacks" may be in order to fulfil a sale. It's up to the developer to almost instinctively know when to take a shortcut or less than optimal design in order to keep the customers happy.