Archive for the Category Software Industry

 
 

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.


Den ganzen Beitrag lesen…

What is wrong with the Business Intelligence Industry?

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.  

I was a bit concerned attending the event that I would not see eye-to-eye with some of these other experts, since I hold a relatively contrarian view when it comes to designing dashboard solutions.  I believe that ALL business intelligence systems need to be designed from the top (user) down, versus the bottom (data) up.   Pretty much all big BI vendors and industry experts have been preaching the bottom-up mantra for the past 20 years. 
On the flight back from the summit I wrote an article that (hopefully) more clearly articulates my position and the logic behind it.  You can read it here.   In a nutshell I basically state that Big BI and current industry experts have a strong financial interest in not rocking the status quo, and are in fact hindering the efficacy of the very solutions they purport to be advancing.
By any objective measure, BI is long way away from reaching its potential, especially in the eyes of business users and organizations who have implemented seven figure BI solutions.  My thesis is that because BI has its history rooted in the collection, transformation, aggregation and dissemination of data that the lions share of focus on any BI project revolves around the data and the not the end user.   Reports and dashboards end up being after-thoughts at the end of big BI initiatives.     
The BI industry has created its wealth through the selling of these solutions and expertise and insist they are needed to provide an effective BI solution.   In my experience this is absolutely NOT the case.  You can create a very effective dashboard solution with a very minimal BI infrastructure, although in some cases having a robust BI back end is definitely going to make things easier.   As I mention in my article the BI leaders have painted themselves into a corner because even if they recognize the back end is not the place to start, they would end up undermining their primary revenue streams (not to mention customer confidence) if they openly acknowledged this state of affairs.
What I suppose will begin happening, is that more and more start up companies will start to address this schism and we will see a slow movement to more user-centric BI solutions that focus on business and user requirements with online tools that allow integration of distributed and heterogenous data.  At the same time I still see a very valid place for traditional BI, as there are still thousands of companies with vast stores of transactional data that needs to be collected, processed, and aggregated into common structures that can be used to help feed the user-centric BI solutions.

Should Apple purchase Adobe?

I am sure I am not the only one who has posed this question, I know there was lots of conjecture about this a couple of years ago.   But I think the argument is even stronger today.   It appears that Apple is really trying to take advantage of the fiasco that is Windows Vista and is pushing new PC buyers to make the jump to Apple (hey it worked on me)  But, Apple is going to have a tougher going with the developer crowd and the corporate culture.  If Apple ever hopes to jump the chasm and become an integral part of the enterprise they are going to have offer compelling reasons for developers to jump ship as well and write software for Apple.  Right now the only compelling reason for developers to make the switch and write software for Apple is because they become so enthralled with the Apple experience that they want to be part of it (once again, I am guilty as charged) or they are specifically targeting OS X or the iPhone for their offering.
But, as motivated as I am to develop the next great iPhone/OS X app, each and every time I put forth an earnest effort to do so I am struck by how antiquated the development tools, languages, and platforms feel to me.  For a corporate developer who just needs to get the job done and could care less about how sexy something looks/feels they will have even less impetus to make the jump.   One thing that Microsoft did extremely well, although not so much any more, was to practically spoon feed developers with their technologies. It was SOOO easy to pick up a MS technology, not necessarily because they were the best technologies, but because MS invested heavily in providing training materials, live events, practically giving away their software via MSDN, etc.   Now, I see the open source movements doing a better job of this with the robust communities and communication infrastructures that have developed as a result of the internet.
So here I sit at a cross-roads, do I invest the time to develop an application that is specific to Apple either via Objective-C/XCode or via proprietary AJAX for Safari extended WebKit?   Well, either choice seem like several steps backwards from where I am right now.  Currently I develop in Adobe Flex, and while the tooling can stand room for improvement, it is still far ahead of XCode.  But where Flex really shines is the combination of the language and the design patterns it easily supports in combination with the power and ubiquity of the Flash player.  Having to go back and write AJAX code and deal with browser compatibility issues and the lack of robust profiling/tracing tools is just painful.  Once you know how much better it can be, having to go back and use tooling/languages that you were using 8 years ago just hurts.  The XCode/Objective-C road does not appear any better.  Damn Flex and Adobe, if I never went down this path I wouldn’t know any better, and I would be happily struggling with AJAX, HTML5, and excited that I now have a Canvas HTML element that has a graphics context I could draw to. 
 
Okay, back to my original theme for this post, why should Apple purchase Adobe?  If for nothing else, Flash and Flex.  If Apple controlled Flash they could easily put it on the iPhone and still force their lock-in for flash-enabled iPhone apps having to be distributed via their AppStore.  With ActionScript, Flash, and AIR in their back pocket, what they have is  universal development platform that would open the doors to a much wider developer audience. Because a developer knows when they are targeting Flash/AIR they are not only targeting Apple but pretty much any OS/Client.  In the words of Bob Warfield, the friction is greatly reduced. It would also put Apple on practically EVERY desktop because Flash sits on every desktop.   Similar to the logic I used in purchasing a Mac Pro, where I knew worse case I could run Windows natively (but have yet to do so) I would be able to develop for the iPhone/Apple knowing that my application would also work anywhere elese.  Even better, instead of having to learn the ins-and-outs of a new language based on an old development paradigm I would either leverage the knowledge I already have (if I knew Flex) or be investing my time in learning something new, but more powerful and more efficient.
 
But, wait, there is more to this argument outside of my myopic developer/engineer perspective.   Apple is really pushing to deliver software to creative folks, albeit more at the hobby level, but nonetheless what company has the best and most established creative software?  Adobe!!!  If Apple wants to position themselves as the company that creates the hardware, software and distribution channels for creative content (music, video, multi-media, etc.) why not also control and offer the tools to create such content… it would go a long way to reducing the friction in some of these marketplaces, where the creative authors can seamlessly distribute their works via the Apple channel.  This would allow them to target all strata of their verticals that they want to sell into, and these offerings create a self-reinforcing viral effect. This said, I am not sure how comfortable I am with a company like Apple holding such a dominant position in the market based on their historically closed nature.
And this is where I come to why I think it might not work, and that is due to cultural issues between the two companies.  Adobe has been making GREAT strides to become a much more transparent and open company, they are investing heavily in contributing open source code and really seem to be figuring out how to be a good corporate citizen while still turning a profit.  Apple, not so much.  They seem to still cling the old-school closed source mindset, where everything is shrouded in secrecy and tightly controlled.  This does have its advantages, but long term I don’t think it will benefit them.  So what happens when a company like Apple acquires a company like Adobe with the differences in their respective cultures?  I don’t think it would be a very pretty picture and could have the potential to destroy Adobe and the value they bring to the table.  But from a purely mercenary/capitalistic view I think it would still be in Apple’s best interest to do so.
From looking at the Yahoo finance stats today, here are some metrics for both companies.   It would seem with Apple’s cash on hand they have enough resources to make something like this happen (they have almost as much cash on hand as Microsoft) if they were motivated to do so.  
Apple:
Market Cap: $148B
Annual Sales (2007): $24B
Total Cash: $18B
Adobe:
Market Cap: $19B
Annual Sales (2007): $3.1B
Total Cash: $1.57B

Why I don’t think Microsoft will ever "Get IT"

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!

There Has to be a Better Way.

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!

Macromedia/Adobe versus Microsoft

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.