Friday, December 31, 2004

Joel on Software Book Review

I just finished Joel On Software. A book devoted to software management, software development, and best practices. It's great book. I especially like the section devoted to writing a functional specification. Most of the practices that Joel suggest are easily implemented and with consistent use can improve the quality of software development, and your working experience. I do have a bone to pick with Joel. He consistently mentions Netscape as an example of what not to do in development in deciding to chuck Netscape 4.0 and re code from scratch. He then holds this up as why they lost the browser war.

Sorry Joel but that was hardly the reason why. Microsoft's predatory business practices were the reason, the decision to code from scratch acknowledged that fact. If you take a look at the market share Netscape had at that point, it wasn't 90% of the market, but rather closer to 25%. Here's an article from 1998 showing their market share had dropped to 54%, clearly the MS bundling strategy had worked. Another study has their market share at below 20% at January 1998, when they announced their open source strategy.

By 2000 the point had already tipped. The real question is what caused the tipping point, IE's superior technology? Or the very clear threats they made to hardware manufacturers that their OS licenses would be pulled if Netscape was bundled. As developer at Microsoft, Joel only saw the great things about Microsoft, namely their development practices, devotion to excellence in software and technical progress. He clearly never sat in a meeting where MS has welded their current monopoly on OS as a huge stick to force people into line. These meetings happened at every single hardware manufacturer that was bundling Netscape. Lo and behold they stopped shipping Netscape.

Let's remember that Microsoft was found guilty of anti-trust violations for this very behavior. The simple fact of the matter is that MS choked off 'Netscape's air supply' and their own incompetent practices finished them off. After removing the competition,MS stopped development on the browser, disbanded the team and as a result we have seen little to no improvement in IE since 5.0. Granted Joel does touch on this in the book, namely Microsft's reluctance to improve the browser as it commoditizes the OS. I have known several developers who have retired from Microsoft and they all love the place. As a developer I am sure Microsoft is a fantastic place to work. I only worry about some of their practices in business development.

This little bone of contention aside, I found the book useful, a great resource and I highly recommend it. The Joel Test is a useful guide for rating your current development practices. And to be frank his section on how to write a functional specification is one of the most useful I have ever read. I have found it especially helpful as I myself writing two specifications right now.

I highly suggest his blog
Joel On Software

You can buy his book Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.

Wednesday, December 29, 2004

Tsunami Relief - Give Now, Give Often

I logged into my Amazon Associates account today and Amazon has already set up an easy way for people to help. So I thought it warranted a mention here.

Click Here to Donate for Red Cross Relief

Mars Rover finds junk on Mars

Here's a classic photo of the Mars Rover Opportunity taking a picture of it's own heat shield littering the martian landscape. Kudos to the guys at NASA for having these two rovers far exceed their mission parameters.

Local Search Continues to Heat Up

Internet Week has reported that Yahoo has entered the local job search market. I guess you can kiss you local newspapers good bye. This can only continue to place pressure on the classifieds which have continued to shrink.

Monday, December 20, 2004

Last Post

This is the last article I wrote that year and it never got posted as I got busy selling my company to VA Linux Systems. What went wrong with VA is clearly what is wrong with many VC funded companies. The VC got paid when the stock when public and that was the whole purpose of VA; to go public. Nevermind that their core financials were a mess, margins were terrible and had never had profitable quarter. But they had the largest opening day pop ever!
I think 35 people work there now.

Anyway this never got posted.

GPL, Meta Narratives, and the open source movement



The relationship between the Free Software Movement and open source software is some what contentious with Richard Stallman while supporting the open source movement, believes that use of the term open source creates confusion and that the open source movement de-emphasizes the important part of the Free Software Movement, namely the freedom.

Part of the problem probably lies in the English language which has doesn't have a different word for free as in price and free as in liberty. Other languages such as French, Spanish, Farsi or Japanese do make a distinction and do not have the problem. I am sure that freedom is important to both parties, although RMS might argue its more important to the Free Software movement.

The primary purpose of this weeks column explores another aspect of the relationship of the GNU Public License and the culture of all free software projects, from Apache, GNU/Linux, Sendmail, and the BSDs. The GPL is the seminal document of both the Open Source and Free Software movements. Written in 1985 it encapsulated RMS's beliefs about the rights that users should have in regard to their software. It also encapsulated the beliefs of the software-sharing communities from the early days at MIT's artificial intelligence lab. The license also guarantees that the software licensed under it will remain free due to its viral nature.

The GPL also deconstructs the traditional terms of copyright law, giving rise to the expression copyleft. For those who don't know what desconstruction is, it is a popular among English majors and cultural theorists forproviding insight into moderm cultural practices. It has developed its own internal language of sorts, generally rapped around the work of Paul DeMan and Jacque Derrida. The primary tenets are both shockingly simple and elusive at the same time, requiring multi page definitions which agree on nothing. Definitions for deconstruction vary greatly but at it simplest level it can be simpled stated as Socratic method applied to common Western cultural concepts.

Surprisingly the notion that Western cultural concepts, text and literature are completely artificial constructs is apparently enough to send most English majors into anaphylactic shock. (Just a short note to the readers, my second major in college was English) For those that don't remember Socratic method, it can be summarized as the questioning assumptions made in your opponents arguments without positing anything yourself. Socrates won his debates by allowing his opponents to effectively paint themselves into a corner without making a positive statement himself. Derrida does this to modern texts by taking a look at the fundamental assumptions implicit in the narrative structure of the text. (Text is defined as broadly as possible, meaning all cultural discourse.) This explains why defining deconstruction is so gosh darned difficult.It can be done by anyone on anything at anytime.

Of course this is simplifying Derrida to an extreme, especially since Derrida writes at roughly the same level of complexity as James Joyce. Unless you are extremely well read you are likely to find yourself confused and trifle bit bored. In fact Derrida writes to entertain and educate as well as show off exactly how well read he is. Like Joyce he's a master of the multilingual pun. Of course Derrida wasn't the first person to notice that the entirety of Western thought had a certain man behind the curtain feel to it. For the engineers and mathematicians out there I would recommend Kurt Godol's Incompleteness Theorem which did the same thing for mathematics. Software engineers allows seem comfortable with the idea of artificial constructs masquerading as absolute truths. Perhaps it's the fact that all computers languages are artficial.

Of course it goes without saying that PERL is the best.

Of course one of the many "tenets" of deconstruction is that current universalizing discourses(ie Western democracy, Christianity etc) no longer serve as functional meta narratives (meta narratives are the big picture narratives, ones claiming to help shed some light on all human being). Not much of a suprise here except the original purpose of the column. GPL deconstructs copyright (using the traditional legal notions of copyright against itself to enforce freedom of the copyrighted product) and at the same time creates a new meta narrative structure of Free Software in general. All Free software projects owe this cultural debt to Richard Stallmansince the fiercely argued GPL seems to embody the cultural principles of the both the Free Software Movement and Open Source Movement. The preamble of the GPL seems to embody the hope and the cultural goal of the movement



The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.



We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors'
reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.


For those clever deconstructionists out there (and I know there are at least two), you will note that the "other" with the GPL is the "closed source" or proprietary software model. What I find interesting that the GPL deconstructs the traditional notion of copyright (opening instead of closing systems) and at the same time creates a meta narrative which helpsexplain culturally and supports all open source projects on the net.

I must admit that writing this column took far too long and covered an exceedingly esoteric subject. Thanx to Dan Fineman at Occidental College's English Department for the original training in deconstruction. The relationship between Socrates and Derrida is really his. Next month's column will cover Xanadu, Ted Nelson, Dr. Theodore Modis, and how meta data structures are now proliferating across the web and how that's a great profit opportunity.

Sunday, December 19, 2004

First Post!

Ok this was my very first post in February 2000. Talks about open source and ecommerce, although it's probably applicable to a wide variety of software types


The Importance of an Open Source Approach in an Ecommerce Deployment



This article is geared primarily to non-technical users,executives and management. It is not intended to be a technically rigorous paper but rather some general guidelines about electronic commerce and the importance of open source software in electronic commerce.

In order to understand the importance of open source software to your company's electronic commerce deployment, it is important to understand the structural changes and implications of the Internet and the new economy. The new Internet economy represents a strategic inflection point in computing and business. "Strategic Inflection Point" is a term used by Intel's CEO Andy Grove and refers to the periodic sea of changes the computer industry undergoes when the old rules no longer apply and a new paradigm begins to take hold. Intel has made it one of its missions to inculcate a culture that looks for these strategic inflection points so that they can avoid the fate of so many other companies in the computer industry clinging to the old paradigm. Minicomputer manufacturers are one example of companies missing the sea of change that personal computers brought on.

Clearly the Internet as well as related technologies represent a fundamental sea of change if there ever was one. In a number of industries we find web-enabled companies re-writing the rules of that industry. E-Commerce has become more than a buzz word, with CEOs launching ambitious projects to avoid being "Amazoned." These projects are important to the enterprise, often times the life of the company is at stake. The choices made in a company's approach and its software strategy often make the difference in the success or failure of the project.

When deploying these initiatives, rapid iterative approaches based on user feedback are a better way to maximize the functionality and profitability of the system. Too often, assumptions are made about the perceived or expected behaviors of users in regard to e-commerce systems. Too often, corporations take the same approach with a web site that they would with a brochure. Build it once and then leave it alone for a year. Expect to spend at least half of what you spent building the site on maintenance and changes in the first year.

With that said, it is important to design your site with flexibility and the ability to change in mind. Make sure that you build proper content management tools with the site and have a procedure for updating that content. If you produce a catalog, make sure that the content for the catalog can be re-purposed on the web easily.

Often the previous approach was to exhaustively select a vendor and then engage them in deploying the software. Given that most companies amortize this cost over a five-year period, selection of the vendor and technology is critical. In an industry that is only five years old, selecting the proper vendor and technology is very difficult.

Many companies make the choice, "Let's go with the safe solution." This often means the company's current vendor or the one perceived as the largest in the marketplace. While this appears to be the safe step, it most certainly is not the optimal solution for the company, especially since the previous safe option players may not be the best solution to deal with the new challenges presented by the inflection point. In fact, because these represent the previous "safe" vendors, they represent precisely the wrong assumptions in their approaches, methodologies and technologies.

The safe vendors, before the inflection point, are no longer the appropriate vendors after the inflection-point. Look for vendors that have developed around the inflection point.

Additionally, choosing the largest vendor may not make you safe. When selecting a vendor for e-commerce deployment, it is important to look beyond the life of the vendor. The CEO should assume that the vendor will not be with them in some way or another in five years. Software will change, the vendor may change focus, be bought out, or they may discontinue the product. Technology has proven time and time again, even safe vendors can go away in five years.

This means that in any e-commerce initiative, you embark on making sure you get the most important element - the source code with the proper documentation. This also might be a good time to re-evaluate your knowledge management procedures. If the vendor cannot supply the source code, look very carefully at them. What guarantees do you have with this vendor? Any vendor that cannot provide the source code to what will become the cthe core of your business initiative on the web shouldn't be taken seriously.

Remember that you are betting your business on this.
Think about your relationship with your current IT vendors. Is it everything you want it to be?

In assessing the impact of the Internet, it's important to keep in mind several things about the strategic shift it embodies.It's a networked economy. This means the company with the fastest, most secure network with the most network connections wins. Let's take a look at what this means in the context of IT deployments and e-commerce initiatives.

Fastest - This is fairly simple to understand. Any e-commerce system. needs to be fast. The server or servers shouldn't be underpowered. In fact, a good rule of thumb is to take your worst case estimates and multiple it by five. As far as speed of the network is concerned, it is a mistake to assume that your internal IT people can deploy enough bandwidth to satisfy your customers. The same can be said for regional ISPs and many of the national providers such as Earthlink or Mindspring. E-Commerce is the domain of national co-location and data center providers. The key in choosing one of these vendors is to select a vendor with a large set of peering arrangements. Peering arrangements can best be described as private connections with other ISPs such as America Online. This is a relatively small marketplace of providers, such as Exodus Communications, Frontier Global Center, Qwest, and Above.net. When choosing an e-commerce provider, make sure they have a data center in one of these facilities or have a relationship with one of these providers.

By speed we don't just mean the network and the servers.The time it takes to deploy to the site is critical. You need to get the site up yesterday. Make sure you can deploy in less than a quarter and continually make changes to the system based on user feedback.

Most network connections - For Amazon, one of their competitive edges has been their affiliate network. These connections to the Amazon site have a tangible benefit and represent one of the clear competitive advantages Amazon has. To date, it has generated 1,059,360 incoming links to the Amazon site. By contrast "competitor" Barnesandnoble.com has 63,254 incoming links to their site. Their sales figures represent a similar disparity (roughly 12 to 1). So when deploying an electronic commerce initiative, look for systems that maximize incoming links. One of the most cost-effective ways to do this is with an affiliate program such as Amazon's. Amazon developed their own software to track purchases, and currently they can boast a greater number of affiliate networks such as Clicktrade, BeFree, and Linkshare. These outside networks also increase deployment costs in addition to the software costs from the providers themselves. In the long term, it's better to use software with affiliate tracking built-in since this saves on integration costs and assures ownership of the affiliate relationship

Most secure network - Network security in the networked economy is of vital importance. As a recent break in at CD Universe showed, an online record store with three years of e-commerce experience, over 300,000 customer's credit card information combined with their personal information was lifted by Russian cracker. Undoubtedly it was the single greatest publicized e-commerce crack to date, and demonstrates the problem of not rigorously testing systems and performing regular security audits. It also highlights another problem - namely, closed source software. The piece of software which was cracked, was the closed source credit card authorization system. A recent study by Securityportal.com concluded that open source software was corrected much more quickly than closed source software from Microsoft and Sun Microsystems.

Having the source code allows you to have the source vetted, corrected and modified to fit your companies needs.

Without the source code, you just might find your business orphaned with no place to go for support or help. Not having the source code to your company's internal e-mail client isn't that important. Not having the source code to your e-commerce solution can prove devastating.

For example, in June 1999, ICat, a division of Intel and at that time a leading e-commerce solution, informed its entire customer base that ICat would no longer be supported. ICat also informed these customers that they would be bound by the terms of their license and no source code would be forthcoming.

For the IT managers and CEOs who took the "safe choice" with closed source, lost.



For this reason, access not only to source code, but the ability to change source code is paramount. Source code escrow schemes prevent you from proactively modifying that code for your site. For this reason, I recommend against source code escrow for most businesses.

For most businesses, this sounds like a much greater IT investment than they previously made and it probably is. The previous attitude of, "We'll just buy solution "X" won't knock the ball out of the park for e-commerce. It might get the site up and running, but don't expect to be on the cover of Fortune magazine any time soon for it. In the networked economy, the network itself becomes one of the most valuable assets

In the non-networked economy, if the company's e-mail system was down for a day, this represented an annoyance, but not a business-threatening situation. If this happened several times a year, it wouldn't represent a business threatening crisis, although it certainly it should be repaired. Keep in mind that being down three days a year still means a 99.17% uptime. Consider the reaction to this with an e-commerce web site such as Amazon or eBay - it significantly drove down their stock price!

The lesson here is clear, stability of the system and the ability to remain up under heavy loads is critical and probably 99.99 uptime should be the operating goal of an e-commerce initiative. Once again, I would recommend taking a look at software that is open source, has been peer reviewed and professionally developed. Ask about uptime as well as total cost of ownership. You are betting the future of your business on it.

If you are looking to purchase software, and want your internal IT to deploy it, ask them what platforms they feel most comfortable supporting with the stability, security and uptime requirements you need. More than likely, some of the Internet developed software and OS options represent the best choice since many of these grew up around natively in the strategic inflection point that is the Internet. More than likely, you will outsource this effort to a firm that specializes in e-commerce integration. If so, be sure to get source code for every component to be used in the site. It would hurt your business to be dependent on a closed source product without any recourse for support of that software. Additionally, ask about integration with existing ERP packages and business process. Usually, having the source code makes this task much easier.

Finally, be prepared to move at net speed. This means putting in place a system to handle customer inquiries in a timely fashion, and making sure fulfillment is rock solid. The net moves quickly and having the customer service systems in place to handle order volume and customer concerns is crucial. That is an area where traditional brick and mortar companies have an advantage over net companies. Customer support infrastructures are already in place. You need to make sure that your customer service center is properly integrated with your website and your existing infrastructure can support it.

Launching an ecommerce site can be a daunting task. By making the right decisions early, you can save yourself a lot of headache and be assured that it will positively impact your company's bottom line.