From the Editor
I am lucky enough to be friends with one of the most talented guys in the software development space. Jeff Richter and I have been friends for over 5 years, and he was one of my first contacts and clients in the world of .NET.
Jeff currently works at Wintellect. Jeff has been recognized as a Software Legend, is the author of "CLR via C#", "Applied Microsoft .NET Framework Programming", "Advanced Windows", and many other books (14 in total), and has been a featured speaker at many industry events including Microsoft’s PDC and TechEd conferences. Over the course of his 30 years in the software industry, Jeff has seen many changes, from the beginnings of MFC, through the dotcom bust, to the maturity of .NET. Jeff’s experience spans all facets of software development. Since he was going to be in San Jose, CA, teaching, the week of January 23, I thought, who better to be the first Insider interviewee than one of the industry's top Software Legends.
On the drive to the Cirque du Soleil show, Jeff and I talked about his company (Wintellect), working at Microsoft (what is he doing now?), his interests (what makes Jeff tick?), and most importantly, his family. This will be a four part series, highlighted on the Insider and CodeProject, over the next few weeks.
If you'd like to sign up for The Code Project Insider,
click here and check the box beside "Code Project Insider".
Part 1: Wintellect
Insider: How did you start working with the Wintellect guys?
Jeff Richter: John Robbins, Jeff Prosise, and I had met when we were working at David Solomon Expert Seminars.
Insider: How long ago was that?
Jeff Richter: I was the first of the three of us to join David, and it was probably around 1995 when I joined. I was doing Win32 programming classes back then. Jeff [Prosise] was doing MFC, and then he also did a COM class, and John [Robbins] had just started with David doing a debugging seminar. Then David got to the point where he was doing almost all marketing, and wasn’t having much fun, so he decided to stop marketing the rest of us. So, we then decided that we were going to form our own company. With three technical partners, we knew we needed some business assistance, so we were in search of a business person. Jeff [Prosise] knew Lewis Frazer, so John, Jeff, and I decided to have a phone interview with him. We all agreed that Lewis was a nice fit. Together, we put some money in, and started Wintellect. Wintellect will be 6 years in May 2006.
Insider: Do you still like the training business?
Jeff Richter: I do. I don’t like the airplane and flying part, but I do like being in other places, I like meeting new people, and I like interacting with people. I like it when you see their face light up - you can see the light bulbs in their head go off when you have taught them something new that they will find useful. You can tell that they see that their job is going to be made easier, they will be more productive with the cool features.
I think that software improves our lifestyles. It is in everything we do - our cars, washing machines, microwave ovens; and I think the more that, people who are able to write software and be more productive with it, are making other things that improve everyone’s style of living. I like being part of that.
Insider: You are a cog in the wheel of life (laughter).
Jeff Richter: (laughter) Yes, that is right.
Insider: Contributing to the betterment of everyone...
Jeff Richter: Yes, that is why I write my books, that is why I write my magazine articles, it is all of that. I think that in some way, I am playing a part in improving the lifestyle of so many people on the planet.
Insider: It is probably very true since you are influencing developers to create better products for everyone to use. You are making them smarter (laughter).
Jeff Richter: (laughter)
Insider: How has Wintellect changed from when it first started six years ago to where it is now?
Jeff Richter: We started the company mostly as a training company, but we wanted to leave ourselves open to do consulting work, architectural design, and helping customers fix bugs in their software. So, we originally started with that charter. Over the years, we have seen more growth in the consulting/debugging parts of the business than in the training. We still do the training, and we like that, it is still a big part of our business, but we are definitely beefing up our efforts in the consulting and debugging part. I find that fun too in a way, because you are working on a specific problem. When I teach, there is not a lot of creativity for me in teaching since I have already created the slides, demos, and labs. I am just re-telling the story over and over again; there is some reward in that, sure, but when someone comes to you and says we have this problem, and then you have to think about how you are going to solve that problem in a cost effective way and with the least amount of code and make it maintainable, etc., that is a different kind of problem that inspires creativity and I enjoy that a lot too.
Insider: How have you seen the software industry change in the last 6 years?
Jeff Richter: Well, probably the biggest change for developers has been in abstraction layers. After you master an abstraction layer, you can be much more productive, and improvements in CPU speed and cheaper memory has allowed the industry to make significant improvements in abstraction layers. But, I can remember when I was first learning MFC. MFC is an abstraction layer that is supposed to make Win32 programming easier. I used to say: “With MFC, I can do it in just one line of code but it will take me an hour to figure out where that line should go.” It took me a long time before I really mastered that layer to really gain productivity.
Of course, .NET is another abstraction layer and developers can be extremely productive with it, but mastering it takes quite some time. It took me a while, and I actually consult on Microsoft’s CLR team which produces it! It is a massive abstraction layer with its own file loader, memory management system, security system, threading models, execution model, error handling model, and so on.
If I were to try to predict the future, I’d say that there are two big initiatives brewing. First, I think the next big abstraction model is much more about markup and less about programming languages. We already see HTML as a “programming language” that instructs a browser how to layout a web page. ASP.NET uses markup as a way to describe the controls, their properties, and their behavior, when designing a Web Forms application. And Windows Presentation Foundation uses XAML (another markup language) as a way to describe the controls, properties, and behaviors for a UI application. I expect this trend to continue in a big way.
The second big initiative that I see brewing has to do with asynchronous programming and taking advantage of the hyper-threaded and multi-core CPUs that are coming out in the market these days. Programmers should really start thinking about how to leverage all the CPU power that exists in a user’s machine. The CLR and class library teams at MS are spending a lot of time thinking about how to modify the existing libraries (or create new libraries) that really leverage this CPU power. To really leverage this power, developers will have to start making asynchronous method calls when performing I/O-bound tasks (like file or network access). Developers should start doing this today.
Insider: What is your current involvement with Wintellect?
Jeff Richter: I am a partner in the company, so I am involved with setting the direction and with deciding how we allocate resources. I also meet with many potential customers to explain our offerings and why we are better than the competition. I also teach a .NET class, and I have just produced a 2-day .NET Threading class that explains to developers to how to build high-performance, scalable, reliable, and responsive applications and servers. I’m very excited about this class, and so far, the interest in it has been overwhelming.
I also do consulting work for some customers. I do architecture reviews, some design and coding work, or sometimes, I’m brought in to find a bug or to improve the performance of a customer’s system. This is always fun for me because it’s always different and I always learn new things myself.
Insider: What technologies are you and Wintellect focusing on?
Jeff Richter: Wintellect always stays on top of new MS technologies too. So, we are focusing on Windows Communication Foundation, Windows Presentation Foundation, Windows Workflow Foundation, Windows Vista, and all that stuff. Due to all the interest within and outside of Microsoft, I’ve been focusing more and more on the threading stuff. I have always loved threading, asynchronous programming, and thread synchronization. My Advanced Windows book had 5 chapters on it, and my new .NET book has 2 chapters on it. I have a ton of experience in this area. So, as I said, I produced a Wintellect course, and I do a lot of consulting in this area as well. I am also personally spending time on the new C# 3.0 features, including Linq, XLinq, and DLinq, and am also focusing my energy on the Windows Communication Foundation.
Insider: What are Wintellect’s plans for the future?
Jeff Richter: Over the past 6 years, Wintellect’s revenues and customer base have been growing steadily. We have recently done some things to really bolster our consulting business; we expect big growth here. We have toyed with the idea of producing some software products as well. We have many ideas and some truly phenomenal people, but it is too early for me to go into any details on this stuff at this time. We also have our own Devscovery conference now. We’ve been doing this conference for about 3 years now (about 2 or 3 times per year), and we hope to build this up. This will allow us to reach more developers, and be more cost-effective for them too. The next conference is in April 2006 in New York, and then there is one in August 2006 on Microsoft’s campus in Redmond, WA. It would be great to meet some of your readers at either of these events.