Looking ahead to 2008, and back at 2007
Looking ahead to 2008
Happy New Year! Wow, what a year 2007 turned out to be for me both personally and professionally. Last January Anthony and I were still talking about the company and its future. I spent some time yesterday reflecting on the year, and I have to say it was pretty amazing. You can’t look to the future without examining your past, so that I what I did first. I broke them down by quarter in my own mind, so that is how I am going to write it up as well.
Q1 2007 – Talks with VistaDB were just starting. 3.0 was entering final design phase for the release, and some pretty major changes were made at the last minute. SQL Server datatypes were not even introduced until the very end! We had zero NUnit tests, no code coverage analysis, and the build was in bad shape. 3 Builds in the first quarter, and each had its share of regressions and changes. There was no formal bug tracking in place, and bugs were never added to any sort of regression suite to ensure they didn’t return.
Q2 2007 – I officially took over VistaDB April 1 (which is my birthday). I was involved prior to that, but this was the official switch over date. On almost the same day I signed the papers to acquire VistaDB I got the news that my Grandmother had brain cancer and was not expected to live much longer. Talk about highs and lows. NUnit tests were added (we had around 40 at the time). Regression testing started in earnest with my taking over the builds and formalizing the process. FogBugz was purchased and setup to stabilize the bug reporting and tracking. No more email box tracking of open issues! This was a great thing for everyone. We produced 11 builds this quarter, some were good, and some were bad. Regression testing was still rough and we slipped a few times. Overall though the engine was starting to stabilize, and features were becoming more fully tested. And my Grandmother passed away. It was a very emotional time for my entire family. I know I was short with people during this time without anyone understanding why, I apologize. There was a LOT going on and I felt a tremendous amount of stress during this time.
Q3 2007 – New features started being added for the first time. New documentation and tests were being written on a daily basis. And we started testing for SQL Server compliance in a lot of the parser syntax (this had never been done before). We also formally decided to delay the server edition to stabilize the engine and get TSQL Stored Procs in before we went to the server version. We laid out a development plan for the rest of the year, and we actually did a pretty good job of following it. We produced 9 builds during this quarter, but the most important aspect of it was that major new development took place. 3.2 was released and the engine really started to stabilize with the additional testing and regression tests we put in place. I really feel that the momentum swung in our favor around this time. New features were being added without breaking existing functions, and we continued our quest to improve the SQL parser and compliance.
Q4 2007 – It became clear to us that the existing website was long in the tooth and needed to be overhauled. What was not clear was how and when we were going to do it (see below for the conclusion of this saga). We also attended a tradeshow (DevLink) and got to meet a lot of interesting users, but more importantly we got to speak with people who use VistaDB on what they really need. 3.3 features were decided upon, and work piled on for us to complete before the end of the year. We produced 9 builds this quarter as well. I thought we hit a good mix of development builds versus stable builds. We exposed new features rapidly to get feedback from users. The feedback was fantastic, even if it did make us add more to the list of things to accomplish for 3.3. We really pushed the schedule for 3.3 and added a ton of new features from user requests. 3.3 is going to be a fantastic release. VistaDB 3.3 was released on the very last day of the year. Overall I think we were a little over aggressive in adding features, but they really did all need to be there. There are just some things you can’t add half way, and we added a lot. TSQL Procs and User Defined Functions (UDFs) turned out better than I had hoped at the beginning of the quarter. The guys did a fantastic job of adding new features without breaking the build, and without regression of the engine. Major new features were added without stepping on each other toes in the code. Documentation has continued to come along slowly, and the NUnit tests improve with each new build.
2007 as a whole
As a whole I am very, very pleased with what we as a team accomplished. The technical merits of the engine have improved remarkably in a very short period. But the most important thing to me was that we shared the experience with our users, and everyone supported us. We released rapidly, had a ton of development builds for testing, and the overall product quality has stepped it up a notch in my opinion.
Where we are lacking is in sales, marketing and business partners. The website and store have to be overhauled, and the training of new users to ADO.NET and VistaDB needs serious work. This is not just documentation; it is also samples, case studies and tutorials.
We do have a few strong partners, but we need to do much more to get the word out about VistaDB. Not just about the engine, but about the philosophy of managed code, and why we are doing all this in the first place (the business case).
2008 – The year of LINQ?
So what about 2008? Looking forward I see a lot of opportunity for improvement in both the business and the technical implementation side of things.
Branching and the ability to experiment with what if’s is very weak in our current revision control system. We need the ability to run down a path and back up if it doesn’t work. We also need a way to merge changes back to stable builds while continuing development on new features. These are technical processes that every development house runs into. It is a combination of technical (software that supports these things) and business process (procedures in place to control the outcomes). The website redesign looks good, but the store is not complete. I guess sometimes I really do want it all.
I would like to have a dynamic system to add help content, and get feedback. But I can’t find one that does not cost more than a few high end luxury cars. The MSDN style documentation and feedback at the bottom is great, but I want more. I want users to be able to submit changes to docs and samples, almost like a Wiki. But who wants to have to learn Wiki syntax? Apparently not a lot of people, that was the overwhelming feedback I got last year when I mentioned it. Now that 3.3 is released the website and store are my next priorities personally.
Advertising and marketing – otherwise known as huge time and money sink with no feedback. We need to do a lot more marketing and getting out the word. We have a few more big profile users who are going to be releasing products in the coming months that use VistaDB (Graffiti CMS is a good example). This will help, but we need to honest to goodness press to talk about us and what we are doing. Microsoft has been helping us by mentioning us in some press releases around the upcoming Visual Studio 2008, and talking about our LINQ support. But we need a lot more.
Financially last year was not a resounding success, but we have to advertise and market to grow. Classic chicken and egg scenario. I don’t have an easy answer to this one.
LINQ is going to be huge this year. Visual Studio will be released next month to screaming masses of Geeks all over the planet (reserve your spot now for the launch parties). LINQ is one of those things that take time though. Not of lot of people "get it". And those that do are still wondering how it will pan out for maintenance of apps, and how many people they will find with the knowledge to implement it correctly. We will have a LINQ provider for the Entity Framework, but I don’t expect a lot of people to be using it for a while. First I think Microsoft screwed up with LINQ to SQL in the box to Visual Studio 2008 (the one with NO provider model), and then the Entity Framework will ship as a service pack later. This is going to hurt adoption of the Entity Framework in the short term. You will see a ton of articles on LINQ to SQL, and then people will blow off the EF initial write ups they see as a new way to do LINQ to SQL. The first technology they learn will be the one they stick with in most cases.
The VistaDB Server will be released this year. I do not expect it to compete with SQL Server. I get asked that question a lot. VistaDB Server will first be designed to get around the file sharing problems of Windows. The initial design is for only having to change your connection string to talk to the server (like VistaDB 2.x did). Throw in some caching, and basic management and that is the product. It is not going to have complex user permissions like SQL Server, or all the OLAP and other enterprise abilities. Our goal is not to match on a 1:1 basis. We are looking at what people actually use, and need for small and medium business uses. Single user is the in process engine, now scale that up to a few hundred users.
Sync Services are also on the roadmap for this year. We started implementing them last year, and then Microsoft ripped the rug out from under us by totally changing the API between beta releases. We dropped it at that point to wait for a more stable release. I understand things have stabilized now, so we will have to go back and revisit the API. It would be great to be able to sync PocketPC and Desktop machines, or multiple desktop machines; that is the minimum design criteria. But wouldn’t it be great to sync to a SQL Server? That would be really great.
We have a really, really big show for you…
Yes, this year is going to be another big year for us. Lots on the schedule, and as we firm things up I will continue to publish updates to the roadmap. I feel we will probably slow down on releases of the core engine now that 3.3 has been released, but we will start having builds for the server, sync, linq, etc.
Documentation and samples are always in the forefront of my mind. I try to go back at each new build and look at the product from a new user’s perspective. What are their first steps after installing? What do they see? How do they get started and excited about VistaDB?
Future engines of VistaDB are also something I think about. Where is the industry going? What about mixing unmanaged code for speed? What about changing out the storage engine for single user apps to get better performance? How close to the engine does the programmer want to go? Plugins to the engine itself? Performance counters? Debugging ability of SQL? Intellisense support?
Thanks as always to all of our users, we would not be here without you and we know it. If you have suggestions or feedback I am always willing to listen and discuss. Yes, development work takes time but I hope everyone can see we now have a proven track record of producing what we say we will.
We have no shortage of ideas of things to do, and to implement. Is VistaDB perfect? No, no software is ever done – it is just released.
We will continue to improve and release. Hope you will be along for the journey.
