Showing posts with label "Rocket Science" of IT. Show all posts
Showing posts with label "Rocket Science" of IT. Show all posts

Friday, August 8, 2008

Adobe’s Change to the Computing Landscape


The cloud computing model is central to building web software. But there needs to be a balance between local client computing and cloud computing. The best applications will have an architecture that leverages both -- they're not totally in the cloud and not totally on the client.

Adobe’s AIR, in particular, is designed for that hybrid model. You can take advantage of the local computing environment in a way that is functional across different Operating Systems. You can do local processing, even when you are offline. But you can also take advantage of services in the cloud and even integrate the best data from multiple sources across the cloud into one application. The blended model of cloud and client is one that takes the best advantage of the computing landscape.

One could say, "Hey, it's all going to be cloud computing," but that is ignoring all the processing power that we have in front of us on our computers, or, you can say, "Hey, it's really still about the desktop," but that's ignoring the revolution of the Internet and all of the services available in the cloud.

You want a solution that helps you balance across both. That's hopefully the architecture the world is building.

Monday, July 7, 2008

How Does Adobe Make Money?


Adobe gives away its innovative technologies, such as, PDF Reader, Flash Player, the Flex development framework, and now AIR, for free. So, how does Adobe make money? For Adobe, the revenue comes from several sources.

One of the revenue sources is from tooling – Adobe builds some of the best tools in the world. The more people build widgets that work on Adobe’s free technologies, the more interest Adobe hopes to drive to its tools: Photoshop, Creative Suite, Dreamweaver, and new tools, such as, Flex Builder.

The second source of revenue is from its server technologies. Adobe makes servers, like LiveCycle, which manages business process workflow, documents production, and reliably shares documents, Flash Media Server, which does streaming of video, and ColdFusion, which is a rapid application development framework.

The third source of revenue is from hosted “freemium services”, which means the services are free to some extent and then you need to pay some premium for using those services thereafter.

The fourth source of future revenue is going to be from its own standalone media player. The media player is also going to be free to end users. The way this generates revenue is: You can either watch free video streams or, if the content providers want to monetize their content, they can associate advertising with Adobe’s media player, and then Adobe shares in the advertising revenue.

Strategically, Adobe feels like the more it can help innovate and move the expressiveness of the Web forward, the better off Adobe is in terms of enabling people to produce that expressive content with its tools and servers.

Wednesday, July 2, 2008

What Does a Telecom Company Need to Get Right?


According to McKinsey, a telecom company needs highly efficient, automated self-services. Telecom companies play a key role in automating the sales and service processes of other sectors. Now they must automate their own. This can be achieved by:

First, Telcos must do a better job of creating a compelling online experience. Too many Web sites or a poorly-designed Web site stumps consumers, who don't understand what information is being sought and find them hard to navigate through. For example, it may be possible to book a repair online, but not to check when the technician is coming, so the customer gives up and picks up the phone.

Secondly, Telcos must also use state-of-the-art sales approaches on their Web sites. Managers who fear that the online channel is a less effective sales tool than a human being who sells to another human being miss the point. Well-performing Web sites are capable of achieving higher sales per interaction than call centers do; it's a matter of execution.

Thirdly, companies can, for example, deploy sophisticated interactive sales approaches customized for specific kinds of customers and what they are trying to accomplish. Such tailored pitches achieve high close rates; Amazon, for instance, knows who you are and what you have purchased in the past, and it immediately woos you with personalized merchandising. Well-structured sites can segment customers into low-potential prospects - who are served cheaply online - and good prospects - who are directed to pick up the phone to complete a service or sales transaction that began online. This approach allows call-center employees to work their magic, but more efficiently and effectively. The tremendous flexibility, provided by Customer Relationship Management (CRM) and dynamic HTML, is an invaluable tool for giving each consumer this kind of unique service and sales experience — a "virtual store" designed for every individual. But such a careful tailoring of the online experience requires the marketing and IT functions to work together, closely.

The cost of coordinating a problem across separate functions is therefore high, as is the potential for error - which might be a result of rekeying information, for instance - so a delayed response to the customer is inevitable. Such processes are ripe for improvement, including better automation. Telecom companies that want to tackle their back-office problems successfully should bank on the use of IT as the glue to hold cross-functional processes together.

Tuesday, July 1, 2008

The Future of Convergence

Think back to the PC revolution. For ten years before the PC came on the scene, we were programming on microprocessors. Microprocessors alone didn't make the PC market. What made the difference was that software was eventually put on top of the hardware, so that people could put applications on it. Suddenly you had the PC revolution.

Now fast-forward 25 years and we're at the same place, except that instead of having only the hardware in your PC box there is also the hardware of your connected devices. Increasingly, people hop from one connected device to another throughout their daily lives — BlackBerry, cell phone, work phone, PC, laptop, music and camera phone, TV, game console. The number of connected devices we use and carry increases every year, and more and more they are as much for our personal lives as for our professional lives. Family rooms are becoming more technically interesting than offices!

What if we did today the same thing that happened 25 years ago — wrap a layer of software, but this time around the hardware of connected devices, so that people could build applications on top of all this!!! The applications of such a platform are limitless, and will be centered as much on the user's quality of life as on business productivity. The enabling technologies and applications here are the next big thing for the convergence market and the IT industry as a whole.

Verizon's iobi platform is all about this. It will enable people to remotely control their content and events on any device; the content here could be calls, voice mails, files, notes, pictures, music, and video. For example, I'd like to know instantly anywhere in the world if my office calls any of my devices and be able to bring the call to where I am. I'd like to contact any individual or group in my business or personal circle at any time, using any device, and with the communication method of my choice. I'd like to have my media available to me at all times on any connected device capable of rendering them. I'd like to be notified of to take my prescription wherever I am. I'd like to have an "off" button to hold all forms of communications. Of course, most applications on such a platform will be created by various different companies —independent software vendors and so forth — which have intimate knowledge of a special vertical segment of life or business. Many of the applications will be as unpredictable as PC spreadsheets were back in the early '80s.

Friday, June 6, 2008

What is Adobe Integrated Runtime (AIR)?

When you move from desktop application development to web application development, you gain a lot in terms of distribution, working across operating systems, and ease of updating applications. But you lose things, such as, access to the local file system, drag and drop features, the ability to notify the user if something changes.

So, Adobe thought: How could it get those desktop features to Web apps?

AIR is basically about enabling web apps so that they have the “power” of the desktop application. In today’s IT enabled world, the trend is toward hosted applications, software as a service, that are built with web technologies. AIR helps your web apps to look beyond the boundary of a browser.

Adobe is just following its suite, as it has solved the cross-printer problem with Postscript, has solved the cross- word-processing-program problem with Portable Document Format (PDF), and has solved the problem of multimedia and video incompatibility across the Web with Flash. So, the obvious next frontier is solving the problem of cross-operating-system application runtime. In some ways, it's the toughest of all the problems that Adobe has cracked so far.

As people are relying more and more on web technologies for getting information, doing business transactions, expressing themselves creatively. The digital revolution that's happening now is with web technologies. So, by all means, for Adobe, this problem is worth pondering on.

Web apps have a lot of benefits from an IT perspective. They are easier to monitor because you just update them on the server and everyone gets the updated version. We don't have to worry about having a particular configuration on the desktop. You can have Mac, Windows, Linux, whatever you like, and your web applications will work. Moreover, web apps are easier to develop. You can have web developers creating these applications in conjunction with traditional IT architecture on the server side.

But, while web developers gained a lot when they went to the Web, they also lost the ability to access “personal” or “confidential” information while they are on the road. For example, companies have directories for everyone who works there. You can usually look up information on those directories while you are inside the organization’s firewall, but while you are traveling, either you don't have a network connection or you have to connect through a Virtual Private Network (VPN) to get that information. Now, this problem could be solved using AIR. AIR helps you to “integrate” your web apps with your mobile devices, and also gives your web apps the power of traditional desktop apps.


Hats off to Adobe!! Good work.

Thursday, June 5, 2008

Trend-setting Engineering at Adobe

On February 25, 2008, Adobe Systems launched version 1.0 of the Adobe Integrated Runtime, or "AIR," which allows software programmers to use web-development tools to create desktop software applications that run on all the major operating systems: Windows, Mac, and -- coming soon -- Linux.

For Adobe, AIR is a big bet. It is Adobe's "fourth platform," positioning it as the next link in the chain that includes PostScript, Acrobat's PDF (Portable Document Format), and Flash. The first three created disruptive paradigm shifts in their respective fields -- typesetting and document printing, electronic document interchange and web interactivity -- and all have generated significant revenues for Adobe.

On March 5, 2008, Microsoft, the software giant, released a beta (test) version of the next generation of its Silverlight technology. The first version of Silverlight was aimed at combating Adobe's success in establishing Flash as a popular method of delivering video over the web. The most recent release of Silverlight, version 2, is targeted at Flash's ability to create what Adobe terms "rich Internet applications" -- web-based software programs that provide many of the features associated with traditional desktop software.

While Microsoft's Silverlight competes with Adobe's Flash, Microsoft doesn't have a technology that directly compares to Adobe's AIR.

Thus, the contest between Microsoft and Adobe over the next generation of software development tools is, to some extent, based on differing views of the future of computing. For Microsoft, the future lies in what it terms "software plus services" -- that is, using traditional desktop software (like the company's popular Office franchise) to connect to the web to access online services. Adobe believes the future rests on cross-platform software that allows developers to use web-based tools to build applications that run inside a web browser or, with AIR, can be installed as full-featured desktop software programs.
(The grass is always greener on the other side - just joking!!)

As per my understanding of the situation, the differing views of Microsoft and Adobe on the future of computing landscape can be consolidated, in layman terms, as that the entire landscape of computing is going to get amalgamated big time. Players, including software developers and end users, on client sites – standalone PCs, laptops, and handheld mobile devices – are going to leverage the potential of server-site computing. Similarly, the vice versa holds true – players on server sites need to leverage the potential of client-site computing. Thus, both MS and Adobe are perfectly right in their visions of the future of computing. There are no differing views – both of them are starting off their journeys from so-called two opposite ends to the other end of the same spectrum.

For example, the recently released the Adobe Media Player, built with AIR, can both access online video subscriptions and organize locally-stored Flash video files. In the works is an AIR version of Buzzword, a word processor with many of the basic text formatting features found in Microsoft Word and similar programs. A number of other companies including eBay, AOL and Salesforce.com have deployed AIR applications. Adobe hopes many more will follow.

Tuesday, May 13, 2008

Shortcomings of the CMM Standards

Carnegie Mellon's CMM and the other standards don't address some sources of waste, such as ineffective allignment between businesses and IT, the unavailability of the right resource at the right time, or architectural complexity. Moreover, CMM treats human resources as commodities - this conceptualization is engrossly wrong, because humans differ from each other and they cannot be solely judged on the quantifiable parameters of inputs and output.

Three big challenges are in focusing on:
1) changing behaviour.
2) broadening the focus from the specifics to general principles.
3) setting up the right incentives.

No transformation can sustain itself without the proper metrics and incentive systems that ensure change. In application development, "function points" measure the level of efforts devoted to a project. A successful lean transformation requires new metrics to identify waste and to set goals for reducing it. A lean transformation is a journey well worth the effort.

Lean, of course, isn't a technology, but rather a methodolgy applied to processes -- originally in manufacturing operations but increasingly within services, including IT.

Tuesday, February 12, 2008

Think Until You Understand

1) Risk Management is all about Identification, Classification, and Mitigation of risks.

2) “The mission should always be to help organizations achieve their project objectives and objectives of scope, quality, budget, and schedule within the context of the natural, social and political environment in which the project is being developed.”

3) "Optimizing performance at one stage of the process may not be beneficial overall if additional costs or delays occur elsewhere. For example, saving money on the design process will be a false economy if the result is excess construction costs."

4) "Fragmentation of project management among different specialists may be necessary, but good communication and coordination among the participants is essential to accomplish the overall goals of the project. New information technologies can be instrumental in this process, especially the Internet and specialized Extranets."

5) "Productivity improvements are always of importance and value. As a result, introducing new materials and automated construction processes is always desirable as long as they are less expensive and are consistent with desired performance."

6) Generally, project management is distinguished from the general management of corporations by the mission-oriented nature of a project. A project organization will generally be terminated when the mission is accomplished. According to the Project Management Institute, the discipline of project management can be defined as follows:-
Project management is the art of directing and coordinating human and material resources throughout the life of a project by using modern management techniques to achieve predetermined objectives of scope, cost, time, quality, and participation satisfaction.


7) "The majority of all development projects fail to meet their time and cost targets, with the overrun typically between 40 and 200 percent."

8) "The most precious and intangible quality of leadership is trust."

9) System integration needs are determined by the chosen decomposition and its resulting architecture. We map the structure of interactions in order to plan for integration.

10) Project Management comprises a body of methods and tools that facilitate the achievement of project objectives: within time, within cost, at the desired performance/specification level, and while effectively and efficiently utilizing the assigned resources.

Monday, January 7, 2008

Unleashed 1.0 of “Rocket Science” of IT

A key component of green projects is integrated design, which leverages the expertise of multiple disciplines, such as architecture, engineering, and contracting to devise comprehensive solutions.

Development costs are only the tip of the iceberg. Maintenance, base of the iceberg, is the major cost incurring factor. Software maintenance comprises: error correction, 20 percent; adaptation, 20 percent; and enhancements, 60 percent.

Software becomes increasingly unstructured as it is changed.

We think flexibility means start working without even understanding what all need to be done!! Interpreting flexibility this way is suicidal!!

A system becomes intellectually unmanageable when the level of interactions reaches the point where they cannot be thoroughly: planned, understood, anticipated, and guarded against.

Prototyping is done to assess feasibility and to verify requirements.

Drawbacks of prototyping are:
1) Prototype evolves into a final product - which is less robust.
2) Documentation is often sacrificed.
3) Quality defects may cause problems later.
4) Hard to change basic decisions made early.
5) Can be an excuse for poor programming practices.
6) Not so easy to maintain.

The basic characteristics of an Incremental Model are:
1) Functionality produced and delivered in small increments.
2) Focus attention first on essential features and add functionality only if and when needed.
3) Systems tend to be leaner.
4) May be hard to add functions later.
5) Follows Waterfall down to implementation.
6) Different parts implemented, tested, and delivered according to different priorities and at different times.

Spiral Model is risk driven, and radius of spiral represents cost accumulated so far.

Drawbacks of CMM: treats people as assembly line workers, i.e. replaceable, and unreliable. Humans are subordinated to defined processes.

Characteristics of a good Requirement Specification are:
1) A structured document that sets out the services the system is expected to provide.
2) Should be precise so that it can act as a contract between the system procurer and software developers. Needs to be understandable by both.
3) Describes what the system will do, but NOT how it will do so.

Characteristics of a good Design Specification are:
1) An abstract description of the software that serves as a basis for detailed design and implementation.
2) Describes HOW the requirements will be achieved.
3) Goals and constraints specified in requirements document should be traceable to the design specification and from there to the code.

Contents of a Requirements Document should be:
1) Introduction
2) System model with Use-Cases
3) System evolution – fundamental assumptions on which the system is based and anticipated changes due to the hardware evolution, changing user needs, etcetera
4) Functional requirements – the services provided to the user. This includes timing and accuracy requirements.
5) Constraints – how the goals can be achieved. E.g. safety, hardware, programming languages, standards that must be followed, quality requirements, etcetera.
6) Priorities – guide tradeoffs and design decisions, if all the requirements and constraints cannot be completely achieved.
7) Interfaces to the environment – input and output interfaces and relevant assumptions about environmental components with which the software will be interacting.
8) Glossary
9) Indexes

Make program structure fit the problem structure.

Think of development as a TREE rather than a LINE.