If there is one question that i get asked most consistently, it is "As a dot-com CTO, what is your most difficult challenge?" Choosing just one may be the biggest challenge of all. Im confronted by all the challenges of any financial services organization: namely, to ensure that clients money and accounts are accurately accounted for and available to them—and only them. In the Internet space, that means being on constant alert. Challenges No. 1 and No. 2: ensuring the integrity of customer data and making sure our services are available all the time.
Perhaps even bigger challenges come from three facts of life in the dot-com world: Everything changes, very fast, with great uncertainty. Having once been a brick-and-mortar CTO, I can say that these challenges are multiplied by the world of Java and chips. Challenges No. 3 and No. 4: designing systems that are adaptable to many types of changes and that can effect changes rapidly.
As our users mature, they ask for ever-more-advanced features; as our business sponsors understand their markets better (or want to get into new markets), they ask for additional capabilities; as our vendors improve their systems, they ask us to upgrade to their latest releases; and, as technology advances, we want to bring new capabilities to our customers.
These forces can pull in different directions. Balancing the needs of current customers with the wants of potential customers is a special problem when you are trying to create products the world hasnt yet seen and build a business from scratch at the same time. It is a special challenge when you are simultaneously required to keep systems in continuous operation and expand capacity by orders of magnitude. Challenge No. 5: striking the right balance between the forces of change and the need for stability and reliability.
The challenges of the dot-com world are in many ways the challenges faced by any CTO. But in Internet space, theyre multiplied. I can only hope that I have met the biggest challenge developing a staff that understands its role in overcoming our challenges—and saving the CTO from making too many mistakes.