SpatialKey Launch
The team over at Universal Mind has just launched a private beta of their flagship product, SpatialKey, a product that I first saw a prototype of back at Adobe MAX 2007.
visual epiphanies >
The team over at Universal Mind has just launched a private beta of their flagship product, SpatialKey, a product that I first saw a prototype of back at Adobe MAX 2007.
I just returned from a great summit meeting for BI hosted by Dashboard Insight, where I sat on a panel with other industry experts. It was a small group of about a dozen of us, and it was a great two day meeting. It was fantastic to have an opportunity to talk with other people who work with the same issues I face every day while working on BI stuff.
First a caveat, I come from a strong Microsoft background. Since 1995 when the web really started to take off I have used MS technologies almost exclusively. Prior to that, my experience in Pascal, C, Fortran, etc was all really on pre-PC systems. Circa 2004, I found myself as a Principal of a well known San Diego based MS gold partner consulting firm. I was responsible for delivering million dollar plus projects on the MS stack, and was a frequent speaker at MS events. At the time I thought MS was the best thing since sliced bread. They had phenomenal developer support, and went to great lengths to ramp people on their technology.
Well a lot has changed in the last few years, least of which is my impression of MS technologies. I always had a hard time understanding the prejudice I would see against MS technology, especially in the Fortune 1000 enterprise space, where even mentioning the name would get you a sour look from entrenched IT people. I pretty much chalked it up to unsubstantiated emotional prejudice on the part of non MS people who liked to look down their nose at MS technologies and the people who used them.
Now that I have departed from the MS stack and have been working almost exclusively with Adobe Flex and its related technologies for the past 2.5 years, I have been exposed to the other side of the coin. I still do/manage some .Net development for our web services, file I/O and DB related stuff, but it only takes less than 5% of my engineering time. The Flex community has a very open-source feel to it (I guess now it really is becoming open-source.) When I first started working with Flex I was astonished to see that Macromedia (now Adobe) gave me as a developer direct access to the source code. What joy! I could see how things worked, tweak it, and learn from it. Once I got involved with the Flex 2.0 beta, things got even better. The team had a high level of transparency and I could actually talk with their engineers.
What a stark contrast to my experience with MS. Trying to talk to the real engineers in a MS beta was an impossibility. The closest I ever got was a couple of product managers that were interested in what I was doing because I somehow managed to get a solution put together that integrated Active Directory, BizTalk, MS Great Plains, Commerce Server, E-Connect, and several other major MS server technologies. Apparently, my team was the first in North America, or even the world that actually got all the technologies to play nice with each other (interestingly enough it would have been impossible if I had not leveraged VMWare.) The attitude at MS on their betas, at least in my experience, was that it was a HUGE privilege to be invited, like getting to sit at the altar of some god.
All in all, MS runs a very opaque shop. In light of how much traction open source is getting, and what a refreshingly cooperative and community feel it has to it, the MS approach leaves one with a bitter taste once they have experience life on the other side.
What prompted me to write this post, is that just today I was working with one of our engineers, helping him to create a .Net setup project. This was something I had done a few years ago, and I remembered it as being pretty trivial. The challenge I was facing today, is that our engineer – who is a very bright guy, was struggling to put together the setup package. The MS Docs were next to useless, and when I saw what the MSDN has devolved to I was shocked at how hard it was to find good information on how to do the most basic of things.
What became clear to me today, and something I have been coming to understand over the past couple of years is this. Microsoft will never “get-it”, it is a cultural thing and it starts at the top and ripples down to permeate everything at MS. What I mean by “get-it” is that MS just does NOT understand basics of human computer ( or anything for that matter) interaction. Their applications all seem to have been designed with a bottom up approach, where usability is bolted on versus built upon, their documentation is obtuse and hard to follow in any practical way, their UI’s suffer from some significant usability issues, etc… Overall, I just see MS falling behind quickly, at least when it comes to the relevance (versus the dominance) of their technology.
I realize that is some pretty harsh criticism, and I am not saying I think MS is evil or puts out terrible software, I just think they are having a hard time embracing the innovation that is occurring around them, and they are out of touch with the evolving paradigms of developing usable software and products. The result is sub-optimal software and tooling.
I would be remiss if I did not mention a few MS products that I hold in high esteem. First, Excel, it is an amazing tool and incredibly powerful for what it is, it meets so many use cases and has a broad and varied user base. Second, SQL Server 2005 – amazing set of tools that do pretty much anything you want with a DB, their ETL and OLAP has some really nice tooling. Finally, Visual Studio, a GREAT IDE, that has yet to be matched by any other product I know of. Eclipse has quite a ways to go before it matches the functionality and utility of Visual Studio. I only wish I could build flex/air apps in Visual Studio!
Problem Domain:
During the course of the day I probably work with and open 75-100 files, all organized into the dozens of client folders that I have. Each client might have mulitple projects etc, so repeatedly getting to files requires this endless drilling through the directory structures. I find this task repetitive, tedious, and annoying. Each time I search for a file I have to consciously read each directory label since they each look the same visually, once a directory unfolds I then have to repeat the process. I estimate that I spend probably about 4-6 seconds to find a file on average. I probably repeat this task 100 times a day. The cost to me is anywhere between 400-600 seconds a day… multipy that out over the year (assuming 250 work days) and you are talking conservatively over 25 hours of my year spent searching for and opening files !!!! Now I am not sure what your time is worth to you, but I certainly have better things to do than spend what could amount to a 3 day vacation opening and closing files.
A Potential Solution:
During the course of the day, there are some files I use over and over again, whether it is particular to a client or project I am working on, or a certain technology or package. Most of these are located in the same proximity to each other on the file system as I organize my files by related subject areas.
What if the File Explorer (Windows) remembered which files I openend most recently, and how often I opened them? It could remember this over the course of minutes, hours, days, weeks. Now, if the File Explorer knew what I had openend most recently, and how many times I opened it, it could use some deductive logic and mark these directories and files for me visually. What if the directory or file was a different color/size/shape based on how recently I had been there, or how many times I opened it? This would allow me to use my naturally given parallel processor (visual cortex) to instantly see these patterns and guide me to the most likely navigation path without me to have to constantly read directory and file names. Even if I just shaved 2 seconds off my time, that would amount to 100 hours in my pocket
I have done googles across the web to try and locate such a tool, because to me it would seem that someone smarter and more adept would probably have already built one. But alas, I could find none. This is a product waiting to happen!
My software development experience dates back over 20 years, but in the past 8 years I have worked almost exclusively on the Microsoft platform. One thing that I thought Microsoft did that was absolutely ingenious (and viral) was to practically spoon feed its development community. With their MSDN subscriptions and robust API documentation you could practically teach yourself to do anything with their technology. They also made it a primary focus to improve their development environments to make things as easy as possible. This is not to say their technologies are not without their problems and flaws, only that compared to any other platform I have tried, MS really got it right about catering to the development community.
Lately I have been exploring new technologies to use for data visualization applications and have been looking into the wave of technology around Rich Internert Applications. After setting up OpenLazlso, Microsoft Atlas, and Macromedia Flex in a lab, It started to dawn on me that Microsoft has a good chance of loosing the desktop completely.
It appears that Microsoft is betting the technological farm on Vista. All of the new and interesting desktop development efforts all will require Vista to support them, specfically Avalon or the Win FX platform. The challenge I have as business person and software architecture with that approach is that it would require me to develop applications around a platform that does not exist, and would require a user or company to upgrade their whole OS to take advantage of those new and importan features. In the best case scenario, if Vista ships on time, I could realistically expect only 50% of my target market to actually have it installed in about 3 years from now. That is quite a gamble for developing cutting edge client apps today.
Then comes along Flash. As a programmer at heart, I always considered flash and action script to be a bit of a toy versus a real development platform, but you can’t argue with some of the incredible things people are doing with flash. After a couple of aborted attempts to trying to program within timelines and layers I pretty much set it aside as I found the programming paradigm to cumbersome and akward to be productive in. But, I kept on getting drawn back to the fact that I was seeing amazing things being done. Specifically, amazing visual things, that could really open doors from a data visualization perspective.
Along comes Zorn, Macromedia’s merging of the open source Eclipse IDE with Flex, their flash based development platform. Now were talking…. When I found out the Macromedia hired away one of the guys who started and ran the Microsoft .NET product team, I really started to get interested. When I started poking around and realized that Flash has a 98% install base, across ALL types of devices (desktops, mobiles, even cameras) it really got my attention. Then when Macormedia announced last week they were dropping the price point of Flex from the enterprise level down to a price that pretty much any developer could afford AND they were going to release alpha bits to engage the developer community I realized they were going for the jugular at Microsoft. If Macromedia succeeds in winning over the development community they have a very strong chance of obviating the desktop, or at least the Windows one.
The new flash player 8.5 that is planned on being released by Q2 2006, has a complete virtual machine encoded into it, allowing run-time debugging, exception handling, and support for an ECMA standard OO language. While a majority of the people who run flash are running off a windows desktop, it does not require one, and since the flash player footprint is so small the deployment concerns usually faced when you pair up your application with a development platform are pretty much mitigated. Try leveraging MS .Net with a desktop or server app, and you basically force your user into a 30MB download of the .net framework, if they don’t already have it installed, or if they don’t have the correct version.
All in all, I will be very interested to see how much traction Macromedia can get with the developer community around Flex and Flash, because if they succeed and are able to leverage their amazing market penetration with their Flash player, it could really change the way we approach client application development, and the way users view their desktop.