Friday, November 22, 2013
What is a Software License?
Is it what you've installed? (aka. What your inventory software detected)
Is it what's being used? (aka. What your license manager or reporting tools are showing)
Is it a document that defines what, how many, and where you "should" have installed the product? (aka. An SLA or license key file)
Is it a definition of what you are allowed to do with the product? (aka. A license agreement document)
Is it a bundle of products, or a single product?
Is it a standalone license, or a "floating" networked, pool of licenses?
Is it just an idea, or is it a tangible entity?
Can you hold it in your hands, or does it only exist as an arrangement of electrons?
Tuesday, October 4, 2011
The Never-Ending War: Centralized IT vs Department Developers
I doubt any of you will read this one to the end, and I can't blame you. But I have to say that this is probably one of my best articles so far. It's one that I'm fairly passionate about and it shows in my verbosity. I apologize for torturing your eyeballs in advance, but I must go on.
For many of you, this scenario should sound pretty familiar:
A large corporate business evolves over decades to the point where they decide it makes sense to centralize their IT operations. They create a new department and appoint a CTO or CIO and staff the various functions. Prior to this, it was common to find each department building and maintaining their own unique software applications to solve their own internal business needs, aka "line of business" applications ("LOB" for short). In decades past, it was dBase or FoxPro. In more recent times it's been Microsoft Access or Excel. Quite often, it involves VBA code. Lots and lots of VBA code.
The centralized IT department strives to gather all of the LOB applications and apply some centralized procedures to maintaining it. Maybe the company is trying to be ISO or CMMI compliant, or maybe ITIL, or whatever. Who knows. In any case, the MBA mindset comes to the logical conclusion that redudant job roles are expensive and inefficient, especially when one person in Finance is building roughly the same application as the person in Sales. These isolated, parallel and typically redundant efforts have no incentive or desire to coordinate efforts with other departments due to politics and funding, so they march on unrestricted for years.
When IT finally gains control of a few of the key LOB applications, they apply common ITIL or CMMI procedures on change control, which invariably slows down the process of implementing updates. The LOB folks quickly grow tired of this, and eventually pull away from IT to continue building their own applications. The cycle continues.
This is often referred to as a "NO-WIN SITUATION", because that's exactly what it is.
The top management folks are left with two options:
- Ignore it and leave the fighting to the lower level managers
- Stress out trying to make a decision over which is the lesser evil: inefficiency or inefficiency.
The two greatest risks facing them are:
- Allowing the redundant waste of time and resources to grow unchecked (because it's NEVER really checked) and allow inconsistent results to spread. The practice increasingly melds the company core business processes to hundreds of tiny little tools built by people that have worked themselves into a position of necessity (cant' fire them or you risk being stuck with a broken tool and a busted business process)
- Forcing the LOB apps under the control of the IT department, becoming painfully slow at responding to surge-capacity, and frequent requirements changes. Everything must now be vetted, developed, tested and implemented under the new procedures. No more "walk-up" requests. No more Summer intern kid-turned-full-time-developer to handle your needs. LOB requests now get routed through a load-sharing process to "resources" which share their precious time with other (possibly competing) LOB requests.
Ugliness. Bad feelings. Animosity. All that kind of stuff.
This is one of the reasons I F-ING HATE MICROSOFT ACCESS
The product itself is not bad or evil. Fire isn't bad, when used properly. Each serves a noble purpose. But fires created by a small group of trained professionals is one thing. Handing every person in a 10 mile radius a can of gasoline and a box of matches is a little different. Server backended applications are like the trained professionals. Microsoft Access is like a truckload of gasoline cans and matches being handed out like rice bags from a UN truck in Rwanda.
The most common scenario today involves this vicious cycle of stupidity:
- The Sales department asks a promising Summer intern to build them an uber sales tracking app. Uber-brainy intern cracks open a "Access VBA Unleashed" book, and builds the new application in MS Access 2000 using lots of VBA.
- Years later, the company decides to take advantage of volume licensing and buys into a SELECT or ENTERPRISE AGREEMENT contract to get upgrades more cheaply. The Company recieves licensing for Office 2010 and wants to upgrade all computers ASAP.
- The Sales department cries that Access 2010 will break their LOB app. They cry to upper management. IT is ordered to put the upgrade plans on hold.
- The IT department now decides on one of two courses of action:
- Dedicate several developers to re-developing the application to work in Access 2010, but they don't understand the LOB requirements or logic, so they have to work closely with the Sales department to gain better understanding. They also have to decide how to address deprecated functionality (from Access/VBA 2000 to 2010), and incorporate new features, or if there is even enough time to do that, or just patch it up and make it work.
- Dedicate several developers to shoehorn the old application to work via the Access 2000 runtime engine, if that even works (sometimes it does, sometimes it doesn't). This often becomes a mess, with file associations getting corrupted and interaction issues with other third-party applications.
- The plan to deploy Office 2010 is now sidelined until they can adequately resolve this dilemma.
- By the time a solution is reached, Office 2012 is released and the process repeats
Either way, it ends up being a long, drawn-out waste of time, money and effort. Sure, it can be argued that it's not a waste because it's provides (hopefully) a workable solution. But if the entire problem COULD have been avoided by adopting proven practices, isn't that ultimately a waste?
A database is a database. It should be used as a database, not as an end-user application platform. Client/Server or web-based interfaces would easily decouple the functionality from the data store. Then if the only thing that changes are the database connection parameters, you don't have to rewrite the entire application. In many mature development environments, this is considered programming 101.
You probably won't believe me, but I actually do get sick of hearing myself talk and get queazy reading my own drivel. But painful as it may be, I must go here...
Over-Caffeinated Rant (deep inhale, and....)
I haven't really delved into the virtues of decoupled business logic in n-tier applications architecture. There's an enormously powerful incentive to following this time-tested and well-proven approach, which is along the same lines of logic as multi-stage code compilation, assembly line production, and zone defense in team sports. That is, that compartmentalizing certain logical blocks of functionality make those blocks portable and flexible. It makes them more easily (and more affordably) adaptable to future changes. You know, those future changes that are quite often unforeseeable and unpredictable? It also tends to make those newly defined blocks more efficient, both in construction and execution performance.
But things like n-tier business logic and decoupling are rarely familiar terms to the Summer intern who happens to dig tinkering with VBA (or VSTO) within Office applications like Excel and Access. To them, it's just fun to code, and who can blame them? How do you effectively convince this wunderkind teenager that "fun" isn't as "cool" as decoupling your code and applying standard design prinicipals to it before ever punching a key or clicking a mouse? It's a serious conundrum for businesses of all sizes, but particularly insidiuos and debilitating for larger corporate behemoths due to their scales of inefficiency at all levels. Who is the best equipped, and motivated to insert themselves into this vicious chain reaction and disrupt it entirely: IT, LOB stake-owners, or senior management? IT rarely has the global authority to stomp out such wildfires alone. LOB stake-owners rarely have the global incentive. Senior management doesn't give a shit because that's why they hired mid-level management to insulate them from. When LOB stake-owners are coupled with mid-level management (often one and the same), it's a done deal: nothing is going to improve. This is the most common scenario in modern corporations today. A Catch-22.
My coffee just ran out.
Saturday, July 19, 2008
VMware: Greene is Out. Maritz is In. What Next?
I still say that VMware should "give" away at least *some* flavor of ThinApp at this point. Just give it away. Maybe strip out the new 4.0 features like App-Sync and App-Link. Take it back a notch like Thinstall 3.x was prior to Tucci's gang of merry goons kidnapping them. That simply led to Microsoft acquiring Softricity (SoftGrid) and Altiris getting SVS (later consumed by Symantec) and now we have Citrix eating up XenApp and Oracle and VirtualIron and God only knows what's next (no, that's not another product name, sorry).
SoftGrid, at this point, is still too far of a reach for even most enterprise customers. I'm sorry, but if you have Software Assurance on every desktop, and THEN have to fork out another $28 per node to get MDOP (and hence: SoftGrid) that's a tough nut to swallow in a budget planning meeting. So what does VMware do? They offer up ThinApp at $5000 for a base package of 50 clients, and $40 for each additional client. Yuck! Why? Give it away.
Like I've already said before: Microsoft will probably just shove SoftGrid features into Windows 7 and be done with it already. That will kill off a major portion of revenue VMware may be counting on with future ThinApp sales.
Wednesday, December 26, 2007
My Votes for Coolest PC Apps
- Microsoft Windows Server 2008
- EMC VMware Workstation 6
- Microsoft Virtual PC 2007
- Microsoft SoftGrid (soon to become MS Application Virtualization)
- Canonical Ubuntu 7.10
- Microsoft System Center Configuration Manager 2007
- Microsoft Office 2007 (and Visio 2007)
- WinZip 11
- Newsbin Pro 5.8 (currently in beta)
- Mozilla Firefox 3.0 (currently in beta)
- Google Picasa
- Google Reader
- Google Toolbar
- Google Earth
- The Google Maps API
- The Digg API
- TechSmith Snag-It 8
- TechSmith Camtasia Studio 5
- Microsoft SQL Server 2005
- Autodesk AutoCAD 2008
- Paint .NET 3.20
- Microsoft PopFly
- Games: Too many to list, maybe later
Monday, December 24, 2007
Software Packaging/Sequencing Sucks
I said "Packaging/Sequencing" which are slightly different things. For those of you not familiar with application virtualization technologies like Softgrid, "sequencing" is similar to capture-method packaging, where you essentially roll-up a state change from a baseline environment, and make it a package for deploying to other computers. Simple enough.
Unless you have to deal with Adobe products.
Oh my God. No. Let me put that in a more technically credible form: Holy fucking shit, is more like it.
If you work for Adobe, I'm sorry. But you really need to walk over to the developer team and knock on their door. When the door opens, just smile, and then punch them right in the face. Don't forget to say "Merry Christmas" afterwards either.
Why? Why so violent? Why such disdain for such nice, sweet people like Adobe?
Because they refuse to get with the program. Which program? The program titled "Software development and packaging for the 20th century". (keep in mind we're in the 21st century - ponder that for a few seconds, ok?)
If you package software for a living, primarily for the purposes of mass deployment in an enterprise environment, you will already know this and be simply fast-forwarding on to the next blog post. For those of you dealing with "sequencing" for Softgrid, ditto. For the rest of you, maybe you're an Altris, or SMS 2003, or System Center Config Manager, or Tivoli, or whatever administrator, who cares, the point being you're not a day-to-day packager, so you need to know just how badly Adobe sucks at making software easy to deploy. Let's just say that they don't.
In fact, Adobe makes it as f-ing difficult and painful to accomplish as humanly possible. I wonder if they have an entire department or division, dedicated to making mass deployment impractical and problematic.
It boils down to how they ship their software in the first place. While many vendors, from Autodesk, to Symantec, to whoever, provide you a neatly packaged MSI with all sorts of documentation to help you drop that into a Group Policy, or SMS package, or Altiris, or (holding my breath here...) Softgrid, Adobe does not. They give you an MSI alright, but it's not packaged properly to allow for such silly things like saving time and avoiding problems. No time for that stuff. Profit comes first (and only).
For those of you that have suffered with Adobe's crap while trying to sequence for Softgrid deployments, well, I cry with you and gladly hand you the liquor bottle. It turns out they never read the memo on how to base DLL's on Windows clients. They still do it the 1980's way: Push them all to one base address and ask Windows to dole them out on the memory stack, each and every time you launch the application. Goddamnit! F-you Adobe! Stupid. F-ing stupid!
Thankfully, the folks at Softricity (now Microsoft) thought enough of us whipped and beaten packagers (oops, sequencers), to add that nice little checkbox option: "Re-Base DLL's" for just such purposes. If you haven't tried this feature, give it a try. I would suggest that if you have any sequenced applications which make you sit there for 15 minutes while they drollingly iterate a shopping list of DLL's they load before you can start using the application, that you make another sequenced package using the Re-Base option and compare the results on some test clients.
You may often find many applications launch dramatically faster after they have been processed to re-base the DLL's. This is simply because they're asking Windows to do the chore once, and then capture it for future loadings. Do it once. Yes. What a fantastic idea. I suppose Adobe wouldn't consider doing something dumb just once. No, they'd rather do it EVERY SINGLE TIME they launch. Thanks Adobe. Merry Christmas.
Mystery of Mysteries Revealed: Software Assurance
- SoftGrid - Microsoft acquired the company Softricity in order to get their hands on their renown application virtualization technology. The current version (4.1 on server, 4.2 on clients) has only been slightly modified from before the acquisition. 4.5 is in beta and set for a release in Q3/08 under the new name of "Microsoft Application Virtualization" and will have some notable enhancements.
... - Advanced Group Policy Management (AGPM) - Microsoft acquired this from the purchase of it's developer "Desktop Standard". Not much has been been enhanced or modified from before it was acquired by Microsoft.
... - Diagnostics and Recovery Toolkit (DaRT) - Acquired along with the purchase of Sysinternals/Winternals, formerly called Winternals' ERD commander. It also includes parts of Sysinternals various utilities and some notable enhancements for Vista.
... - Asset Inventory Services (AIS) - Acquired from Assetmetrix and bundled into Systems Management Server 2003 Service Pack 3, as well as making available within MDOP as "AIS" will be instead an entirely hosted solution.
... - Desktop Error Monitoring (DEM) - Replaces the aging and defunct "Corporate Error Reporting" product for collecting, reporting and forwarding internally generated desktop errors, failures, faults, crashes, etc. DEM is instead built from a subset of System Center Operations Manager (SCOM) 2007.
But the most peculiar thing I found during this training course wasn't related to any of these technologies. All of which are very good in their own rite. But rather, it was when I asked about SA. I got the same response I get from every sales person, technical engineer, and account manager: "Well, it's sort of subscription with some other goodies, but I don't know exactly".
Say what?!
That's what gets me. The single most important, vital, profitable venture Microsoft has underway is obviously one of the most under-communicated, misunderstood, and poorly explained services they have.
Go ahead. I dare you. Ask anyone around you to list five things you get for purchasing SA on desktops. I've asked people from all kinds of environments, countries, companies, you name it. Most can rattle off two or three at most. I could only list three. Here's what I've managed to cull from various Microsoft and partner web sites...
- Vouchers for Training Courses
- Vouchers for Partner Consulting Services
- Vouchers for 24x7 Technical Support
- Allows Conversion of Vouchers (training to consulting, to support, vice versa)
- E-Learning Vouchers
- Employee Purchase Discounts
- Home Use Program
- MDOP for $10/client more (15% discount on Enterprise coverage):
- Operating System Upgrades (XP to Vista)
Damn! If I were to pass along what many of the sales managers have told me, I would have said "You get upgrades and some support and some other stuff". Wow. That would really sell it to someone. Not. Seems to me that Microsoft needs to (A) simplify what SA "is" and what it gets you, and (B) communicate and educate their partners to better understand it enough to sell it effectively. Holy shit! That sounds like common sense sales and marketing to me.
Selling Software Assurance based on two or three of these key features would be abysmal. I wouldn't want to earn commission upon that horrible thought. I'd starve to death. As soon as you mention "upgrades" as a feature benefit, most customers will immediately shove you out the door and slam it behind you. All the while laughing hysterically. In my (humblest) opinion, Microsoft needs to bundle more than MDOP into SA to make it really attractive. Even as nice as MDOP is (and it is very nice), it's not going to sell itself.
Microsoft's partners will be putting in a lot of face time to get these points across, and hope, fingers' crossed, that customers are receptive and willing to stroke the check. It's a tough sell even so. I realize that much of the reason they have to tread lightly is due to their dealings with DOJ and the EU and their penchant for biting at Microsoft's ankles when they try to knock on doors.
I'm a Systems Engineer and I feel like I know it better than the people who are supposed to be selling to customers.
