My boss, Wei Wang, the CTO here at SnagAJob.com announced my resignation to the rest of the Engineering team a few hours ago. It went very well. Although Wei wishes I weren't making this change, he has been supportive of my decision and my reasons for making it. My peers on the Engineering team expressed some regret but they've also agreed to support me through the change. I reciprocated by giving SnagAJob.com a full four weeks of time for transitioning off of the projects I am heading up. It will take at least that long. I predict nights and weekends of effort to get finished in time.
I am anxious to get started as a Lead Consultant, Architect for CapTech Ventures on 25 August 2008. I have friends at CapTech already including Darrell Norton, Mark Hudson, Matt Borgard, Mark DiGiovanni, Mike Diiorio and Sam Nixon. I'm really looking forward to working with all the great professionals there. It's a great company with a reputation for results.
As the Software Architect here at SnagAJob.com, it has been my job to shepherd everyone through a long and difficult re-architecture process which started in May 2007 and ended in March 2008. It took over 47,000 person hours across every department in the company and was successful in almost every way. We started with a group of folks on the Engineering and Product teams who didn't know much about large scale software design. They were good programmers but honestly hadn't made the leap in their own minds to become developers yet. Over the past year and a half, I've worked day in and out to help them make the transition from programmers to developers. Many of them are now making the leap from developers to real software engineers. It's very exciting to see that kind of growth.
Serving SnagAJob.com has been extremely rewarding. Now I can stand silently in our scrums, just smiling and listening to our developers talk with authority about the risks of not having enough unit testing coverage. They talk about their behavioral and integration testing milestones and their mock object strategies as if they had been doing this for many years. They speak with confidence concerning security and n-tier architecture best practices. Service contracts, operation contracts, data contracts and fault contracts are an integral part of their vocabulary now. Their transformation has been nothing short of amazing. I am pleased, to say the least.
But there comes a time for every Software Architect when he must ask, "What's left for me to do?" It's often said that if you hire a salesperson who's not interested in making money, they will fail miserably. That's because their goals are all wrong. A salesperson's goals must be based on selling stuff and making money. And I think it stands to reason that software architects who can't imagine the day when they won't be needed any longer will never be truly successful either. This is because the goals of software architecture (and software engineering to a certain extent) are not the same as the goals for software development. Development is a set of tasks that lead to other tasks whereas design is a constrained short-term effort. Consider these analogies to make my point clear: How many building architects move into the buildings they design and live there forever? How many civil engineers throw out a tent under the bridges they design to keep an eye on them? You see, in the architectural world, good design is self-deprecating with respect to the current effort because it must be a finishable work. Businesses that depend on architecture of any sort would cease to function if this weren't true.
It's not that I can't continue to contribute here at SnagAJob.com. After all, every good architect has served as a software developer at some point in his career. And there's plenty of software development to do at SnagAJob.com. But much of the growth and planning now is vertical in nature, multiplying the business formula that's working well. My architecture is designed to scale for that. I don't need to stay here to watch it do what I built it to do. I believe that my architecture will also scale horizontally to new products and services as well. We've already observed that phenomenon since we released the new system in March. But, again, the team I will be leaving behind knows how to make horizontal growth happen using the techniques that I taught them.
At CapTech my new job will be to engage in a different sort of multiplicative effort. I hope to multiply the success I've had here at SnagAJob.com across many more companies. Jumping back into consulting makes a lot of sense for me at this stage of my career for all the reasons I've outlined above. To reverse (and hack) an old adage, "Software development is a journey but good software architecture is a destination." At CapTech, I hope to bring many companies to that destination so that their ensuing journies may be successful. I will miss my friends at SnagAJob.com sorely. This is an awesome company run by some of the best business minds with whom I've ever had the privilege to work. It's time for me to move on but if you are in high-tech or human resources worlds and you want to grow, check out SnagAJob.com. To my friends at CapTech, I'll see you soon.