Friday, February 22, 2013
Software subscriptions
Even Microsoft is switching. Microsoft in addition to its classic PC software "Office 2013" which is installed on your local PC, now offers the subscription package "Office 365".
It's a big change, and many folks are concerned. System admins worry about the new procedures for signing up with new software services. Managers fret that an update could change file formats, and locally stored documents in old formats may become unreadable. Ordinary users find the concept of renting, not owning, their software a bit disconcerting. A few folks are aghast to learn that their software could disappear after failing to pay for the subscription, and have railed against the increased cost and the greed of software vendors.
Yes, I know that software is usually licensed and not sold. But most folks think of current PC software as sold, regardless of the licensing agreement. It is this general understanding that I consider to be important.
Let's run a thought experiment. Suppose technology was going in the other direction. What if, instead of starting with purchased software and moving to subscriptions, we were starting with subscriptions and moving to purchased software?
In that change, people would be complaining, of course. Users would be hesitant to move from the comfort and convenience of subscription software to the strange new world of installed software. System admin types would grumble about the additional work of installing software and applying updates. Managers would fret about compatibility, fearing that some users would have old versions of software and might be unable to share files. Ordinary users might find the concept of "owning" software a bit disconcerting. I suspect that a lot of people would be aghast to learn that they would have to pay for each device they used, and rail against the increased cost and the greed of software vendors.
Such a thought experiment shows that the change from ownership to rental is big, but perhaps not a bad thing. The decision between PC-installed software and web-based software subscriptions (or mobile/cloud subscriptions) is similar to the decision to own a house or rent a condominium. Both have advantages, and drawbacks.
My advice is to experiment with this new model. Start using web-based e-mail, word processing, and spreadsheets. Try the file-sharing services of SkyDrive, Google Drive, and DropBox. Learn how they work. Learn how your organization and use them. Then you can decide which is the better method for your team.
Wednesday, February 20, 2013
Adapt or die
Demanding a single format is also arrogant. First, it says that you have a certain way of doing business, and that you are unwilling to change. Second, it says that you expect everyone else to conform to your way, regardless of their procedures or technology.
I suspect that many of these companies are using this approach from inertia. In the past, when Windows and Microsoft Office dominated the market, one could reasonably expect everyone else to use the same tools.
Times have changed. Microsoft Office is still popular, and common in corporations. Especially so for large corporations. But it is not universal. People and companies (especially start-ups) use other software and other formats. Local, desktop software now includes Open Office and Office Libre. Apple iWork is available. Google Docs (now named 'Google Drive') lets you compose and edit documents, spreadsheets, and presentations. Other formats include HTML, XML, and TeX.
Demanding a single format is so 1990.
Interestingly, firms that recruit for tech positions are some of the worst offenders. While I have seen none that ask for a facsimile, most ask for resumes in Microsoft Word format - and only that format. A small percentage deign to accept PDF.
This limitation strikes me as, well, limiting. Why accept only the one format?
I can think of two reasons.
First, a single format simplifies archiving. People can point to older word processor formats (Wordstar, Wordperfect) and claim that documents in these formats are no longer readable. They are right -- those formats are unreadable by modern-day word processors.
But the next version of Microsoft Word will (most likely) drop support for the old ".doc" format. When that happens, all of their old (non .docx) Word files will be unreadable, too.
The second reason for using a single format is for simpler internal procedures. If everyone in an organization uses the same format, then the organization can standardize on a single word processor, which reduces outlays for software and time for training.
But the extension of this internal standard to external communications seems unwise. It makes other jump through your hoops, which is at best discourteous. It may irritate your customers or candidates, or worse, drive them away. Do you want to lose business over a file format?
Tech recruiters look especially bad when they do this. It changes their image from "with it" to "stodgy" and "technically capable" to "technically limited". Demanding an old format (such as the soon-to-be-dropped ".doc" format) makes on look behind the times.
If I were a technical recruiting or staffing company, I would want the best candidates for the jobs available, not just those candidates that can jump through arbitrary hoops. (Although that may be exactly what some client companies desire.) I would want to demonstrate flexibility and adaptability to candidates and clients.
Think about your internal standards and your external interactions. Do you adapt to the world, or do you expect the world to adapt to you?
Sunday, February 17, 2013
Losing data in the cloud of big data
One aspect that I have not seen discussed is auditing. That is, knowing that we have all of the data we expect to have. Traditional data processing systems (accounting, insurance, banking, etc.) have lots of checks in place to ensure that all transactions are processed and none are lost.
These checks and audits were put in place over a long time. I suspect that each error, when detected, was reviewed and a check was added to prevent such errors, or at least detect them early.
Do we have these checks in our Big Data databases? Is it even possible to build the checks for accountability? Big Data is, by definition, big. Bigger than normal, and bigger than one can conveniently inventory. Big Data can also contain things that are not always auditable. We have the techniques to check bank accounts, but how can we check something non-numeric such as photographs, tweets, and Facebook posts?
On the other hand, there may be risks from losing data, or subsets of data. Incomplete datasets may contain bias, a problem for sampling and projections. How can you trust your data if you don't have the checks in place?
Wednesday, February 13, 2013
No help for mobile apps
Thursday, February 7, 2013
After BYOD comes BYOO
The idea of BYOD is simple: Instead of companies supplying computing equipment to employees, employees purchase equipment. Instead of supplying employees with iPads, for example, let employees purchase their own tablets (iPads, Android, or Windows) and provide them access to the needed data and apps.
BYOD is one of a number of changes that shift responsibility from employer to employee. Other changes include company-funded pensions (replaced with employee-funded 401-k plans), company-funded medical insurance (replaced with employee-funded insurance), and company-supplied training (replaced with employee-selected and employee-funded training).
I see BYOO (bring your own office) as another step in that sequence. With BYOO, the company does not provide the office to the employee. Instead, the employee makes arrangements for his own workspace. This may mean a home office, or it may mean a co-working space, or it may mean s shared hotelling space in which workers rent a cubicle, desk, and office equipment.
BYOO is possible for people who can work without being in a specific physical place. Some jobs require physical presence: waitstaff, assembly workers, plumbers, etc. Many jobs, especially IT jobs, can be done remotely. Analysis, design, programming, and testing can all be completed without physical presence.
To implement BYOO, one needs the types of jobs that are "remotable", coupled with the equipment to make it possible. That could be as simple as a cell phone, a laptop computer, and an internet connection. (And possibly a quite place to work.) We have the technology today.
We may not have the psychological ability to implement BYOO. If managers need to see people sitting at their desks to believe that they are working, BYOO is not possible. Remote work is possible only when managers trust individuals to complete their work without immediate supervision.
One other prediction: the acronym BYOO will *not* be the one people use. I don't know what it will be, but it won't be BYOO.
Wednesday, February 6, 2013
New dimensions in system design
Let's look at the big providers:
The smart, big vendors are offering all services. The smart, small vendors will offer a carefully selected subset and ensure that they can provide quality. The same goes for candidates. The heavyweights will have expertise in all areas, the middleweights light expertise in all and strength in a few, and the lightweights will be capable in one or two.
The task for vendors (and candidates) is to build their skills along these dimensions, and present them to clients.
Tuesday, February 5, 2013
PC as status item
Today, the common PC is just that -- common. A typical office will have many PCs, all like. (Some offices will have variation. From my observations, the consistency of the PC set will be proportional to the size of the organization. The largest organizations have the most homogenous set of PCs.)
With the introduction of BYOD, we may see a resurgence in "the PC as status symbol".
What's that, you say? You've never seen a PC used as a status symbol?
Well, it has happened. Just after the release of the IBM PC, and when companies were experimenting with word processors and spreadsheets, PCs were *quite* the status symbol. A PC was a better typewriter, an expensive investment, and a thing to be admired. Some PCs had monochrome monitors and some had color monitors.
When the IBM PC AT was released, some people had the newer, faster PC and some had the older, slower PCs.
Even as late as 1995, PCs varied within organizations and were used as status symbols. After 1995, that changed. The price of PCs dropped to a level that made frequent replacements feasible. Large organizations (the ones with tech support groups) found it easier and cheaper to "refresh" PCs every few years. It meant they had the latest operating system, fewer hardware failures, and a consistent set of PCs with easier support.
When the PCs become consistent, the status from different PCs disappeared.
BYOD may introduce the status again. When individuals select and purchase their own equipment, the consistency of equipment will vanish. Some will purchase iPads, some Android devices, and some Microsoft Surface tablets. Some people will "refresh" their devices frequently, and some will hold on to them for years. (We may see a "reverse status" with reverence for an old-school device.)
The return of status may cause some friction and competition among team members. A good manager will look for the signs and focus the team on the objectives.
Friday, February 1, 2013
Refactoring and code cleanup are everyone's job
Code can be messy for a number of reasons. It can be assembled from older (poorly written) systems. It can be developed under aggressive timeframes. The developers can be careless or inexperienced.
You want to improve your code. Messy code is hard to understand, difficult to debug, and problematic to change. Projects with messy code find that they miss deadlines and have a large number of defects.
Refactoring is the process of changing the structure of code while maintaining its behavior. By changing the structure, you can improve the readability and maintainability of the code. By keeping the functionality, you keep all current features.
One might think that assigning the task of refactoring to a subset of the team is sufficient. The idea is that this subteam will improve the code, cleaning up the mess that has developed over time. But I believe that such an approach is ineffective.
Refactoring (and code quality in general) is a task for everyone on the project. The approach of a separate team does not work. Here's why:
The team members dedicated to the task are viewed as a separate team. Usually they are viewed as the elite members of the team; more darkly as diva-developers. Sometimes they are viewed as servants, or a lower caste of the team. Fracturing the team in this way benefits no one.
Other (non refactoring) members of the team can become sloppy. They know that someone will come after them to clean their code. That knowledge sets up an incentive for sloppy code -- or at least removes the incentive for clean code.
The biggest reason, though, is one of numbers. The refactoring team is smaller than the rest of the team. This smaller team is attempting to clean up the mess created by the entire team. Your team's current processes create messy code (for whatever reason) so that larger (non-refactoring) team is still creating a mess. The smaller team attempts to clean while the larger team keeps creating a mess. This doesn't work.
As I see it, the only way to clean code is to get everyone involved. No separate team, no elite squad, no penalty assignments. The team's process must change to create clean code (or to improve messy code). Nothing less will do.