What is disruption? How does it occur? When we answer these questions, we will see that in many cases the leaders in the market are blindsided by the rapidly growing niche.
The word "niche" describes a market that fits nicely into a crevice of the overall market, but, according to popular opinion, doesn't really matter. And that's actually the funniest thing of all, in a way: the market that doesn't matter can actually take over the larger market, given certain characteristics. Love this stuff.
Cars
Consider the rise of the automobile. The specific market that internal-combustion vehicles displaced was the horse-drawn carriage, trap, dogcart, brougham, or whatever Sherlock wanted to call them. But consider the advantages of the new niche technology.
The space taken up by the conveyance is the first issue: having a horse and a cart means having both a stable and a garage, while a car only requires a garage. Umm, not to mention that the stable had to be swept out(!).
Which brings us to the next issue, consumables: a horse must be fed, and so must a car. But what the horse eats can go bad, and must be carefully regulated to avoid having the horse eat itself to death. Fuels can be easily stored. In plain fact, people were used to using fuels because they lit their houses with kerosene.
Repair was another issue: a horse can go lame and a car can also break down. But when a horse goes lame, it's usually not recoverable (and sad). However, a car can be fixed.
In the personal transportation market, the ever-growing advantages of the rapidly growing niche product, the car, increased its uptake dramatically, even exponentially, displacing the horse-drawn carriage. It took decades to fully play out.
Instead of sweeping out stables, we are now dealing with the hydrocarbon emission problem, and its carbon footprint. One thing is clear: we need to be smarter about the environmental impact of our disruptive technologies!
But now consider electric vehicles. In the US by the high cost of gasoline, which was almost $4.10/gal in June 2008, drove the hybrid Toyota Prius to great success as they were selling about 20,000 of them per month at the time. The cost of gasoline went down, driven by an economic downturn (caused by hurricanes and a crisis in mortgage lending which led to bad debts and a foreclosure increase). This occurred simultaneously with the introduction of the disruptive technologies of shale oil extraction, fracking, and improvements in deep-sea drilling. This caused the biggest oil producers, Saudi Arabia and Russia, to be dominated by the production in the US, for a while. The Saudis countered, with their huge cash hoard as a life boat, by increasing oil production, thus decreasing the price of oil even more, but diminishing their spare capacity. This had the dual effect of helping them to retain clients that they were losing left and right, and also of putting pressure on the Americans whose revolutionary oil extraction techniques might (still) be made too costly by reducing their profit margins.
All of this will eventually lead to a spike in oil prices and thus even greater reliance and demand for electric vehicles, like the Tesla Model S, which I am seeing everywhere. Perhaps because I live near Silicon Valley. Hmm.
Progress is accelerating
As mechanical wonders turn into embedded computers and sensors make them ever more cognizant of our environment, the size of a gadget is going down dramatically and the capabilities of a gadget are increasing tremendously. Once you can carry it in your pocket, it becomes irreplaceable, essential. The smaller gadgets get, the faster they will improve: now the improvements are often a matter of simply writing new software.
So what used to take decades now takes a few years. In the future it likely won't even take that long. Now let's look at some more examples of disruption (and disruption prevented) in this era of faster progress.
Computers in general
Well, now we come to the biggest disruption of all, which is actually in progress: computers. The rise of the smartphone shows that an all-in-one gadget can succeed over the feature phone. And by modifying its form factor and use cases, the rise of the tablet shows that there is a great alternative to the netbook, laptop, and even the home computer. Even businesses find that iPads can replace a host of other, clumsier gadgets.
What were the advantages that triggered the displacement of the feature phone by the smartphone? A single high-resolution glass touchscreen was an astounding improvement over the button-cluttered big-fat-pixel interfaces of the feature phones. A simpler interface with common visual elements won out over the modal menu environment that had to be searched through laboriously to find even the simplest commands. It can even be argued that the integrated battery made the process of owning a phone simpler. What cemented the advantages of the smartphone was the ecosystem that it lived in. On the iPhone, this is exemplified by the iTunes Music Store, the App Store, and the iBookstore. A telling, crucial moment was when the smartphone didn't have to be plugged into a desktop computer to be updated and backed up.
The next step was the tablet. In retrospect, it was more than just increasing the size of the screen. It required more power and it probably had a very different use case. The use case was closer to the laptop. On the smaller end, tablet sales are probably being cannibalized by the larger phones such as the iPhone 6S Plus. On the larger end, the power of tablets will increase until they become viable alternatives to laptops.
Still, I love my laptop.
But all it would take is a significant increase in battery technology to let the tablets reach the power of the best laptops. Then it will be purely a matter of ergonomics. Tablet are lighter, still quite useful, and clearly good enough for many types of businesses. The disruption of the PC market is but a few years away, I expect.
The post-PC era is nigh.
Those who call tablets PCs really don't quite have a handle on the form factor. Perhaps it's like Microsoft says: all it takes is a keyboard and your tablet becomes a PC. Detachables have the advantage of a keyboard and a bigger battery, with the prohibitive cost of the weight of the device.
While I like my laptop - it IS heavier than a tablet by a huge margin. Perhaps the rapidly growing niche of tablets will displace the laptop - but the growth isn't there yet.
Social media
Now: why did Facebook buy Instagram? Because it was a rapidly growing niche that was taking on more and more of its customers' time. By purchasing it they accomplish two things. First, it's a hedge against the niche technology taking over and displacing them. Second, it prevents their competitor, Twitter, from purchasing it. Mark Zuckerberg, Facebook's leader is smart. He knows that the rapidly growing niche can take over. After all, Facebook successfully did the same to other portals such as MySpace and Yahoo.
And what comes around goes around.
Mark Zimmer: Creativity + Technology = Future
Please enter your email address and click submit to follow this blog
Showing posts with label strategy. Show all posts
Showing posts with label strategy. Show all posts
Friday, November 6, 2015
Tuesday, December 25, 2012
Observing Microsoft, Part 2
Microsoft's main brand is Windows, an operating system. It is an umbrella brand, covering Windows 8 and Windows Server, though many people still are running Windows XP and Windows 7. The company also has the Office brand, which is an umbrella brand covering various pieces of software, like Word, Excel, PowerPoint, and Outlook. The brands specifically spell out what Microsoft is known for, and by inference what it is good at: operating systems and software.
It is abundantly clear that Microsoft is stepping out of its circle of expertise by creating hardware. It seeks to add another brand, Surface. But the Surface product is actually Microsoft Surface with Windows RT.
Let's look at the Windows brand. The billion or so Windows users are all familiar with Windows user interface. This includes such items as the taskbar, the start menu, and the desktop, with the plethora of blue-topped rectangular windows, from which the brand gets its moniker. Icons on the desktop, really just aliases to actual files, are called shortcuts.
But by creating a touch-based interface for Windows 8, really just a start-up screen veneer on desktop systems, those one billion users are led into into unfamiliar territory by the new user interface. There are reports of users being uncomfortable with the user interface and putting off the upgrade to Windows 8. Perhaps the main problem is that there are now two user interfaces, and they are quite different.
In some sense, this splits the brand, fracturing what Windows actually means. And that's not good. Furthermore, using the Windows brand on their hardware products actually stretches the Windows umbrella brand to include hardware, which has dire consequences for their OEMs like Sony, Toshiba, Acer, Asus, Dell, and HP. Reports are emerging that Dell urged Microsoft not to use the Windows brand for their Surface product. This causes confusion as to what Windows itself actually is: is it an operating system or a computer? Oh, man.
Some even claim that Microsoft is abusing the Windows brand.
All this, combined with the apparent lack of Surface sales, has investors in the same boat as the Windows user base: should they invest in Microsoft now?Many users seem content to wait for Windows 9. There are some indications that Windows 8 could be like Windows Vista, which was met with whole-hearted scorn from users, who hung onto their prized Windows XP systems. Only with Windows 7, captained by recently-fired Steven Sinofsky, did the users finally resume their upgrades.
Arguments in favor of Microsoft's current Windows 8/Surface strategy center around three concepts. The first is, because they covet the Apple revenue model, that by integrating their software with their own hardware, they can do the same. The second is that they can't abandon the Windows brand and simultaneously they must make a move into the mobile space with it. And the third is that they are bridging the gap between tablets and laptops.
Perhaps, if they can do any one of these things right, they will survive. But right now, analysts have been noticing that PC sales have been dropping off. This is because the mobile market is disrupting it. Notice I didn't say that the tablet market is disrupting the PC market. More and more users are using mobile devices. By making their tablet more like a laptop, Microsoft doesn't really get what's happening.
The Holiday SeasonThe holiday season accounts for a large amount of retailers' sales annually. Indications are that online sales have surged 16% this season over last year. However, retail sales in brick-and-mortar have only risen by about 2.5%. But, to me, there is no doubt that the malls are crowded. Yesterday, it took me about 40 minutes to find a parking spot at the ValleyFair mall in Silicon Valley! This could mean that retailers are selling, but just not the big ticket items. This testifies to economic troubles or perhaps the widespread purchase of discounted items after hurricane Sandy.
The sales of Windows 8 depends partly upon the purchase of new computers. This is because those who purchase the new, exciting computers are essentially a captive audience. And if consumers (and possibly businesses) aren't buying the big-ticket items, then that could be a reason.
Let's analyze that for a moment. If computers are more expensive than tablets, then the consumers will buy tablets. Businesses will rush to construct low-cost business solutions using tablets as well because they can save on expenses - and the apps are there. And even if they aren't, the cost of developing corporation-local apps will make the conversion worth it. Nitro Mobile is one such company that specializes in creating corporation-local solutions on mobile platforms, like iOS.
Another sign that sales for Windows 8 aren't quite up to snuff is this article about Microsoft stores in the metropolitan New York Area, which states again that Microsoft stores were sparsely populated when the aisles at the mall were practically impossible to get through. In Silicon Valley, I noticed the same thing: Microsoft stores were just not filling up or selling their wares as fast as Apple stores. Perhaps Ballmer's idea of putting Microsoft stores right next to Apple stores wasn't so good after all: it invites unfavorable comparison. For PC sales to be lackluster in the holiday season is more than just a slow start. It's a definite problem. The market is changing fast.
Tuesday, December 4, 2012
Observing Microsoft
Microsoft doesn't hang quite as straight as it used to. What has happened to Microsoft? If the question is even being asked, things can't be going well.The media are definitely asking the question. For instance, an interesting article in businessinsider asks whether Steve Ballmer's nightmare is coming true.
I don't know if it's poor execution or just the fact that Microsoft has been classically a software company (its name literally means microcomputer software) but I wonder at the missteps in their Surface strategy. We'll get to that in a moment.
I pointed to Microsoft's corporate culture in my blog post The Nail That Sticks Out. I am positive that they are fabulous about research in the ranks but at the top levels I believe their management is grimly despotic and unimaginative. In that case, what they need is a great leader. A few days ago, Microsoft CEO Steve Ballmer said, "We see nothing but a sea of upside". But they need a leader that doesn't need to boil the ocean to come up with the gold. One that has a vision for what can work. And, more importantly, what people will buy.
They need two things: focus and simplicity.
It is sad that, today, there are more than a few trends that point to the beginnings of a death spiral for Microsoft. To name a few: tablets start to eat the PC market, mobile computing succeeds for others but not for them, gigantic software bloat like Excel and Word are being replaced in the industry by small, mobile apps that cost a only a few of bucks, and companies are starting to use a Bring Your Own Device (BYOD) policy for their IT connectivity.
Individually, any of these trends would be quite bad for Microsoft. Taken together, these things are terrible.
Getting Into the Hardware Game
Microsoft's CEO Steve Ballmer laughed at, then roundly criticized the iPhone in September 2007 after it was introduced by Steve Jobs. It is clear that he simply didn't understand what was going to happen to the mobile space in a short five years.
Microsoft should have been working on Surface from that moment onwards. But clearly that didn't happen, since they only introduced Surface one month ago. To build mobile devices, Microsoft has to undergo a major transformation.
Microsoft claims that they are a hardware company. Mice and keyboards do not count. Comparing Microsoft to Apple, Dell, or HP in hardware prowess would be like comparing someone who dipped their toe into the pool with an olympic swimming champion. So that leaves the Xbox, which plugs into the wall. This doesn't exactly point to expertise miniaturizing hardware or really building any mobile computing technology. And their Xbox gaming platform is also under siege by mobile. They should never have let this happen. A whopping 61% of mobile phone owners use them for games. It is noted that iOS is the world's leading gaming platform.
And this is exactly where Microsoft wants to be: back on top.
Which means they must build hardware so they can create the whole product. Microsoft knows from experience that their OEMs willfully do what they want. And lag behind Microsoft's wishes and suggestions. Furthermore, the developers will have a larger set of hardware configurations to support. This has always been a problem with Windows: its generality. And it is the current problem with Android. If Microsoft wants to take a page from Apple, it must control the hardware configuration as well.
Microsoft's act of angering the OEMs by creating its own home-grown hardware is dangerous and can backfire on its revenue stream. For one thing, this doesn't build on its core competence. In retrospect it might have been better to take the Google approach and simply buy one of the OEMs, perhaps Sony or HP. Still, Microsoft clearly knows that mergers are not an easy process so it foolishly started building hardware.
Windows 8
Microsoft says they sold some 40 million licenses (hologram stickers). So Windows 8 is going great, right? Well, no. Firstly, this only represents Windows 8 PCs that have been shipped to retailers or distribution points, not end-user licenses (I can't believe they don't report end-user licenses!). Secondly, StatCounter reports that the Windows 8 usage share is falling behind Windows 7 in a comparable period from the launch. At only about 33% of Windows 7 usage, Windows 8 usage is in a serious lag. The firm NetApplications is telling the same story. Perhaps this is the effect of hurricane Sandy, as they said. But it's already one full month since the October 26th launch (and the hurricane). Things should have equalized by now.
On Black Friday, the busiest shopping day of the year, I would have expected the new, exciting Microsoft Surface RT to be a top seller, fulfilling several weeks of pent-up demand. Indications are just the opposite. When I have thrice visited the Microsoft and Apple stores in the Santa Clara Valley Fair mall since, I have consistently seen that customers in the Apple store outnumber those in the Microsoft store at least two-to-one. Though I did see my first Microsoft bag yesterday, being carried by a woman in Nordstrom.
Another force limiting Microsoft sales of Windows 8 has been the OEMs such as Toshiba, Sony, and Dell. The situation is this: both Windows 8 and appropriate OEM hardware must be in sync to produce the large numbers Microsoft is really expecting. My suspicion is that the enthusiasm of the OEMs has been dampened by Microsoft's entry into the hardware market. It has essentially become their competitor. I doubt that is going to help the relationship between Microsoft and the OEM. And they need to co-operate closely to get the numbers going. The OEMs, because there are several and they work to outdo each other in price, already operate on small margins and so it has become a dog-eat-dog world.
So PC sales are sluggish, and reportedly sales of Windows laptop and desktop devices have dropped 21% year-over-year since the Windows 8 launch, led by a 24% drop-off in laptop sales.
So PC sales are sluggish, and reportedly sales of Windows laptop and desktop devices have dropped 21% year-over-year since the Windows 8 launch, led by a 24% drop-off in laptop sales.
Windows 8 features a new modern user interface (UI) that features live tiles and supports touch. At first glance this new UI looks like the first real competitor to the elegance and clarity of iOS. Yet, I have two questions:
How Well Does It Work?
A friend brought in his Microsoft Surface RT this last week and I spent some more time playing with it and comparing it to my gen 3 iPad. Microsoft claims the text is sharper and better. The displaymate.com shootout shows that it really isn't. To me, the Surface is certainly not clearer. It seems designed to look good to PC users who have been using Microsoft fonts for years. Come on! In a side-by-side comparison there was no comparison: the iPad looked way better. Hell, even an iPad Mini text looked better. I compared the nytimes.com site directly.
I played around with it some more and found that browsing was an almost completely keyboard-centric experience. I had to have the keyboard attached. And type in the URLs (there was auto-complete). Which meant that I had to use it in the landscape format pretty much all the time because that's the way the keyboard works.
With that keyboard on it resembles a laptop in form factor. I found that, with its built-in kickstand, it really has to sit on a desk to be used. On your lap, it just doesn't work in this form factor. It's just not stable enough. So, it's a laptop that doesn't work on your lap. Hmm.
I am used to holding my iPad on my lap while I am at the couch, with the magnetic cover folded into its triangular shape and the screen therefore at an ergonomic angle to type on. Or using the iPad to read to my son at night with the lights off when he goes to bed. I use landscape for browsing, portrait for reading.
There were some interesting features that I was able to find and use, since I had read a few articles on Surface usability (that mostly came to the conclusion that it was very bad indeed). But it would have been difficult to figure them out if I had to discover them. I actually wondered is there was a user's manual available.
On Surface, swiping from the side and back brings up a task manager of sorts. Then you have to swipe down to change the app you are reading. On the iPad I can double-click the home button for that purpose or, even easier, use a four fingered swipe from side-to-side to get to the next app.
In fairness, on both devices, the gestures and actions need to be discovered. So it is really about how easy these actions are to accomplish.
Won't It Be Confusing For Desktop Users?
Windows 8 becomes the default mode for the desktop systems as well. But doesn't that mean there are two UIs being used and that the users have to switch their brains between them?
Yes, and yes.
In a recent article, venerable PCWorld talked to some usability experts on Windows 8 (before Surface had come out) and so it only deals with the bipolar design of the desktop version.
The overall tone is grim. Users are confused as to what to do. Commands aren't where they used to be. Mouse actions (replacing touch and swipe actions) are unobvious and hard to discover.
In InfoWorld, they call it bad. "Guaranteed to disappoint nearly everyone".
Jakob Nielsen reports that it the disparity between the two UIs is bad for many classes of users, both power and novice.
Live Tiles
This seems like a pretty good feature. And my experiences with Surface indicated that they are useful. Yet Microsoft doesn't really exercise enough control in their usability guidelines. Or they exercise the wrong control, which would be worse.
In an excellent summary article, Jakob Nielsen reports that unfortunately live tiles' implicit call to action creates "an incessantly blinking, unruly environment that feels like dozens of carnival barkers yelling at you simultaneously". That's not a good thing.
So let's just say that understated is not a term I would use with the Windows 8 user interface.
Perhaps this is one good reason why Apple curates the apps that can be run on their devices.
What's Going On With Surface Pro?
You can't use current Intel-based Windows apps on Surface RT because it uses an ARM processor, like the iPhone, iPad, and nearly all other mobile devices. This is generally because of the economical power consumption of the ARM. So you have to wait for the Surface Pro, which supports Intel-based applications, arriving in 2013.
The latest on the Surface Pro is, since Microsoft states it will use an Intel "Ivy Bridge" Core i5 processor, it will get about half the battery life of an iPad. Microsoft could have used an Atom "Clover Trail" processor or even one of the newer-generation Core "Haswell" processors. Either one would have required significantly less power.
It is becoming increasingly clear that power management becomes the main issue with designing a new gadget. After all, you can't just keep adding cores.
Hey, it hasn't shipped yet. They could still change it, right?
I think they really need their first full-featured Intel tablet to be a winner. But that battery life issue could be a real deal killer. Brian X. Chen from the New York Times, tweeted RIP in advance.
Surface Pro comes out at $899 for the 64GB model and $999 for the 128 MB model. And I believe you will need a keyboard for it. My experience trying out the two keyboards is that you will want to $120 Type Cover.
So, why not buy a MacBook Air, which actually costs less than the Surface Pro/Type Cover combination?
You can certainly use a MacBook Air in your lap.
Going Mobile
The claim is that by 2014, mobile internet usage will overtake desktop internet usage. So Microsoft needs a mobile solution as soon as possible. Like yesterday. Some argue that Microsoft may simply be too late.
Star power testimonials, like that of Oprah, were rendered famously laughable because they were tweeted on an iPad. Maybe they should have gotten Ashton Kutcher, or somebody like him with much more social media cred. And knowledge.
And BTW Oprah, you can tweet from the browser in Surface. Be careful how you (or your flotilla of social media minions) make testimonials. Sometimes it's the little things that matter!
What's Keeping It Propped Up?
Microsoft is being kept afloat because its revenue stream, with Windows, Office, Xbox, Server, and support, is not going to fall through the floor any time soon. There are plenty of loyal users. Who have iPhones and iPads and use them day in and day out. Even at work now that they started this BYOD stuff. Hmm.
Microsoft makes about 30% of their revenue from Office products and 55% of their revenue from Windows, Windows Server and Tools. The other odd 15% comes from their Entertainment division (Xbox) and their online services (support).
So if Windows begins to tail off, they can still exist merely by keeping Office relevant in the mobile environment. I hear an iOS version of Office is in the works.
Saturday, May 12, 2012
Pieces
Pieces, the separate parts of a whole, help us understand the logical process of construction. The relationship between the pieces, such as how well they fit, help us understand the workings and character of the parts. The individual pieces limitations can bear on the capabilities of the finished product.
In a good design there are no inessential pieces: each piece is necessary for the design to be complete. Each piece does what it should and also as much as it can do.
Interrelationships Between Pieces
Also, the relationship between the pieces is key. In organization, there are requirements for one department that are produced by another department. In development, one module produces a result that is used by one or more other modules. In three-dimensional objects, the objects can fit together like a dovetail joint.
In a drawing, the pieces can be shaded to fully reveal their form. They can shadow other pieces to show their inter-positioning. When you see a drawing, it can make you think about how the figures in the drawing are placed, and what message is intended by the artist. In a still-life this may be of little consequence. In an Adoration of the Magi, this can be of great consequence.
Cycles
The interconnection of pieces can be cyclic, producing an induction. This cycle should be essential to the concept of the design. In programming, the loop should be essential to the working of the program, an iteration that converges on a desired result.
In a drawing, the interrelationship becomes essential to the piece as well, as indicated by this impossible triangle, copied loosely from Oscar Reutersvärd, the Swedish artist. Sometimes we can highlight something different than what was originally intended, as in this case: we indicate how the figure can be made of three L-bends that mutually depend upon each other. Impossible figures often make an excellent illustration of cyclic structures.
Also, though, looking at cycles in different ways can reveal to us more about the problem than we originally knew.
Development In Pieces
In development, we first conceive of a problem to solve and then sketch out a structure of how we will solve it. Then it helps to divide the problem into pieces. It suits us best if each piece is well-defined. We know its inputs, its results, and how it will produce them. When a piece is too complex, we can divide it up into smaller pieces.
The nature of each piece can then be worked on individually. Either sequentially by one person, or concurrently by multiple people in a workgroup. Because each piece of the problem has a different nature, this lends itself to specialization, which is suited to modern workgroups. Each piece can then be tracked separately. The interrelationship between the pieces will need to be known by the manager to properly chart the progress of the development.
Most large projects are done this way. When they are done by one person, then that person needs to understand the workings of the project as a whole, and this can lead to a huge, unmanageable situation. But not always. When a problem gets too large for one person, the pieces of the problem lend themselves to adding extra people to help, and so project division is essential to minimizing unpredictable schedules.
When Pieces Fail To Connect
When conceptualizing the division of a project into pieces, it is sometimes not possible to foresee each and every wrinkle in the workings of each of the pieces. This can lead to a situation where a piece can not be constructed or where some pieces can't be connected properly.
It is times like these when it's important to stand back, take stock of what you have learned, and integrate that into the design. Sometimes this necessitates a redivision of the project into new pieces. Sometimes the redivision only affects a few neighboring pieces. This is part of the art of project design.
Development Strategies
The pieces of a project represent the result of top-down decomposition, which usually works as a division process. Once you have a project split into pieces, and the pieces implemented, then it becomes a problem of making sure that each piece works as it should.
This entails isolation of the piece, testing its inputs, and validating its results.
In a workable system, it is essential to be able to view the intermediate results of each piece. In a graphics system, this means literally viewing them on a screen to visually verify that the result is correct. And sometimes, the ability to view each minute detail is also required.
In a system that is constructed in pieces, one problem which is presented to the authors is this: how can we add a new feature or behavior to the project. This is important because usually it is necessary to construct a simplified version of the project and then make it more complex, adding features, until it is complete.
A useful capability is this: build a simplified version of a piece for testing with the other pieces. Then, each developer can work with the entire project and flesh out their piece independently. Or, even better, a new version of the piece can be checked in, adding essential capabilities, while more complex behavior gets worked on independently.
Performing the Division
I mentioned top-down decomposition as a useful tool in dividing up a project into pieces. But this must be tempered with other considerations. For instance, the necessity that each piece do exactly what it needs to do, no more and no less. Another example is the requirement that the inner loops be as simple as possible, necessitating the factoring of extraneous and more complex cases out. This means that the subdivision must be judicious, to achieve local economy within each piece. I have been on many projects where this goal was a critical factor in deciding how to divide the problem up into pieces. This can also serve as a razor which cuts away inessential parts, leaving only a minimal interconnection of pieces.
You also want to make sure the project is organized so that, if a piece fails, we can directly verify this by turning it on and off, and seeing the result of its action and the effect of it on the entire result. This is particularly useful when each piece is a pass of the total process, like in a graphical problem, or in a compiler.
Also, it is useful to construct a test harness that contains UI so that each piece can be independently controlled, preferably with real-time adjustment. This is a great way to exercise the project. I have used this many times.
Taking Stuff Apart
Moving from development to three-dimensional construction, the disassembly process can reveal a tremendous amount about the problems encountered in producing the object, device, or mechanism. When I was a kid, I liked to take things apart. Of course, putting them back together took a bit longer.
In modern times, there are entire companies that specialize in taking gadgets apart, and even slicing open chips to reveal their inner workings. This is the process of reverse-engineering. Examples of companies that do this are chipworks.com and iSuppli.
Gadgets
I was going do do a section on gadgets and the pieces thereof, but I realized that my knowledge of such things is really not up for grabs, nor is it for public consumption.
It's really too bad since gadgets are a classic example of how each part needs to do as much as possible with as few resources as can be spared. This is one of the basic design decisions that govern the division of a project.
Often the most remote considerations suddenly become of primary importance in the division process.
Code
A friend wishes to divide up code in such a way that module authorship can be retained and the usage monitored so royalties can trickle in the proper way back to the source. Very distributed-economy. This reminds me of the App market in a way, and I'll tell you why.
In early days of software, there was much custom software that cost huge amounts of money. There were accounting systems and mainframes. These would often cost a hundred thousand dollars. The CAD systems I worked on in the 70s were very expensive as well, and specialized software, such as all-angle fracturing software, could cost plenty. It's funny how big business still maintains this model, with distributed systems still costing lots of money. This will certainly be replaced by a distributed app-based model. Some believe that the gadgets are only the front end to a giant database. This model will be replaced by the cloud model.
In the 80s, personal computers' penetration increased and software became a commodity that was sold on the shelves of computer stores. This drove the average price down to hundreds of dollars, but some software still could command up to a thousand dollars. Consider Photoshop and the huge bundles of software that have become the Creative Suite. As time went by, lots of software was forced into bundles in what I call shovelware: software that comes with too much extraneous stuff in it, to convince the buyer that it is a wonderful deal. I'm thinking of Corel Draw! in those days. Nowadays, sometimes computers are bundled with crapware, which is the descendent of shovelware.
The commoditization of software was just a step in the progress of applications. Now, applications are sold online for the most part, even with over-the-air delivery. This is because much computing has gone mobile and desktop usage is on the decrease. Many desktops have in fact been replaced by laptops, which was one step in the process.
But the eventual result was that software is now sold for a buck and the market has consequently been widened to nearly everyone.
To do this, the software had to become easier. The model for the use of the software had to become easier. The usefulness of an application had to become almost universal for this to occur and for applications to become more finely grained. Apps now sell for anywhere from free to ten bucks. But on the average, perhaps a complex app will cost a piddling two dollars.
Is it realistic for the remuneration of code authorship to also go into the fine-grained direction from the current vanguard of open-source software? Nowadays, many app authors receive royalties for their work. The market for applications has exploded and the number of app designers has also exploded: widely viewed as the democratization of programming. This is the stirring story of how app development penetrated the largest relevant market. Can the programmers themselves become democratized?
The applications of today live in a rich encomium of capabilities that include cameras, GPS, magnetic sensor, accelerometers, gyros, and so much more. For code itself to go down a democratization path, I expect that the API it lives under will have to be just as rich.
Unfortunately, the API is owned by the platforms. And even, as in the case of Java (as we have found out this last week), by the company that bought it (Oracle). Apparently an API can be copyrighted, which is a sticky wicket for Google. The vast majority of apps are written for iOS today. But, if this won't be true forever, then at least it has clearly indicated how to create an incredibly successful business model around applications. And it indicates that APIs will certainly be heavily guarded and controlled.
The spread of technology is never as simple as entropy and thermodynamics, though the concepts may certainly bear on the most profitable use case.
Either way, the democratization of code could possibly solve the litigation problem, at least when it comes to applications built on top of APIs, because the new model might in some sense replace the patent model by reducing ownership to a revenue stream, democratizing software developers. But the APIs could not be a part of this solution as long as the platform developers considered them to be proprietary.
So, in the end, I don't think system software can be a client for this model. Unless its the GNU folks.
A cohesive design is almost always made up of separate pieces.
Interrelationships Between PiecesAlso, the relationship between the pieces is key. In organization, there are requirements for one department that are produced by another department. In development, one module produces a result that is used by one or more other modules. In three-dimensional objects, the objects can fit together like a dovetail joint.
In a drawing, the pieces can be shaded to fully reveal their form. They can shadow other pieces to show their inter-positioning. When you see a drawing, it can make you think about how the figures in the drawing are placed, and what message is intended by the artist. In a still-life this may be of little consequence. In an Adoration of the Magi, this can be of great consequence.
CyclesThe interconnection of pieces can be cyclic, producing an induction. This cycle should be essential to the concept of the design. In programming, the loop should be essential to the working of the program, an iteration that converges on a desired result.
In a drawing, the interrelationship becomes essential to the piece as well, as indicated by this impossible triangle, copied loosely from Oscar Reutersvärd, the Swedish artist. Sometimes we can highlight something different than what was originally intended, as in this case: we indicate how the figure can be made of three L-bends that mutually depend upon each other. Impossible figures often make an excellent illustration of cyclic structures.
Also, though, looking at cycles in different ways can reveal to us more about the problem than we originally knew.
Development In PiecesIn development, we first conceive of a problem to solve and then sketch out a structure of how we will solve it. Then it helps to divide the problem into pieces. It suits us best if each piece is well-defined. We know its inputs, its results, and how it will produce them. When a piece is too complex, we can divide it up into smaller pieces.
The nature of each piece can then be worked on individually. Either sequentially by one person, or concurrently by multiple people in a workgroup. Because each piece of the problem has a different nature, this lends itself to specialization, which is suited to modern workgroups. Each piece can then be tracked separately. The interrelationship between the pieces will need to be known by the manager to properly chart the progress of the development.
Most large projects are done this way. When they are done by one person, then that person needs to understand the workings of the project as a whole, and this can lead to a huge, unmanageable situation. But not always. When a problem gets too large for one person, the pieces of the problem lend themselves to adding extra people to help, and so project division is essential to minimizing unpredictable schedules.
When Pieces Fail To ConnectWhen conceptualizing the division of a project into pieces, it is sometimes not possible to foresee each and every wrinkle in the workings of each of the pieces. This can lead to a situation where a piece can not be constructed or where some pieces can't be connected properly.
It is times like these when it's important to stand back, take stock of what you have learned, and integrate that into the design. Sometimes this necessitates a redivision of the project into new pieces. Sometimes the redivision only affects a few neighboring pieces. This is part of the art of project design.
Development Strategies
The pieces of a project represent the result of top-down decomposition, which usually works as a division process. Once you have a project split into pieces, and the pieces implemented, then it becomes a problem of making sure that each piece works as it should.
This entails isolation of the piece, testing its inputs, and validating its results.
In a workable system, it is essential to be able to view the intermediate results of each piece. In a graphics system, this means literally viewing them on a screen to visually verify that the result is correct. And sometimes, the ability to view each minute detail is also required.
In a system that is constructed in pieces, one problem which is presented to the authors is this: how can we add a new feature or behavior to the project. This is important because usually it is necessary to construct a simplified version of the project and then make it more complex, adding features, until it is complete.
A useful capability is this: build a simplified version of a piece for testing with the other pieces. Then, each developer can work with the entire project and flesh out their piece independently. Or, even better, a new version of the piece can be checked in, adding essential capabilities, while more complex behavior gets worked on independently.
Performing the DivisionI mentioned top-down decomposition as a useful tool in dividing up a project into pieces. But this must be tempered with other considerations. For instance, the necessity that each piece do exactly what it needs to do, no more and no less. Another example is the requirement that the inner loops be as simple as possible, necessitating the factoring of extraneous and more complex cases out. This means that the subdivision must be judicious, to achieve local economy within each piece. I have been on many projects where this goal was a critical factor in deciding how to divide the problem up into pieces. This can also serve as a razor which cuts away inessential parts, leaving only a minimal interconnection of pieces.
You also want to make sure the project is organized so that, if a piece fails, we can directly verify this by turning it on and off, and seeing the result of its action and the effect of it on the entire result. This is particularly useful when each piece is a pass of the total process, like in a graphical problem, or in a compiler.
Also, it is useful to construct a test harness that contains UI so that each piece can be independently controlled, preferably with real-time adjustment. This is a great way to exercise the project. I have used this many times.
Taking Stuff Apart
Moving from development to three-dimensional construction, the disassembly process can reveal a tremendous amount about the problems encountered in producing the object, device, or mechanism. When I was a kid, I liked to take things apart. Of course, putting them back together took a bit longer.
In modern times, there are entire companies that specialize in taking gadgets apart, and even slicing open chips to reveal their inner workings. This is the process of reverse-engineering. Examples of companies that do this are chipworks.com and iSuppli.
Gadgets
I was going do do a section on gadgets and the pieces thereof, but I realized that my knowledge of such things is really not up for grabs, nor is it for public consumption.
It's really too bad since gadgets are a classic example of how each part needs to do as much as possible with as few resources as can be spared. This is one of the basic design decisions that govern the division of a project.
Often the most remote considerations suddenly become of primary importance in the division process.
Code
A friend wishes to divide up code in such a way that module authorship can be retained and the usage monitored so royalties can trickle in the proper way back to the source. Very distributed-economy. This reminds me of the App market in a way, and I'll tell you why.
In early days of software, there was much custom software that cost huge amounts of money. There were accounting systems and mainframes. These would often cost a hundred thousand dollars. The CAD systems I worked on in the 70s were very expensive as well, and specialized software, such as all-angle fracturing software, could cost plenty. It's funny how big business still maintains this model, with distributed systems still costing lots of money. This will certainly be replaced by a distributed app-based model. Some believe that the gadgets are only the front end to a giant database. This model will be replaced by the cloud model.
In the 80s, personal computers' penetration increased and software became a commodity that was sold on the shelves of computer stores. This drove the average price down to hundreds of dollars, but some software still could command up to a thousand dollars. Consider Photoshop and the huge bundles of software that have become the Creative Suite. As time went by, lots of software was forced into bundles in what I call shovelware: software that comes with too much extraneous stuff in it, to convince the buyer that it is a wonderful deal. I'm thinking of Corel Draw! in those days. Nowadays, sometimes computers are bundled with crapware, which is the descendent of shovelware.
The commoditization of software was just a step in the progress of applications. Now, applications are sold online for the most part, even with over-the-air delivery. This is because much computing has gone mobile and desktop usage is on the decrease. Many desktops have in fact been replaced by laptops, which was one step in the process.
But the eventual result was that software is now sold for a buck and the market has consequently been widened to nearly everyone.To do this, the software had to become easier. The model for the use of the software had to become easier. The usefulness of an application had to become almost universal for this to occur and for applications to become more finely grained. Apps now sell for anywhere from free to ten bucks. But on the average, perhaps a complex app will cost a piddling two dollars.
Is it realistic for the remuneration of code authorship to also go into the fine-grained direction from the current vanguard of open-source software? Nowadays, many app authors receive royalties for their work. The market for applications has exploded and the number of app designers has also exploded: widely viewed as the democratization of programming. This is the stirring story of how app development penetrated the largest relevant market. Can the programmers themselves become democratized?
The applications of today live in a rich encomium of capabilities that include cameras, GPS, magnetic sensor, accelerometers, gyros, and so much more. For code itself to go down a democratization path, I expect that the API it lives under will have to be just as rich.
Unfortunately, the API is owned by the platforms. And even, as in the case of Java (as we have found out this last week), by the company that bought it (Oracle). Apparently an API can be copyrighted, which is a sticky wicket for Google. The vast majority of apps are written for iOS today. But, if this won't be true forever, then at least it has clearly indicated how to create an incredibly successful business model around applications. And it indicates that APIs will certainly be heavily guarded and controlled.
The spread of technology is never as simple as entropy and thermodynamics, though the concepts may certainly bear on the most profitable use case.
Either way, the democratization of code could possibly solve the litigation problem, at least when it comes to applications built on top of APIs, because the new model might in some sense replace the patent model by reducing ownership to a revenue stream, democratizing software developers. But the APIs could not be a part of this solution as long as the platform developers considered them to be proprietary.
So, in the end, I don't think system software can be a client for this model. Unless its the GNU folks.
Subscribe to:
Posts (Atom)



