Tuesday, February 08, 2005

What deliverables from the SDLC?

The project manager should see all of the documentation.
  • Project Scope and Objectives
  • Systems investigation Report
  • The current business systems functions
  • Technical Aspects of the system
  • Their interpretation of want I want the system to do
  • Feasibility Study Report
  • Economical Consideration
  • Technical
  • Organizational
  • System Analysis
  • Logical Model of existing Systems
  • Data Flow Diagrams
  • Data Modeling Diagram
  • Data mold of Business entities
The project manager should review all these and signed off before we have proceeded to the Systems Design phase. In the Systems Design Phase I would want to see:
The user interface (screens)
  • Reports
  • The interface to other systems.
  • The data and how it will be stored.
  • How the systems process will work
In the detailed design phase I would want to see the main design document.
  • Set of program specifications
  • Pseudo-code
  • Data flow diagrams
  • Physical components of the system such as PC’s, phone lines, electrical wiring etc.

What do you need to see before you commit more money to the project?
One of the very first questions that I would ask is:
  • Have you ever developed a system like this before?
  • If so, do you have examples of your work or references?
I would commit more money:
  • If all the documentation is in order.
  • It is clear and concise.
  • I understand the end game of each phase.
  • I personally feel confidant in the development team and the management.
  • There are no sales guys present.
  • I have had personally one on one casual conversations with key players and developers.
  • If the budget was reasonable and customary.
  • If I believe in their proposal.
  • If my past experience with the development team was positive.
  • Other customers are positive about the development team.
  • The development teams personal commitment, attitude and observations of work ethics.
These are just a few factors that give me a warn and fuzzy about moving forward and making more commitments. Since I am a systems developer and a systems engineer by trade, I am much more aware of certain things that some customers would not be aware of in the attention to detail of the project and developers.

For example a simple walk through the office I can tell by what type of computer, OS and software tools as to where management is given the development teams the appropriate and industry standard and currently used tools. If the development team are all Linux developers, creating a Windows application that will immediate throw up a red flag. Why? Linux users/developers are much less likely to follow the development guidelines publish by Microsoft for developing Windows applications. Another red flag would be if all the developers are running on Windows 98. That tells me management is not supporting the development team with the latest tools and it is very likely the development team has little experience and exposure to developing for Windows XP or the platform I require.


What will cause you to pull the plug on the project?

With all the things stated above:
  • If some or most of the above that are negative.
  • Unclear and confusing documentation.
  • Smoke and Mirror documentation.
  • Lack of planning.
  • Lack of documentation.
  • The project is completely off base from my vision.
  • Too expensive.
  • The development team is not experience enough in the are that I need development for.
  • I feel uncomfortable with the people I am working with because of the attitude and their motivation.
  • I feel unsure of the teams abilities.
  • They have greatly exceeded the last proposal budget.
  • They are severely late with the deliverable.
  • I have found someone else that is better, that is cheaper, faster and better.
  • I have been told by management that I must discontinue the project for reasons that my company might give such as being bought out by another company, or (the customer and I work for the same company) and we are bought out.
  • The business situation changes, such as the lead developer quits, dies or leaves the project.
  • There is a major break down in communications and personalities.
  • Lack of cooperation from the development team.
There are many reasons, but these are a few that come to mind.


EFS Network Management can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Monday, February 07, 2005

Comparing between High-level vs. Detail Design

High-level DesignThe High-level Design is a basic idea or concept of the design. It is the 30,000 foot view and very little detail about individual components and is mainly the major much larger components. An example would be a diagram of out solar systems with each of the planets with their respective moons rotating around the sun. An even higher-level would be the Hubble telescope deep space view. In each a one inch area view of the night sky contained a million new un-before seen galaxies like our own. Wow now that is high level. Something a little more close to home would be like a data flow diagram. This is a high-level design that contains very little detail of each component, but gives the overall view of the entire process.

Detailed Design
A Detailed Design can be an individual process or components in which it can be much more closely examined. It doesn't show all the connections in the over all systems, but rather it show all the connections within it's own component or process. A good example of a detailed design would be the diagram that Bob posted the other day. This could be one component from the above diagram such as the "Material Attribute Data" component above. This type of diagram actually shows the data tables, fields and table relationships with primary and foreign keys.


What are the differences and/or similarities?

The major differences is the level of detail for each component. The High-Level is a general overview of the entire process using simple concepts, shapes and design. The Detailed Design is very detailed about it individual components or processes. The similarities are the structure, flow and the fact they show the pathways of how components and processes are related and connected.

When do they occur in the SDLC?
  • Stage 1 Determine Scope - High-level Design (old detailed designs used as reference)
  • Stage 2 System Investigate and Feasibility Study - High-level Design (old detailed designs used as reference)
  • Stage 3 System Analysis - High-level Design, but maybe the beginning creation of the Detailed Design Ideas
  • Stage 4 System Design - Creation of the Detailed Design, High-level Design used as reference
  • Stage 5 Detailed Design - Refinement of the Detailed Design, High-level Design used as reference
  • Stage 6 implementation - High-level Design & Detailed Design used as reference
  • Stage 7 Changeover - High-level Design & Detailed Design used as reference
  • Stage 8 Eval & Maintenance - High-level Design & Detailed Design used as reference
What is the purpose of each?

The High-Level design is to give the customer, management, and a developers and over all idea of what the project and process are about.

The Developers then take the High-level designs and develop them into individual components and processes designs.


EFS Network Management can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Sunday, February 06, 2005

CASE Tools

A good way to manage the timeline is to use a CASE Tool like Microsoft Project. It can be used individually or on a team on a sever to manage the different phases of the SDLC and the timelines. Makes the project file available to all members on the team ensure that everyone is on the same page and knows what is coming next. It also aids in having to make adjustments to the project timeline less laborious. Managing a project on paper can be very time consuming, and not everyone will know what needs to be next or the status of certain phases of the project.

http://office.microsoft.com/en-us/FX010857951033.aspx

Another good CASE tool to use is Microsoft Visio. It has many features to make the creation of these logical models less laborious. It can import data and automatically build models. It can import database design information allows for the reverse engineering of a database to include relationships. It can do organization charts, network designs and many more. You can build and link the designs and even layer a design. This is one of my favorite features. It comes with a huge library of symbols and automatic snapping and connecting lines. Once you create a design you can use it in Microsoft Biztalk server and with Visual Studio.Net to create real-time living diagrams of processes and network monitoring.

Visio
http://office.microsoft.com/en-us/FX010857981033.aspx

Biztalk
http://www.microsoft.com/biztalk/

Visual Studio.Net
http://msdn.microsoft.com/vstudio/

This is not meant to be a commercial for Microsoft. These just happen to be tools that I use.


EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

How to Troubleshoot a USB Port

If you have an optical mouse, plug that into the USB ports. If the optical light does not come on the ports are dead. You will have to call the vendor that made your computer like Dell. More than likely they will have to replace the motherboard. Hopeful it is still under warranty. If not then just go buy a USB 2.0 card for about $30 and that will bypass the issue.

If the optical mouse light come on and it works, the USB port maybe an older 1.1 versions and the USB adapter may not be compatible with the ports. In that case just go buy a USB 2.0 card for about $30 and that will bypass the issue.

Also check with the computer vendor and check to see if the have any firmware updates for the BIOS or driver updates for the USB ports. Then check to ensure that you have all the Windows Updates.

Once you have done this and it is still not working, but you do get a light on the optical mouse then uninstall/reinstall the USB drivers.

To do this:
  • Right Click on My Computer on the Desktop
  • Select Manage
  • Expand the Device Manager
  • Uninstall everything under the Universal Serial Bus Controller
  • Then reboot.
If this fails then USB ports must be damaged in some way. Then just go buy a USB 2.0 card for about $30 and that will bypass the issue.


EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Computer-Aided Software Engineering (CASE) Tools

CASE tools are used to facilitate and expedite the documentation and design of the process. CASE is also known as Computer-Aided Systems Engineering. Both are accepted to be one in the same in the industry.

CASE tools include planning tools, diagramming tools, and prototyping tools, such as computer display, projectors and report tools. Analyst can diagram and prototype ideas that can be display, refined and updated on the spot. By using CASE Tools one can compare the old designs with the new designs to determine what improvements can be made where in a visual form and fashion.

CASE tools are visual in a graphic form and allow everyone to see and understand what the designs are going to look like.CASE tools are known as Upper Level or Upper CASE tools to start at a high level concept and drill down on sub levels to more details of individual components within the entire process.

Examples of CASE Tools are Microsoft Power Point for presentations; Microsoft Visio for organizational charts, system design, database designs, data flow diagrams, etc; Microsoft Word for word processing of documentation; Microsoft Excel for number crunching, connection to real-time inventory, budgeting tool, and data analysis; Microsoft Access for prototype design, proof of concept and connecting to real-time data for analysis; Visual Studio.Net for application development, design, code management, and process analysis; Microsoft BizTalk 2004 for combining Visio, Word, Excel, Access, and Visual Studio.NET into a single system that diagrams and demonstrates live functions and operations of a complete process in a single tool. See the references for links to all these tools.

CASE TOOLS Examples- BIZTALK: http://www.microsoft.com/biztalk/
- BIZTALK DEMO: http://www.microsoft.com/biztalk/evaluation/demo/default.asp
- Access: http://office.microsoft.com/en-us/FX010857911033.aspx
- Excel: http://office.microsoft.com/en-us/FX010858001033.aspx
- Power Point: http://office.microsoft.com/en-us/FX010857971033.aspx
- Visio http://office.microsoft.com/en-us/FX010857981033.aspx
- Word: http://office.microsoft.com/en-us/FX010857991033.aspx

GSS Tools that can be used in JAD with CASE
- ICQ: http://www.icq.com/
- IRC: http://www.irc.org/
- Outlook Express: http://www.microsoft.com/windows/oe/
- Newsgroups: http://groups-beta.google.com/
- MSN IM http://www.imagine-msn.com/messenger/default.aspx?locale=en-US
- YAHOO IM: http://messenger.yahoo.com/
- AOL IM: http://www.aol.com/aim/downloadaim.adp
- Bulletin Boards: http://www.phpbb.com/


EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Saturday, February 05, 2005

Deliverables in the Analysis Phase of the SDLC

There are three deliverables that the development team must build in the Analysis Phase before the Design Phase begins. What are they and why are they important to the customers of the new system? What are the three deliverables?

Deliverable #1: Design Strategy

It is composed of several alternative designs for the new system. It can include several choices for the system’s functionality, hardware, system software platform, and method for acquisition. These are possible courses of actions proposed by the development team. The customers are asked to choose between three designs that differ in cost and functionality.

Low-end: This the least costly that the other two solutions. This is the basic solution that has no extra amenities or enhancement. One could compare Windows Notepad as a basic barebones word processor and lacks many of the features of Microsoft Word 2003. Because it is basic it is the fastest to develop.

High-end: This is the most expensive solution that would contain many enhancements, features and functionality. Microsoft Word 2003 would be a good example of this as compared to Notepad. The extra features for this application is the main focus not the cost.

Middle: This is a in between solution that is basic but with moderate features within a certain set cost that is much less than the high-end solution, and more than the low end solution. Microsoft WordPad would be a good example. It is a very basic Word with formatting and rich text like Word 2003, but without the additional nice features and cost.


Deliverable #2: Recommended Course of Action
This is the course of action that the development team thinks is the best to build and why. The recommendation helps address customer issues before they commit to the project.

Requirements:
- Will all the customer requirements be incorporated in the new system?
- What functions were added or left out and why?

Software:- Will the new system run on a mainframe platform, standalone personal computers, or a client/server platform?
- What are the advantages and disadvantages of each?

Hardware:- Can the new system run on the current hardware or will the company have to spend money to upgrade their computer systems?

Infrastructure:- Will the company be able to trains and support the users.
- How big of a change will the new system require the company to make to the way it does business?

Implementation:- How difficult or easy will the system be to implement?

Organization:- Does the new system work well with the company’s organization?
- Will the users accept it?
- Can the users even understand the new system?
- How will it help the organization?

Deliverable #3: Baseline Project Plan

The plan should show task sequences, dependencies, time requirements and the project critical path. This can be in a Gantt chart like is used in Microsoft Project. It is important to have a plan for both you and the customer. This allows the development team to give the customer a feel for the amount of work involved in the recommended course of action.

Why are they important to the customers of the new system? They are important to the customer because it gives them a understanding of the design, costs and the amount of work involved in the project. It also helps them understand if the project is addressing their needs and goals. By having them sign-off on it means that they claim that they understand the project and agree with the course of action.

In addition to this the deliverables are the bases in which the development team will be their design. The deliverables must be signed-off before proceeding to the design phase. This will provide your CYA and that the customer has committed to paying you for the project.


EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Monday, January 31, 2005

About Feasibility Studies for the SDLC

Why is it so important?

As the title of the report states, is the project capable of being accomplished or brought about? Is it possible?Is it logical? It answers these questions. It is to establish whether or not at an early stage as possible the project is realistic.
  • The principal work areas for the project will have been identified.
  • Any needs for specialist staff to be involved in the later stages of the project willhave been noted.
  • Possible improvement or potential for savings may have become apparent duringthe investigation.
What is its purpose? It is to establish the feasibility of introducing a computer system. There three main areas: economic, technical and organizational.
Economics
  • Costs (Systems analysis and design, Purchase of hardware, Software costs, Training costs, Installation costs, Conversion and changeover costs, Redundancy costs)
  • Benefits (Savings in labour costs, Benefits due to faster processing, Better decision making, Better customer service, Error reduction)
  • Cost Benefit Comparison (This weights the difference in the hard costs and the non-measurable benefits.)
Technical
This is the technical possibility and desirability of a computer solution. There are several categories that are desired that can make the project more feasible:
  • Does it follow Rule-governed tasks?
  • Does it eliminate Repetitive task?
  • Does it solve Complex tasks?
  • Does it have a High degree of accuracy?
  • Does it have Speed of response?
  • Can the Data used for many tasks?
Organizational Feasibility This is also known as "Operational Feasibility". It addresses:
  • Will the organization accept the system or will there be conflict?
  • Will people be able to cope with the new system?
  • Is the organizational structure compatible with the new system?

Who is it written for?
It is for everyone involved in the process the developers, management and the customer.

Why is SIGN-OFF necessary on this deliverable? Sign off means that all parties agree and it is a must in order to move onto the next stage. It is also there for the CYA factor. The fact that someone signed off means that they understand the project being proposed and are giving the ok to proceed.



EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Pharming - The New Buzzword

Let me be the first to introduce to you a new security buzzword that I just read about today.

Pharming

Like Phishing it attempts to capture your user name and password by directing you to an evil web site that appears to be legit. Phishing requires the user to click on a link in SPAM. Pharming is handled at the DNS level. The evil doer changes your local host file to direct your request to your banking site to their evil server.

Another methods is to change your default ISP DNS server in your TCP/IP setting to the evil doers evil DNS server. Once that happens you can not tell if you are really at your banks web site or the evil doers web site. Once you enter your user name and password they have your banking account.

We have seen this with spyware putting entries into the local host file and changing the DNS settings over the last six months. Now evil doers are going for your bank account using the same methods.

More on Pharming
http://www.theregister.co.uk/2005/01/31/pharming/

Here is an article about Phishing.
http://security.efsnm.com/index.php/weblog/phishing_scams/



EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.


System Audits Tools

There are hundreds of different tools out there. For example: When I do a network audit I use three different companies audit tools. They all claim to do the same thing, but I have found each has it strengths and weakness.

So I run all three to get the information I really need and disregard where they over lap or do not provide any new information. I have not found a single be all do all tool. So you will have to try several for the project that you may be working on.

Once you have identify the system you need to audit, let me know I can point you to a couple that you can try. Most provide a 15 to 30 day free trial. You will know on the first one or two audits if the tool is right for the job at hand.

Here are a couple of network audit tools that I use.

GFI: Network Security Scanner (Affordable)
http://www.gfi.com/lannetscan/

Shavlik: HFNETCHKPro: Security & Patch Management (Free for small businesses)
http://www.shavlik.com/hfn_windows.aspx

Sunbelt Network Security Inspector (Very Expensive, but not only ID's the issues, but provides supporting detailed documentation on how to fix the issues)
http://www.sunbeltsoftware.com/product.cfm?id=987

If systems are automated with self documentation, company policy mandates it, and the SDLC a lots time for it, then it can stay up to date. To get a company to get to that point really takes a lot of time and growth.

Sunday, January 30, 2005

What Diagrams Provide

1. Flow block diagrams: (If available, it has answers) Questions can be derived for the information contained or missing from them.

2. Organizational charts: (If available, it has answers) Questions can be derived for the information contained or missing from them.

3. Task templates: (If available, it has questions) The task templates a good baseline start but do not contain all the questions for everything.

4. Data flow diagrams: (If available, it has answers) Questions can be derived for the information contained or missing from them.

They are all important and merit value. The more data you have the better an informed decision you can make.


EFS Network Management
 can help you with the management of your network, servers or desktops systems. Your Expert IT Support.

Analysts Channels of Information

Contrast and compare the five Analysts Channels of Information

There are five channels are as follows:.
  • Documentation
  • Interviews
  • Observation
  • Questionnaires
  • Measuring

I would also like to add to this with "System Audits". I will explain more in a moment.

Documentation
It has been said that this channel provides the least value. Ten years ago I would say that this is true, and it may still hold true for a number of organizations today. However our customer management database and work order system have become invaluable tools in keeping documentation up to date and current. So many people rely on it, it has become self updating as work is planned and completed.

The drug company that I used to be a consultant at now has a wonderful change control database and it is company policy that all systems documentation be kept current and the time to keep them current is built into the project. They have come a long ways from no or obsolete documents to very current and detailed documentation on all systems, the networks, severs, and mainframe systems.

The worlds biggest bank that a friend of mine works at carries it to level even more detailed. For example that have a specialist group for each phase of a project. Let's say you are the HR department and you need a new server. There is one groups that does the specs, one group that does the order from the vendor, one group that does the hardware build, testing and certification, one group that loads the baseline OS, one group that does all the updates and certifies the OS. The server is handed off to the group that handles the third party enterprise applications on the server. It is then hand to the security group and certified. Then the installation team does the install, testing for the customer/department. The server is then handed off the final group that does the support. This group is handed all the documentation for every phase and has detailed instructions on how to do each step and includes the log files and certification from the different groups. This is the most extreme documentation on a system that I have known. From the time of request for a server to the time of deliver is five to six months for a single server.

Interviews
These are very important. Spending a few minutes with a key player can yield huge insights that could save you from chasing a rabbit down a dead end hole and save you time and resources during your research.

Observation
Working with people is a must. Setting back and watch them drive the application can be an interesting experience. Each user has developed their own personal method of interacting with the system based upon their knowledge level, skills and usage of the system. As a developer it is very important to watch a user. They will have a different interpretation of the system and interface. The amazing part is they will do things that you would never have conceived possible, or why they are doing a task a certain way. Then you modified the system to trap for their issues or make it better for them. What is really incredible is the ways users will adapt the system to track or do something that it was never indented by the developer to do.

Questionnaires
These are great, but getting people to fill them out is like pulling teeth. You have to have it mandated, corner them or do it during an interview.

Measuring
This is important to size up the scale of the project, the scale for the database need, the number of users, the number of database transactions, etc. all aid in better understanding the systems.

System Audits
This is not part of the lecture or the reading material. This comes from my experience. In the old days most all system audits had to be done manually. Where is the system physically located? How is it connected? What is it used for? What is it's configuration? What are it's specs? What is it's current software update level. This is for all components involved, hardware, software, OS's, databases, network connectivity, etc.

With software interconnected components it has become too time consuming and too overwhelming complex with too many parts. In recent years there are new software tools that can do the job for you. There are network scanning and management tools. There are database reverse engineering and documentation tools. There are project development code management tools. There are tools for just about all aspects for creating data flow diagrams and flow charts automatically. All these tools can create the documentation that you need for your research.

White Papers
White Papers really help as case studies, lessons learned, a detail insight and the gotchas of a certain system. If there are white papers available for your project or a part of your project I encourage you to take a little time and review them. They can shape your ideas and opinions. The really nice thing is you can learn from other peoples pain and mistakes and avoid those in your project.

A Vendor created White Paper about their product DNS:
http://support.microsoft.com/default.aspx?scid=kb;en-us;810733

A Third Party White Paper about the Vendors DNS:
http://itresearch.forbes.com/data/detail?id=1094838407_866&type=RES&src=TRM_TOPN

What is a White Paper:
http://www.whitepapercompany.com/pages/387998/index.htm

Why White Papers:
http://www.whitepapercompany.com/pages/387343/index.htm

Here are IT White Paper Sources. The UoP Library contains some too.
http://itpapers.com/index.aspx

http://www.bitpipe.com/

Example of how you used one on a development project.
I recently did a security audit for a 15 user network with two servers for the purpose of checking overall security of their system, so they could allow a customer to connect and gain access to their network and database systems from a remote office. The auditing tool I used took about 20 minutes to complete the entire network and yielded 183 pages of quality current documentation. A manual audit would have taken me several days, and I still would not have the level of detail. Now do an audit on a very large system and you will have a new problem. That is information overload. The next thing is to learn what information is important and relative to the project.

All these are part of the documentation process and aid in your research and analysis.


Friday, January 28, 2005

Prototyping Methodology

Prototyping is one modern method of development. The first Apple computer was developed in the manner in 1976/77 by Steve Wozniak in Steve Job's garage with off the self parts in a wooden case.

Compared to SDLC:
This method is less structured, planned organized than the SDLC (Software Development Life Cycle). It is often off the hip last min assembly, testing or development. It is more or less for a smaller project often done as a proof of concept to test ideas, processes and systems before committing vast about of resources to a larger project.

A recent advancement in a fairly med size project in prototyping and testing unproven methods and ideas would be SpaceShipOne http://www.xprize.com/ with it's historical flight into space. It tested light weight materials, new engine designs, new methods of a control re-entry without heat shielding, new wind breaking systems, new computer systems and how it performs when the computers systems fails. Lastly it proved that space flight is not limited to government dollars and budgets. It's flight is in comparison to the first Apple computer as prototyping and leading to new production systems changing the world in the process.

Advantages:
It allows for more creativity and possibly new world changing solutions could be developed, where they might be hindered on the SDLC's control process.

Disadvantages:
In prototyping scope creep, cost over runs, miss management, and lack of focus are more likely to occur in this type of project. SpaceShipOne is a good example. It required Paul Allan and Virgin Records additional funding to complete the project. The total cost of the mission was 20 million dollars and the X-Prize was only 10 million dollars. While they did go over budget, I should point out it was one of the cheapest space flights in history, using less than 10% of the budget of a simple satellite launch that is not a manned flight.

While I am sure that SpaceShipOne had some type of development plan, prototyping can include a whole host of unknown variables that can not be determined until testing has been completed.

Prototyping is not a best practice method for getting your project completed, but it does have a place in developing something new.

Thursday, January 27, 2005

Analysis Phase of the SDLC

Valuable/important to the Analysis Phase of the SDLC

All the items that are listed could have some impact on the SDLC (Software Development Life Cycle), depending upon what type of information they contained. I use all the items all the time. However one should note that the information contained in each of the ones listed may be dated, obsolete or incorrect. Having to choose one I choose the Data Flow Diagrams.
Although systems flowcharts provide a useful tool for analyzing a physical description they may impede the design process.


Why is it so valuable?
It is the heart of the system design. It gives the design and flow of data across many systems, databases and sites.
  • Identifies the major processes.
  • Identifies the major data sources, sinks and stores.
  • Identifies the major data flows.
  • Names the data flows, processes, sources, sinks and stores.

What information does it contain?
It shows all the pathways and connects to the varies systems, and databases. It would give the overall concept and configurations of the systems. It can also be data flows at varies levels of detail. It can be an overall view, then drilling down to a nuts and bolts view of great detail.

Data flow diagrams assist in building a logical model of the system independent of physical commitments. They show the various flows of data between the processes that transform it. Data stores and the points at which data enters and leaves a system are also shown.


How does it move the Analysis Phase forward?
It provides a place where to start looking first to begin your analysis. It would give you a base line to compare your findings, and prepare a number of questions. It is the base line data design that strip away the hardware layer and focuses more on the logic design and can allow for a clear understanding of the process. It could even make it possible to see new ways to improve the design. It's layering allows for the scaling of ideas, sections and data flows to different degrees of detail.

The data flow design is an important tool of structured analysis and design. It ensures that a top-down approach is taken. This promotes a logical, as opposed to physical, view of data stores, flows and processes.

Learning from Failure

Having worked in IT for many years, I have seen a lot of failure. I do not consider failure as being a bad thing. In IT in many cases it can be a good thing. Sometimes when things go very wrong, initially no one may know what is the cause of a problem. A series of failures can be like bread crumbs leading to the real problem. Being a good sleuth to read, understand and interpret the failures as to what are they telling us, leading us, or NOT telling us is just as important.

Having a problem and having no failures to help guide you to a successful resolution can take a lot of time and resources. It can be very frustrating just trying to identify the root cause of a problem.

So I embrace failure as a key to solving the root of a problem.

Wednesday, January 26, 2005

Qualify the Project

One of the very first questions that should get asked right up front is "Who is paying for the project?".

If this is an internal project then it may be a special budget, or a specific department or multiple budgets or departments.

If it is a customer external to the organization it is best to qualify them to see if they are willing to pay x dollars for projects and check their payment history.

The last thing you want to do is a lot of leg work only to find out the customer never had any intention of buying or they did not realize the scope of the project that they were asking for or there is no budget or funding for the project.

Tuesday, January 25, 2005

What's in a Title for System Analyst?

You may find when working for a very large company that a system analyst maybe a generic title/term associated with a pay grade. However your title being a system analyst you may be limited to a certain area in a certain department.

I have two real world examples:

Employee A & B works for the worlds largest drug company. His & Her title(s) are both systems analyst and they both have the same pay grade within the company. Both work in the MIS Group. Employee A works as a Lotus Notes Administrator. Employee B works as a Java Developer. Neither do what is described in the text as a systems analyst.

Employee X & Y works for the worlds largest bank. Both are systems analysts and have the same pay grade. One is a network engineer and the other builds servers for the enterprise.

Neither of these big companies follow what a systems analyst description is. So when applying for a systems analyst job, make sure you understand the duties and responsibility of a systems analyst are for that job.

I am not trying to confuse what a systems analyst is. I am just trying to make you aware of a potential surprise.

Improving Your SDLC

I am sure that you will find that the US bugs are much different that the Belgium bugs!!! I found out the hard way with my own database development project.

When we first started beta testing of the application we had a Canadian company that makes plastic parts for cars that was Japanese own/run company call us to be a beta test site. So we went there and installed the application on site with the customer, as we were still a year away from a production version, but they really wanted to beta test it anyway. Then we went to enter their data into our system. We could not get their data into the application. We could not completely fill out and use the contact information for employees, vendors and their customers. We use this information throughout the program to prevent having to re-enter the data and save time on data entry.

Why? Silly me I used the Microsoft wizards to set the format masking on the fields for currency, phone numbers and zip codes. Well duh! Canada does NOT use the same formats. So it was cripple before we started. That night in the hotel I had to edit over a hundred places and strip out all field format masking to allow for Canadian formats so they could use the application.

Since then we have had an equal response from overseas test sites that I had to make allowances for more localization and date formats. We never thought we would get the response we have from over seas. We even worked with the local University in Costa Rica to allow for special characters and assistance with translation into Spanish for a major drug manufacturing company that makes plastic parts. We had only envisioned the good ole USA.

We did NOT make the connection or observation that US companies would also have plants in other countries. So the moral here is our version of the SDLC did not include or consider localization issues for other countries.

Monday, January 24, 2005

Not Using the SDLC

What if there is a small company that does not believe in the SDLC process?? Does this mean they will fail as a company???

Of course not! As with all things, there are several ways to do the same thing. A small business method could not follow the SDLC at all, but upon closer examination it might have traces of the SDLC process and they do not even know they are using it regardless of their belief.

When your home computer is broken and/or you want to upgrade it, you take it to your favorite computer store or you do it yourself. This meets the definition of a project.

http://dictionary.reference.com/search?r=67&q=project

Does a simple repair or upgrade require an elaborate SDLC? ...for the most part no. It is reasonable and manageable to do it without SDLC.

Now lets scale this a bit. Lets say you have 5 computers that need service. Would you need a SDLC? ...for the most part no, because the number of devices and the complexity are still minimized.

Ok, lets scale this a little more. Lets say you have 35 computers to upgrade. Would you need a SDLC. ...yes and no. I would highly recommend that you come up with an action plan and costs before taking on such a project both for your sake and the customers.

Finally let really scale this up. Lets say you now have 10,000 computers to upgrade. Would you need a SDLC. Absolutely yes There are too many devices and too many variables that not having a SDLC could result is a huge disaster and be very costly. Then everything that is being taught in the lecture and text are applicable to a very high degree, and yes you had better have your CYA component in place.

Sunday, January 23, 2005

Systems Analyst

What are the attributes/skills of an effective Systems Analyst?

Attributes:
  • Analytical skills: The ability to understand the organization and its functions, to identify opportunities and problems, and to analyze and solve problems.
  • Technical skills: The ability to understand the potential and the limitations of information technology.
  • Management skills: The ability to manage projects, resources, risk, and change.
  • Interpersonal skills: The ability to work with end-users, other analysts and programmers. You must also act as the liaison between users, programmers, and other systems professionals.
  • Additional skills not listed in the lecture or the reading text that are a must are self discipline, the ability to work alone without direction and a healthy dose of problem solving skills. These can apply and enhance the four skills listed above.


Two ways a person can develop those attributes/skills.

Skill development is a life long process that is never ending. We are all imperfect and have areas that could use refinement, and enhancement. The moment you stop developing your skills is the moment that you could handicap yourself in certain areas.

First you must poses the desire for self improvement.

Second you must poses persistence. You must be determined to get backup on your feet after you have been knocked on the ground. Dust your self off and resume professionally your task at hand. Without persistence your desire can be squash by unforeseen events.

Next is simply do. Practice, Practice, Practice, Practice!

Next, do not fear failure. Embrace it and use it as a learning tool to achieve success. Learning from ones mistakes can lead to huge rewards in the future. Also learning from others failures is just as important.


Developing your Systems Analyst skills in your working environment.

There is opportunity of every moment of every day where one has the opportunity to develop their skills. Even though I have been out of traditional school for a very long time. I have never stopped learning, practicing and enhancing my skills. Sometimes it is easy; sometime it is hard. Sometimes it is very successful; sometimes it is a failure.

I was once told that you fail 100% of the time you do not try. This is something that I always keep in the back of my mind when evaluating my next move.

Scale usage of the SDLC

What if there is a small company that does not believe in the SDLC process? Does this mean they will fail as a company??

Of course not! As with all things, there are several ways to do the same thing. A small business method could not follow the SDLC (Software Development Life Cycle) at all, but upon closer examination it might have traces of the SDLC process and they do not even know they are using it regardless of their belief.

When your home computer is broken and/or you want to upgrade it, you take it to your favorite computer store or you do it yourself. This meets the definition of a project.

http://dictionary.reference.com/search?r=67&q=project

Does a simple repair or upgrade require an elaborate SDLC? ...for the most part no. It is reasonable and manageable to do it without SDLC.

The scale usage of SDLC:
  • BIG: Use SDLC in all it's glory for big business and big projects, but not as company LAW.
  • MEDIUM: Use a scaled down version(s) of SDLC for medium size business and projects.
  • SMALL: Use a checklist type format and/or quick evals without all the massive detail of a formal SDLC.
  • REALLY SMALL: For really small projects and small business hardly any SDLC at all is needed.
Now lets scale this a bit. Lets say you have 5 computers that need service. Would you need a SDLC? ...for the most part no, because the number of devices and the complexity are still minimized.

Ok, lets scale this a little more. Lets say you have 35 computers to upgrade. Would you need a SDLC. ...yes and no. I would highly recommend that you come up with an action plan and costs before taking on such a project both for your sake and the customers.

Finally let really scale this up. Lets say you now have 10,000 computers to upgrade. Would you need a SDLC. Absolutely yes There are too many devices and too many variables that not having a SDLC could result is a huge disaster and be very costly. Then everything that is being taught in the lecture and text are applicable to a very high degree, and yes you had better have your CYA component in place.

Small Business and SDLC

The SDLC (Software Development Life Cycle) is not as attractive to smaller business and projects. The business dynamics between the two are very much different in many ways. Small business and small projects are low budget and need to react quickly. Since the small budgets and business have very limited resources there is a great need to compress the timeframe and detail analysis. Since the smaller projects have less of an impact and do not cascade multiple sites and millions of dollars the risk analysis and assessments are much more limited and easier to scope. Therefore that teams and recourses would be a few people doing most all the work.

As a small business every moment of my time is tied to a billable resources in which I am accountable in order to pay the bills and put food on the table. The needs of volume and scope of work is not as great as an SAP type project. To attempt a full formal SDLC process would be too costly for both the customer and myself.

In the stages in the lecture where there is a lot of analysis prior to proceeding on the project, your company is paying the tab for the evaluation as both the developer and the customer. In my case we are separate and one is paying the other for the analysis. In your lecture everyone is getting paid as being part of the big organization. In my case I would have to create and estimate for each phase of the project and the customer would have to sign off at each phase and pay.

If I am asked to create a simple program or utility that would take me several hours as I do now. It would greatly increase the time and cost using a formal SDLC. So a $1,000 project without SDLC might cost the customer $6,000 with a formal SDLC. If the customer knows it may cost $6,000 for a small utility, then there may not be a project and that would be zero dollars earned. Do that 100 times a year and one would have made far less with the formal SDLC than compressing the scale of SDLC or none at all.

So profitably for the vendor and cost saving for the customer with working on a small project would be a definite reason NOT to follow a full formal SDLC.

The SDLC is a very delicate engine that requires a lot of fine tuning and self discipline to keep it on track and working. It can easily break down if all parties are not participating equally. In some cases they do not and you have to be flexible to compensate for the absence of their effort.

The SDLC is usually driven by management as they are the ultimate responsible person. That said having been a consulting analyst working for a large company you can be pigeon holed into just one area and not aloud to work in multiple areas at once or gain additional experience.

On a large scale project where there is a budget and people get paid no matter the outcome for a larger organization, I agree that SDLC should be used and have no argument with the text and your lecture in that respect.

So the moral here is use the right size hammer for the project.

Saturday, January 22, 2005

The Important Stages of the SDLC

Explain why the first phases of the Software Development Life Cycle (SDLC) are more important than the later steps. Reasons why they are and/or reasons why they are not.

Explain why the first phases of the SDLC are more important than the later steps.

Setting: Large company with deep pockets.

Why: The first three phases in the text is very important as it is the foundation upon which the project is based and are the most important. A great deal of leg work in preparation is required. It requires a great deal of time and effort to compile and analyze the project long before a single line of code is written.


STAGE 1 DETERMINATION OF SCOPE AND OBJECTIVES
I believe that this is self explanatory.

STAGE 2 SYSTEMS INVESTIGATION AND FEASIBILITY STUDY
This phase in the text is very weak in its explanation. It is basically a simple analysis "Do we think we have the resources, man powers and money to do this?" What assets can we utilization, sharing or do we need to acquisition of new capital hardware and/or expenses?

STAGE 3 SYSTEMS ANALYSIS
There are a lot of variation on what needs to do at this stage. I agree with what has been published about this phase, however it is not all inclusive. There are additional items that need to be look at during this phase.
  • Risk analysis: (to company, people, process)
  • Security Analysis (to company, people, process)
  • Impact Analysis (to company, people, process)
  • Regulatory Analysis (for company, people, process)
  • Company Policy Analysis (for company, people, process)
  • What are the Bench marks, water marks, goals achievement points (for company, people, process)

STAGE 4 SYSTEMS DESIGN
Wow, now we get to start writing code...


Reasons why they are and/or reasons why they are not.

As with anything situation dictates the need. The bottom-line is there is no magic bullet for all situations. The reading text SDLC theory is great for a large organization with really deep pockets and does a good job of keeping the giant wheel balanced.

For the small projects, a lot can be knocked out with simple evaluations of the situation, it's impact and gains. An elaborate SDLC is not required in many cases, and would be too costly for the smaller projects. The need for a structured development process should be used, but not in all cases.

Examples a user needs to convert data from one data source to another. This is a one time thing and will not be needed again. A quick assessment by the developer that it will only take about 8 hours to do the data conversion by writing a small program. The SDLC process would be too much over kill as one can quickly assess that all the above analysis is not needed.

So bigger projects SDLC is a good fit, but may require a bit of modification. SDLC for smaller projects can be skipped for the most part as the assessment can determined that the SDLC is not needed in its entire form.


Large Projects and the SDLC


This is a good example where Software Development Life Cycles (SDLC) is appropriate and needed. A very large project, being done over a very long time where lots of money, people and resources are required is a when the SDLC should be used.

However the larger the project it can be frustrating manage and coordinate. The more people added to the mix the more personality collide and defenders of territory come into play. SDLC would help guide the project, but it does create an unavoidable human element of frustration with other groups, areas, vendors, consultants or departments.

This is not a project that I would recommend go without some type of SDLC process.

CYA: If a formal SDLC is not in place, the initial formation of a SDLC could meet resistance from the existing management structure and org chart. The initial formation can be stifled by politics and personal agendas. After it is established and everyone understand the process then Ray is correct. It aids in damping the effects of politics.

This is a good concept for vendor to customer relationship and maybe in some business organizations, however this will not work in all cases. Every large company has different polices and procedures. It is more difficult to be creative and to correct a known customer requested design flaw with this method. It also greatly extents the development cycle which is why SAP, Peoplesoft and other very large deployments take so long.

The level of detail and interpretation between the customer and vendor can be annoying. The steps of clarification by phases so the customer knows exactly what they got matches what they asked for can take time. That is not a billable process in some cases.

However it is a good tool to keep things in check. It is good where it is appropriate.

Friday, January 21, 2005

When Not to use the SDLC

Reasons and Examples why developers or support analysts would NOT want to use a FORMAL Software Development Life Cycle?

There are a number of reasons why a formal SDLC is not a good fit.

The following are contributing factors that directly affect the formation of the SDLC process, its structure and organization.

  • Logistics
  • Costs
  • Available Skill sets of people
  • Number of people in the project
  • Budget, Funding, Retainer or PO
  • Available tools (software, hardware, communications and connectivity)
  • Collaboration tools (software, hardware, remote access)
  • The utilization of the most current RAD tools
  • Leadership Skills
  • Team Developer Skills
  • End User process knowledge and skills
  • Time-Frame
  • Project "In-Demand" need
  • The personal motivations of all the people involved in the project
  • This is NOT and all inclusive list. There are many more factors too.

With each factor being a variable the SDLC structure as presented in the text does not allow for flexibility. A development process success is dependant upon many factors to include all parties being flexible to change as things change. The only constant in IT is change.

Areas of application development were SDLC is not a good fit are:

  • Proof of Concept Testing
  • Running a series of never before performed processes, functions or methods.
  • Running a series of combination tests to see what happens.
  • Running a series of tests to intentionally try to break the application process to examine for security and potential points of failure.
  • Running a series of unorthodox user tests to observe the reaction and behavior of untrained or unskilled users to trap for the unexpected use of the applications.
  • Experimentation
  • Developing algorithms to perform tasks that do not yet exist.
  • Refining existing methods and procedures for better performance and smaller footprint.
    Individual Projects
  • An individual user doing small utility development.
  • There are many more, but these are a few.

One might argue that these are individual components of the SDLC. Situation dictates the scale and perception of where and when the SDLC process begins and ends. The SDLC can be a used by single user or by a massive army of developers. In the development community the term SDLC is not used. Common terms that mean the same thing are process development, application development, team development and systems development. The life cycle part is a MBA buzz word.

SDLC can provide structure where chaos is, however if the SDLC is in acted as company Law it can actually impede, hinder and prevent creative application development.

Examples of where the SDLC was NOT used that resulted in creative and industry changing applications.

  • Compaq's original IBM compatible XT PC
  • The original Compaq system BIOS
  • The original Apple computer
  • Tim Berners-Lee development of HTML and the first Mozilla Browser
  • Shawn Fanning's development of Napster
  • The development of the original UNIX and DOS OS's
  • The original spreadsheet application
  • The original email application
  • I could go on and on....

So the moral here is for the carpenter to apply the right size hammer to the right size nail.


Using the Software Development Life Cycle

Why is a formal systems development process needed for developing IT systems? What are its advantages and how does it help prevent a systems development effort from failing? Give an example where you think it could help.


Why is a formal systems development process needed for developing IT systems?

A skilled leader and skilled teammates drive the development process. The theory in the text leads you to believe that the Software Development Life Cycle (SDLC) is the end all be all to development. That is simply not the case. The SDLC is a tool like a hammer. The carpenter is the one that uses the hammer to drive the nail. The hammer is useless without the skilled carpenter. Likewise the carpenter needs to know how to use the hammer. He also needs to understand that there are different hammers for different nails. If the hammer is too big, use a smaller one. If the hammer appears to not work, make one that will.


What are its advantages and how does it help prevent a systems development effort from failing?

The SDLC is a formal process and not a law, it is a guide that should be modified for the need. The SDLC is a process that was developed after many failed or inefficient attempts at success. The SDLC is to provide a better way of doing things, but is not the only way to do process development.


Give an example where you think it could help.

Since SDLC is not part of the three worlds largest software developers vocabulary, I would think that the Longhorn development team at Microsoft could use a skilled carpenter with a big hammer. If they continue to chop off major portions of the proposed product from 4 years ago, then there will not be much of a product left to use.

Tuesday, January 11, 2005

Book Stores Online

When looking for books I often find myself at Amazon online or Borders where my family hangs out for coffee, smoothies or a mocha. Borders is my favorite brick and mortar books store.

While doing research for this article, I quickly discovered that my favorite brick and mortar store had given up there website fight to Amazon. Now Amazon handles all of Borders Books online book purchases. I was completely shocked! So I am comparing Amazon with Barnes & Noble.

While doing the price comparison there was a sharp difference in pricing that I could not believe. I really do not do price shopping as I have a borders business card and get huge discounts at the store.

I found Barnes & Nobel to have their pricing as list price and you must become a member to get a discount that was not always disclosed. I was very sadness by the great difference in price. Also Amazon offers used books and both hardback and paper back pricing on the same page.

Here is the price comparison of some of the books I own and some that I do not own. I see that I could have saved a lot of money buying directly from Amazon.

1. Microsoft Exchange Server 2003 Unleashed by Rand Morimoto
Amazon: $41.99 Barnes & Nobel: $59.99

2. Microsoft Windows Server 2003 Unleashed by Rand Morimoto
Amazon: $41.99 Barnes & Nobel: $59.99

3. Microsoft Windows Server 2003 Insider Solutions by Rand Morimoto
Amazon: $27.99 Barnes & Nobel: $39.99

4. Biztalk Unleashed by Susie Adams
Amazon: $35.50 Barnes & Nobel: $49.99

5. Microsoft Exchange 2000, Conferencing Server, and SharePoint Portal Server 2001 by Rand Morimoto
Amazon: $33.99 Barnes & Nobel: $49.99

6. Microsoft Exchange Server 2003 Administrator's Companion by Bill English, Walter J. Glenn
Amazon: $37.79 Barnes & Nobel: $49.99

7. Windows 2000 Design & Migration by Rand H Morimoto
Amazon: $29.69 Barnes & Nobel: $49.99

8. Maximum Windows 2000 Security by Anonymous
Amazon: $33.99 Barnes & Nobel: $49.99

9. Microsoft Windows Server 2003 Administrator's Companion by Sharon Crawford, Charlie Russel, Jason Gerend
Amazon: $47.59 Barnes & Nobel: $69.99

10. Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference by Joseph Davies, Thomas Lee
Amazon: $32.99 Barnes & Nobel: $49.99

I do not patron Barnes & Nobel and now I see why with the price robbery. Barnes & Nobel also charges for shipping. Amazon does not charge for shipping.

Amazon was for the most part the first book store online. Barnes & Nobel has copied the look and feel of Amazon to even include the color schema. Both sites were easy to navigate.

Amazon offered more about the book to include sample chapters, index and table of contents. Amazon offers reader reviews both good and bad. Amazon offers the ability to search inside the book.

Amazon also offers the ability for recommending other books that users purchased along with the one you are looking at. They offer editorial reviews, what other books the book cites, other books that cite this book, recommendations of similar books, other books customers viewed while looking at this book, auctions that contain this book, other books by the author, similar categories, similar subjects, recently viewed history, easy shopping cart, easy buying experience, the ability to rate the product, and an inside look at the front and back covers.

Barnes & Noble had little to offer as a comparison.

Jeff Bezos, one of the founders of Amazon, doesn’t consider Amazon as a front runner for selling popular books. I found this surprising, as they beat Barnes & Noble in most all categories hands down in my opinion. He states that they cater to the hard to find books. While that may be true, I found Amazon's website extremely appealing for popular books in the mainstream.

By offering an inside look and searching inside the book, it gives you a pretty good idea of what the book is about. I find this very important as when you are at the book store you can quickly scan through a bunch of books at one time and determine if that is the book that you are looking for and desire. You can not do that at Barnes & Nobel.

In conclusion I found that Barnes & Nobel offered the same titles at a much higher price on average about $10.00 to $25.00 higher, no old book, a knock off Amazon website, with none of the extra features or ability to look inside a book. So why even bother shopping at Barnes and Nobel online.

Software Success

How important is management commitment to system success? How important is user acceptance to system success? Why do users not accept an installation? Why do users accept an installation?

How important is management commitment to system success?

If management does not believe in the project it can actually doom the success of the system. Throughout the history of application development the key visionary for the project is the one who was instrumental in making things happen and happen successfully.

Four key players that are industry captain used leadership to help shape the way we do computer today. Those are Bill Gates of Microsoft, Steve Jobs of Apple, Michael Dell of Dell and Steve Case of AOL. There are many software companies that have fallen by the way side because where leadership left or sold out. Atari sold out to Sears. Compaq sold out to HP. WordPerfect has changed owners more than I change my socks. Once leadership is lost the project can be lost too.


How important is user acceptance to system success?

If the people that will be using the system daily can not accept the system (no matter how good it is), it is damned. Two good examples are Backweb and Octopus. Two web companies with excellent ideas, but are no longer heard from again. Backweb collected news from many sources and would popup alerts on the desktop. Users revolted again the system because it used up too many system resources and crashed the computers. It was an awesome idea, but it never got off the ground. In 2004 a better method of getting your news was developed using XML for news sites called RSS (Really Simple Syndication).

Now I get my new like I did with Backweb. However it took 5 years later for that to happen. Octopus was another really cool web based application that allowed you to take certain sections from any website and create your own webpage with bits and pieces of different web pages on a single page. No coding, you just highlight and snatch. They were sued out of existence by the very websites that they were helping to promote. I am baffled by this and I have not seen any technology that is even close to what they did. That was 6 years ago.


Why do users not accept an installation?

User will not accept a system that creates more work than it resolves. They will not accept it if it is crashing all the time. They will not accept it if it is slow. They will not accept it if there is a perceived problem, even where none exist. Some users will not accept the system not matter how great it is. Some users are highly resistant to change.


Why do users accept an installation?

Users accept systems for the opposite reasons the do not. If it saved them a ton of time they will love it. If it does really cool things, they will love it. If it is fast and stable, they will love it. If it is quick and easy to learn and use, they will love it.

Monday, January 10, 2005

Understanding Databases

Design Specifications for Databases

When you are first wanting to use a database, the developer or user has to determine what the database will be used for such as an inventory database, accounting database, a work order database, a recipe, a maintenance tracking database, or a web blog or other web based database driven application.

Once the usage has been determined; then the need to know the number of users that will be accessing the data and the number of transactions or records that the database will require is next.

These are the basic bits of information that are needed in order to begin establishing and defining the database design specifications. If a user is only going to need to track recipes then a low cost database solution would be an Access Database. If millions of records are needed to be stored, queried and processed then a work horse database like Oracle would be needed. For a business web based solution a Microsoft SQL database would be best suited for cost and the size of the database being queried.

Then the developer needs to determine the number of tables that would be required to meet the needs of the usage. For a contact database that could be just a single table. For a work order database it might contain many tables such as a contact table, company table, work order table, project management table, and a document management table.


Database Organization

A database contains tables, tables contains records like a rows, and records contain fields, and fields are of a certain data type like text or string, integer, Boolean, currency, date, etc.

To eliminate redundant data, like contact information the tables can be linked together and enforced referential integrity with one to many connections called relationships. These relationships are formed by connecting fields called keys. These keys are called primary and foreign keys.

Table relationships can also be established by quires to created views of the data, but have no underling effect on controlling the data in a relationship. This query action allows for powerful ways to exam and review data.

Some database applications make it very easy to integrate multiple databases together to share and exchange information, provide enhanced security and are highly scalable to meet the needs of tomorrow demands.


File Processing verses Database Management

File processing is an old method in which data is contained in separate files. A table for contact information would be in one file and inventory information contained in another file. There are two common methods of file access sequential and random. These determine how the records are organized within the file. Examples of this method are dBase III, Clipper, and DAT files. These are older database file formats. The biggest disadvantage of these types of files are with multi-user and high record transaction rates. They do not perform well and record locking events often occurs, thus preventing the update of data.

A database management system can better manage these types of issues. It consolidates all the tables that would normally be multiple files into a single file or database. It assists in the record transaction process and ensures better data integrity. It is the preferred method. Microsoft SQL has an excellent database management system (DBMS). Access has a decent DBMS and is great for less than 5 users for simultaneous access.


Database Security

Database security is extremely important. It is even more important when commerce is involved. Not everyone needs access to the same information and not everyone needs to modify that information. Security can be very strict or very relaxed. A web blog is built upon a database. It is commonly open for everyone to query, but no one has the ability to modify it. The University of Phoenix has student logon accounts. These accounts only allow the individual student access to his or her data. That data is contained in many different databases such as student records, grades, class information and accounting. However the single security logon allows the students to seamlessly traverse many database systems in a single interface or presentation.


Database Management in My Work Place

In my work place we use a variety of database systems. Our old work order database system was in Access. Now it is in ASP.NET for the web interface language running Microsoft SQL server for its database on Microsoft Windows 2003 servers. My security website is running PHP for the web interface language and mySQL on Linux servers. The University of Phoenix is running ASP Classic and .NET with several SQL servers.


Proposed Improvements

The different databases are used for a specific need. For example you would not want to use a Simi-truck to deliver a post card. Using the database that fits the need is wise economical decision. To improve this better inter database data exchange could occur. This is currently in the works with Microsoft and other database developers with XML. This is a standard language to aid in the exchange of data in an agreed format from one classical system to another with little effort. For example exchange data with and Oracle database and a MS SQL database with the drag of a mouse in a web page. Once we have reached that level new business to business uses with be taken advantage of for the ease of sharing information.

Sunday, January 09, 2005

Beyond the PC Life Cycle

In both big and small business the life cycle of a computer is 3 to 5 years. We redeploy older systems to other usage as new systems are purchased to squeeze a little more life out of them.

Some systems get used beyond there life cycle. I wrote a program to process remote data access 800 calls for a really big drug company to collect user ID and total minutes online in order for that call to be billed back to the department that the user belong. It was a stop gap program that took me a couple of weeks to write, test and deploy.

It was to be temporary till we could get the bigger more expensive system in place to handle the processing as it processes over $500,000 in charge backs per month to departments. Well that was in 1994 and it is still in place because it worked and I left to go onto other things. I was called back in 1999 to make a couple of minor Y2K adjustments. Today I look back at that code and go, wow I could have written that in 100 lines of code instead of the several 1,000 lines I did. However I didn’t put that effort into it because I thought there was something better to replace it, so why spend the extra time to tweak it.

Another cool story: At a big drug company I installed two IBM XT 8086 PC’s in 1988 each with two fax cards. They faxed about 800 faxes per day per card orders and shipping info. The PC’s were directly connected via a DOS 3270 terminal connection via COAX to the mainframe. I finally turned them off in Oct of 1997 as they were retired and we had a newer system in place in which we migrated to. I was a proud father of those to ole PC’s as they never gave us any trouble at all for 9 years.

So the moral here is even though there is a better system, some companies do not change things.

Anti-Virus Software

I recommend Symantec Anti-Virus Corporate Edition for business users. I am not a fan of the Symantec 2003, 2004 software. I think McAfee is better. For those that can not afford the cost of the software you can get a free home anti-virus software from AVG. I run all these on my different systems for testing, knowing and comparing.

Installing Software on Different Scales

There are many different scales of deployment and installation.
  • There are large scale SAP or Peoplesoft Installs.
  • There are medium scale installs such as critical updates to the server and/or desktops.
  • There are small scale desktop application installs.

All of which have various degrees of trip points in which failure can occur.

The bigger the project, the more people, the harder it is to manage and the more points of failure are exposed.

That is why SAP type deployments take years to roll out and it only takes a few minutes for me to update my web page. These are the same concepts but way different scales.

Saturday, January 08, 2005

When to use which Database Vendor

On databases one thing a number of people do not understand is which database vendor to use when. Below I have put together a basic comparison list to give you a better idea of the amount of data by the size and need. The price of each solution goes up as the need to scale and maintain larger data stores.

  • File (.dat, .dbf, .xls, .csv) = Car, Motorcycle, walking
  • SAM (.mdb (Access), MSDE = Van or large 4 wheeled truck
  • SQL (MS SQL) = a fleet of semi-trucks nearing trains
  • Oracle = a fleet of trains nearing 747’s
  • DB2 (mainframe) = a fleet of trains, 747 airplanes and very large/fast cargo ships

So you use the database vendor for the need, size, cost and ease.

MS Portable Executable


Do you know if the PE approach Microsoft is looking at will affect all the program on the system?

No it will not affect older programs as they will try to maintain backward compatibility. It will require the DOT.NET Framework to be installed. You simply create a folder and copy the files into it. It is ready to run. To delete the application you delete the folder, thus the end of DLL Hell.

They are also work on application level security. This will be in Longhorn only. Today most applications have free reign of your computer and there is no authentication method for the OS to tell which is a good application and which is a bad one.

Once they get that built they will put an end to most of the evil that we have today or at least an end to script kiddy evil.

Friday, January 07, 2005

Why Software Installs Fail

Many businesses do not use the System Development Life Cycle. What is a likely explanation? Why do system installations fail? Is an unfinished system a failure? Why do system installations succeed?


Many businesses do not use the System Development Life Cycle. What is a likely explanation?
The most likely explanation is they do not know what SDLC is. This concept is still in it’s infancy as compared to other business practices concepts and theories. The reason no one knows what it is, because most every development project and development company are dramatically different. The driving forces are money available, costs, people, expertise, experience, budget and timeline.

When I started writing code there were no schools to teach code writing. We just invented things as we went along. Only the very large organizations and veteran programmers that have been dragged through the hot coals of the development cycle really understand what it is and its sub components.

Most development projects are done with small teams that share a portion of a much larger development program like at Microsoft. Most other upstarts and smaller companies are less structured and have more free spirited development teams.

Programming is like being an artist. They maybe a really good painter, but they may not be able to manage a project. Since development is a skill like being a painter not everyone can function in that structured manner or have been trained.

Like the really great artist, programming is something that has to be desired and the person has to have the vision for it. Managing SDLC requires someone who knows and understands both doing development and knowing what SDLC is all about.

Today there are very few managers that understand what the developers are doing and only understand time and money. In the industry SDLC is known, but the term is shortened to development cycle.

Here are a couple of sub components of SDLC that contain their own life cycle.

Why do system installations fail?
There are infinity + 1 reasons why an installation will fail. Because there are many different operating systems at different stages of patches and critical updates, with hundreds of localizations for a particular country, with 100,000’s of third party software with it own multitude of various versions, different hardware versions, firmware versions, device driver version levels, different levels of user knowledge about the products and systems and billions of lines of code running on trillions and trillions of billions of transistors. There is never the perfect installation for all cases and all situations. The best that you can hope for is the vast majority of your target audience.

The recent XP Service Pack 2 installation is a classic example. Microsoft has reported that there have been over 120 million downloads of XP Service Pack 2. The Gardner Group (an industry watch dog) is reporting that 10% of all XP SP2 upgrades will result in failure. That means that 12 million installations of XP SP2 have failed.

Is an unfinished system a failure?
NO! Software is one of the few products that you cailing, out of disk space, not enough system resources, file corruption, and all the items listed about under why installs fail.

Why do system installations succeed?
LUCK! LUCK! LUCK! And LUCK! System installs can be successful if they are very simple and not complicated. Testing, Testing and Testing and more testing on the various versions of your largest target audience will give you the largest base of success.

You will have has failed installations due to odd ball reasons, such as the computer is infected with spyware, the hard drive is failing, out of disk space, not enough system resources, file corruption, and all the items listed about under why installs fail.

I was introduced to Microsoft’s long range vision for software installations back in 2001 at Redmond, WA. Future software installs pulls out a chapter from the old school book from the DOS days. Back then to do an install, you just created a directory and copy the files into it. Microsoft will be doing future installs with the .Net platform OS’s with what is called Portable Executables (PE).

The install will create a folder and copy the files into it. To uninstall you just delete the folder. What a concept! Today’s software installs are so complex it is a miracle that we have successful installs. Thousands of files are copied to hundreds of locations, with hundreds of registry entries, often times over writing newer entries and with older versions of files.

It is a nightmare called DLL HELL. Microsoft is making great strides in this area to eliminate it. However it is taking much longer than I expected it before PE becomes a reality.

MS Anti-Spyware Software

We are getting a lot of enquires about the new Microsoft Anti-Spyware software. They released it yesterday. It is BETA1 which means that there are two more releases to come before the final release. The next two are RC1 and RC2 then the final release.

We ask that you NOT download and install the software unless you are having serious spyware issues. It is BETA software which is buggy and has issues per the internet buzz. Please wait for the final release for your business and home computers.

With that said, we have tested it in the lab (under ideal conditions) and have found it to be impressive as to the finding and proper cleanup of the registry, left over files and finding things that the others anti-spyware did not find. It has a bunch of new features that are going to be really nice and welcomed in the fight against spyware.

Please be patient as I do not think the testing cycle will last very long. It is nice as a BETA application and if you are having serious spyware issues then it is worth a try to kill the evil.

Here is the link to the BETA software:


Thursday, January 06, 2005

When Your PC Crashes

Poor oh Bill Gates demonstration of the latest media center software crashed while doing a live demo at CES yesterday. So the next time your PC crashes be glad that you are not the founder of Microsoft doing a live demo in front of millions of people. That should ease the pain a little.


Shopping Online

If you are doing product comparison shopping please look at the shipping, warranty & return policies, taxes and the site ratings before making a purchase. Sometimes the cheaper price is not always the better prices after purchase.

Sales ethics online are not always as they appear.

Wednesday, January 05, 2005

Is IM Annoying You?

MSN Instant Messenger, is it annoying you? Is it launching when you do not want it to. I suspect that IM is launching when you open Outlook Express. Just go into Outlook Express under Tools, then Options and on the General Tab. The fourth one down uncheck “Auto logon Windows Messenger”. That should make that issue go away.

Tuesday, January 04, 2005

AOL Install Hell

Are you frustration with one of the most famous offenders of software development?

You are not alone. AOL should not be in the business of software development. They just can not follow a few basic rules in Windows development.

At one point we banned any business computer that had AOL installed as was actively being used. In the old days they really had their head up something. They tried to redo Windows networking and changed in the registry key location of files and created their own version of the WINSOCK.DLL which handles most all the TCP/IP communications for Windows applications. AOL is the poster child of DLL Hell.

It wasn’t until Microsoft and AOL started working together did they finally get the networking thing straighten out. Now that they are divorced AOL is falling back into their old ways.

There are hundreds of case studies that I could write about AOL. One would be “This is how not to write code”. The fact they shot to the number one ISP baffles me.