The Art in Business System Design. Jeff Chapman

Чтение книги онлайн.

Читать онлайн книгу The Art in Business System Design - Jeff Chapman страница 4

The Art in Business System Design - Jeff Chapman

Скачать книгу

or “review.” This should retrieve some industry zines with a more thorough examination of what the vendors offer.

      Now create a spreadsheet for yourself with “weighted” line-items for the characteristics you need. Remember to add lines for Vendor stability and facilitation record: more than just purchasing software you are buying a long-term service relationship with a company. How are they run? Are they stable? How is their customer service? It can easily take a few days to conduct a thorough review.

      After you narrow the field ask the top two choices if you can get a demo. Since some of the actual folks in your company who will be using the package day-to-day may lack the skill levels to be comfortable with the software allow them time to examine it and then gather their impressions.

      Large purchases may require considerably more effort in the review including issuing formal RFPs, evaluating the impact of any BPR that may need to occur, and determining how you will integrate the new purchase into existing systems. Don’t be shy to retain professional assistance for larger selection efforts.

      Artful Verification

      Sometimes despite your desires to remain detached and analytical (you did after all choose to be a system design professional) you will land in a position that requires you to pass judgment on others. This is never more true than when you are selecting a vendor to sell you a software package. You have to be friendly but still cynical; vendors send you salespeople who know how to read your desires and make promises that cater to them. As a buyer you need to lean critically toward what you know as the facts.

      Back in the early 1980s, when personal computers had 5 1/4 inch floppy disks and still went zyg zyg beep to start up (when ten megabyte hard disks were all the rage) I had the opportunity to review a few vendors to provide hard disk security systems. The concern back then was that somebody could boot up from a floppy, switch to the C drive, and read all your data.

      One vendor impressed me by claiming that they not only could provide complete security, but actually prevent an unauthorized person from accessing the hard disk at all. As I had already reviewed the bios code and was familiar with how a computer loaded bootstrap, I found their claim to be, eh, interesting. I asked to see a demo and they arranged for a live salesman visit.

      He gave a fairly professional dog and pony show, demonstrating how their software could be configured so that only specific people could see certain files. At the end of the demo I commented “gee nice. Hey I was wondering about this item I read here about total protection.” I told him that I seriously doubted their software could stop somebody from destroying all the data on the C drive. He adamantly assured me that it would. Well then, was he confident enough that he would let me have a crack at his demo computer? Without a flinch he said sure!

      I carried up a boot disk with the old DOS debug program on it, turned off his computer, put the disk in, and turned the computer on again. Zyg zyg beep! At the DOS prompt I typed debug and then used a command to write all zeroes to the boot sector on the hard disk. “Well uh, I think I just wiped your C drive,” I shrugged. The salesperson didn’t believe me. I removed my floppy disk and watched in a pitying amusement as he tried to restart his computer. Naturally the C drive was no longer readable at all (now he would have to reformat it).

      Needless to say we declined the offer to purchase their software. Moral of the story: when you are buying software, trust… but verify.

      Languages and Tools

      Software developers ground themselves on languages and tools just as painters depend upon oils, brushes, style, canvas, and subject. Most developers eventually find themselves wed to the languages and tools that they find best meets their work objectives; the process of arriving at this mating however can be winding and perilous.

      In this chapter I describe some of the difficulties and neuroses associated with being dependent upon vendor-supplied tools and languages.

      Artful Vendor Relations

      In any business, nobody does all the work themselves. We all rely on outside vendors for such mundane chores as providing the toilet paper up through providing the phone lines, tax services, and legal assistance.

      Here in Information Technology we have our own set of vendors with their own wonderfully peculiar characteristics.

      We group our unique compatriots into three worlds: the language vendors, the software vendors, and the hardware vendors. We’ll get to all three in due time, but today we will chat about the marvelous world of language vendors.

      Selecting a language vendor is comparable to choosing a wife. You may yearn for greater contact with the vendor, but you will still get to deal with what she cooks up and her aesthetic tastes will affect you long after she is gone. Yeah and changing language vendors is as painful as going through a divorce.

      So what should you insist upon when selecting a language vendor? Probably the most important consideration is to perform an evaluation of their openness for how they admit to bugs and problems. Upgrades to language tools are major undertakings and a vendor doesn’t approach it lightly. So to meet ongoing challenges they should show resolve to provide a workaround for any of their bugs.

      Languages and development tools constantly evolve (and I’ve never seen a version of a language released with fewer verbs than the previous version). To some extent the vendor is trying to remain competitive by adding the functionality that becomes available in competitors’ products. A software vendor also employs a large number of programmers who need to keep releasing new versions in order to maintain their livelihoods.

      Managing your relationship with a language vendor turns out to be a bit of a balancing act: stability helps your programmers be productive, and yet staying current of tools allows you to incorporate new aesthetics and retain the new young talent. It’s as if you are a circus performer crossing the high wire repeatedly from one platform to another, except the balance bar you ferry keeps on growing.

      If a major vendor announces their plans for their next release of one of their market-leading programming tools then you would be remiss to overlook its pending availability in your plans. Is the language starting to succumb to “featuritis” or does it still allow for competent upward and downward compatible development? You will need to use your intuition (and contacts in the industry) to get a better sense of the credibility of the press reviews of the vendor.

      Evaluate carefully and be very deliberate when choosing a language vendor, for you will be living captive with your choice for a long, long time.

      Artistic Tools

      How much do our tools determine the temperament of our software: its look and feel, the aesthetics, presentation, and its interactive characteristics? As developers and artists creating works of response, data storage, and algorithms, the result of our efforts are as tied to our tools as a potter’s works are tied to her clay and glazes. Hence we share pretty much the same neuroses with respect to our tools as any artist.

      With a few clicks of a mouse and by dragging some widgets around we can create full application frameworks as if we are gods commanding machinery. Then once inside the code we press “dot” and select from a list of actions. We love our tools because they allow us to accomplish in one hour what used to require a full day.

      If you want a highly animated presentation then your tool might be Flash. If your application requires extensive analysis, dicing, and slicing of multidimensional data then your tools

Скачать книгу