If someone would ask me "What would you attempt to do if you knew you couldn't fail" I would pick different things from time to time.
Right now, I would like to: Upgrade the technology of my company, from "2000 and late" to "the latest of 2012".
I might have a good chance because the company is aiming to be a leader in IT. So, I started thinking, what would it take to make that happen?
Sure, some better process around how things are done, adding collaboration between different areas of the company, setting the foundation for Agile development, have a mind set of improving constantly and continuously on every area, they all help. But then it comes to a point where you need technology to support this momentum, to keep the desire going, to look beyond the necessity and to bring in innovation. What would it take to get there?
1. Good Development Machines
In our days, people are developing, building, deploying from their cell phones! Continuously! Technology is at a point where all you have to do is ask for it and it is all there for you. Price of machines and memory don't cost an arm and a leg anymore. Why do you skim on the Developer machines? From a revenue point of view, better machines bring higher performance and higher productivity. From the agile development point of view, they bring faster results and faster feedback. From the developer(read: geeky) point of view they bring joy, desire to work and, eventually innovation. To become a leader in IT, you need super star developers and super star network admins. Would be hard to find them! But then, if you do not back them up with the right technology and mindset to push the usage of technology to the limit, it would be the same as the Russian team on 1980 Olympics, http://en.wikipedia.org/wiki/Miracle_on_Ice.
Here the picture of the US team. THIS is what you want to see!
There is a whole bunch of machines that are lined up against a wall and they are called "The Lab". Those are machines where developers can download, install and test ideas. Guess what? They have the same problem as the Dev machines. The computers at my daughter's elementary school are better machines than those.VM can't run.Only Remote Desktop.
2. Permission access
Because of a bad negotiation on help desk support, Dev environment have restricted access on their own machines. Things like no access to their C drive, not allowed to download/install/test applications that are not part of the default Dev image (or the support will be revoked!!), limited access to internal environments, etc. They have found ways around these issues, they have created shortcuts and downloaded cmd.exe (was missing from the default image!!). But why would you want to spent Dev time in hacking around for something they should have? The best place to put the $ when it comes to Dev time is Development, exploration of new techniques, upgrade of system architecture, test improvements, roll updates/upgrades.
Talent is hard to find. If you find it, you need to keep it close, keep it happy, don't limit it with old technology, old applications and old ways of controlling permissions.