Sponsors

Microsoft


TechWell

We have 1462 guests and 1 member online

Home CM: The Next Generation CM: THE NEXT GENERATION - Evaluating and Selecting a CM/ALM Tool

CM: THE NEXT GENERATION - Evaluating and Selecting a CM/ALM Tool

E-mail
Written by Joe Farah   
Monday, 17 November 2008 14:27

nov08nextgenerationtoolbig.jpg

Selecting a CM/ALM tool is no small task these days. The CM/ALM tool is no longer just another developer tool, such as a compiler or IDE environment. Instead, it forms the backbone of a development organization. It will strongly influence an organization's ability to measure and control quality, meet schedules, comply to requirements and assess development costs. It will also be the central focus for all development processes. It will support a key knowledge base, and will be viewed as the vault for both software and product assets.


A CM/ALM tool is also a key communication tool. Wrongly implemented, it will impede both process and communication. Successfully implemented, it will add significant value to all users, reducing workload and providing effective decision-making capability. Looking at the evolution of CM tools, the backbone technology capabilities increase dramatically from generation to generation.

We'll look at a few key areas of evaluating and selecting a CM/ALM tool in this article, with a clear focus on the different generations of CM technology:

  • I. Surveying the Landscape

  • II. Let the Vendors Help You Create Your Requirements

  • III. Your CM/ALM Requirements

  • IV. Vendor RFIs and Responses

  • V. In-house Evaluation

  • VI. Payment Considerations

I. Surveying the Landscape
Evaluation can be a long process or a not so long process. It depends on how you proceed. It may be possible to use the input from other evaluators, but if you do, make sure you're working to the same set of requirements and make sure that the information is accurate and up to date. Some CM vendors move their technology ahead much more rapidly than others. Often some of the best solutions are overlooked or there is a bias in the evaluation due to experience with past systems.

Don't start by restricting yourself to Open Source solutions. Why? There are two big reasons: the cost of the software will not not come close to being your biggest cost, and, you'll find it much more difficult to discover advanced requirements as Open Source CM often caters to a smaller common denominator of functionality. At the same time, don't exclude Open Source solutions. It's important to measure them against your requirements and to get a feel for where they sit with respect to commercial offerings.

Don't restrict yourself to the most-used solutions. There are a few old and clunky systems out there that have been around forever, it seems, and which may have been advanced at one point in time, but perhaps are not so much so now.

Here's a set of questions to ask all prospective vendors:

1. How long does it take to install?

2. What hardware do I need to do a full evaluation?

3. Do I need additional 3rd party software?

4. Can I perform the installation myself?

5. How quickly can I load in my existing data (so that I may do a more accurate evaluation)?

6. How much training will I need to evaluate?

7. How much customization will I need before evaluation?

These questions should be a starting point. Assuming you have a fixed set of time and resources for evaluation, you may want to get a good feel for how many tools you can evaluate. Be careful not to make assumptions here. The simplest tools may be very easy to install and evaluation - but so may the most comprehensive tools. And a number of tools can eat through your evaluation budget before you have a chance to look elsewhere. I strongly recommend looking at the easiest to install/evaluate tools first. If you look at a difficult one first, you may assume that all tools will require that amount of effort and you may be much less likely to cast your net wide enough.

II. Let the Vendors Help You Create Your Requirements
Do you know what your requirements are? Have you been through this process many times before or is this the first time. Regardless, your requirements are, at least in part, formed your perceptions of what technology is available. And in fact, many get hooked on one solution just because they see some technology innovation that they haven't seen before. I know the CM industry as a whole is advancing slowly, but there are a few vendors that have quite a number of innovations - not just nice gimmicks or fancy reports, but real time savers and process support.

Even if you don't choose to evaluate some tools, it's important to look at what they have to offer. Give yourself at least a couple of hours on each of 10 tools. I'm certain you'll find some new requirements that are important to your environment. But how can you optimize those couple of hours to get the most out of them. Here's a secret: vendors like to be involved in the requirements phase so that they can get their key features in as requirements - it increases their chances for success. So take advantage, but make sure that you cover a large set of vendors. A vendor will come in to do a 1 or 2 hour presentation or perhaps they'll do a Web presentation for you. And they'll be sure to let you know what you really need!

Beyond that, you might even want to ask the vendor for CM/ALM requirements. Vendors deal with a lot of companies looking for solutions. Of course, there's always a lot of valuable input from cmcrossroads.com.

III. Your CM/ALM Requirements
Just because the vendors have some new requirements for you, doesn't mean you don't need a head start. Still it's hard to put together a CM/ALM requirements checklist. Why? Because there are a lot of requirements, many of which it's easy to take for granted. So it might be a good idea to specify requirements with a broad title and then a detailed paragraph which zooms in on specific capabilities that are important from your perspective.

At the end of this article, I have prepared a fairly lengthy, yet certainly incomplete, checklist of things I would have on my list. Some are basic, some are not. Some are musts, some are wants. I've organized them by CM/ALM generations, from 1st to 4th generation.

It's important to understand each of these requirements, at least to the extent that you can verify or otherwise ascertain that tools you are considering support them.

Generically, you should be looking for process based tools. Prior to establishing your requirements, put together an overview of your process and identify the type of support you're looking for from your tools. Process-centric tools should help you match your process better. And you should carefully explore the differences between their process capabilities and the out-of-the-box configuration. If you need a lot of customization to take the out-of-the-box to a point that you realize the promised capabilities you require, look at the cost of that customization clearly.

Often requirements will look at functionality but fail to do a significant total cost of ownership (TCO) assessment. These are your resource requirements for implementing a solution. TCO includes items such as:

  • Cost of evaluation

  • Cost of supporting platform (hardware and software), and the effort to set them in place

  • Cost of tool licenses (all tools for the ALM solution, not just version and change control), including all options

  • Cost of annual maintenance and both minor and major upgrades

  • Cost of training, administrators, CM Managers and end users, including lost salary for the time trainees are on course

  • Cost of customization, including both ease of customization (how long) and rates (how much)

  • Cost of administration, including applying upgrades, backups, performing multiple site synchronization tasks, and platform maintenance

  • Cost of down time: does it affect 1 user or all, and what is the track record for the tool

  • Cost of data loss (what is the track record for the tools), and cost of recovery

  • Savings due to productivity increases, for all roles

  • Cost of moving from your existing platform to the new one

  • Cost of tool glue if you have to integrate multiple tools, including ongoing salaries to support the glue

  • Costs incurred due to extra platforms/licenses/administration to support poor scalability, and cost of tuning.

This list helps you to understand why the tool licenses themselves are only a portion of the acquisition cost. You may want your vendors to give you a cost percentage breakdown for a 50 person project, using all of the above factors over a 3 or 5 year period.

IV. Vendor RFIs and Responses
Once you have your requirements clear, put together an RFI, asking vendors how well they meet each requirement. Now the problem you're going to face is that each vendor will have different criteria for responding. Your requirement is clear, but "does our tool meet the requirement" may not be. And some vendors will answer "yes" if a small bit of the requirement can be met by spending a few days configuring their tool, while others will answer "no" because they only meet it 75%. Most will add comments if they fall short and answer "no", but will avoid comments if they fall short but answer "yes". As long as they can justify their response at some point in the future - if it becomes an issue - a vendor is generally OK with the response.

What I would recommend is simply rating how well they meet the requirement on a scale of 0 to 5. This doesn't really give them a chance to avoid the heart of the question. At least now, if they say "5" and you purchase the tool and it's only a "2", you have more of a legal leg to stand on. As well, the 0 to 5 scale gives you a chance to zero in on the weaker (and stronger) features of their tool more easily. You'll still get a lot of subjectivity (a 4 for one vendor is a 2 for another), but your overall impression of the tool will help you to adjust the ratings from your perspective. And as most requirements from a vendor will be a 5, if they're in the business with a good solution, you've reduced the set of issues you have to look at more closely.

Don't be unreasonable with your RFI. For example, if a vendor is a day late submitting the response, take that as an indication of their support team - don't disqualify the entire response. You're only hurting your own cause in that case. If you really need to be accountably fair (e.g. government procurement), give demerit points for late submissions rather than having a hard deadline. On one hand, the vendor has seen most of these requirements before. On the other hand, they may have a new release that required more work for the response, or perhaps they're overloaded with sales propects.

Do not eliminate any vendor based on their response. Instead, use the rankings to order how you'll do your evaluation. You may find that a couple of vendors were too lenient in their responses. Or maybe, in fact likely, you'll find a few key questions you forgot to include, like cost of customization, data porting time, and the ability to export data from their tool. These may be significant requirements that you just missed the first time through. Don't be afraid to issue a secondary RFI.

V. In-house Evaluation
The rubber meets the road when it's time to evaluate. You will find a very wide range of evaluation requirements - perhaps wider than you were led to believe by your interpretation of the response results. Maybe it can be installed in minutes, ...after a two-week course. Perhaps the response time is sub-second, ...on the top of the line quad-core system with 16GB of memory. Did you realize that you needed such a machine to do a "proper" evaluation once all of your data was loaded?

Most likely, you'll find vendors have worked hard at making evaluation easy. It's you're first real view of the tool and they want a successful outcome. Some vendors will offer to come in and help you to evaluate. My recommendation: take them up on the offer, BUT only after you have had a chance to do the evaluation yourself. If you have a difficult time without them there, perhaps they can show you why when they arrive. But if they need to hand-hold all the way through the evaluation, you have a clear indication of how much consulting support and training you'll require.

Some tools will install in minutes and be fully up and running. Other tools will install in minutes and be partially up and running. You need to ensure that you can evaluate all of the major components: all of the ALM functions, their global development solution, upgrade procedures, basic customization, etc. You want a feel for how much training and how much consulting you're going to need. You also want to be able to measure the level of administration required. And, of course, you'll want to see how easy each user role is to perform with the tool.

Make sure that your evaluation is taking place with your data. It's fine to go through the checklist once with their "demo" repository. But you need to know how easy it is to load in your data, or at least a significant portion of it. And you need to look at performance with a larger, not perfectly tuned, set of data. The history graph was fine, and very pretty, with only 2 branches and 4 revisions in each. How usable is it when you scale to 10 branches with dozens of revisions in each? As well, evaluating with your own data will help others on the team to more easily participate with real scenarios.

So which tools do you evaluate first? The highest ranked tools, right? Not necessarily. You do not want to get bogged down evaluating a tool. Pick your top 3 or 5 and then address them based on how easy they are to evaluate. Some tools take weeks to evaluate, and others require extensive preparation, such as special repository platforms or special hardware. Move those to the end of your list. There is little correlation between how much prepartion is required and how functional is the tool. Some good tools require significant setup. Some virtually none. Some bad tools require a lot of setup. Some virtually none. Some tools require significant training prior to evaluation. Some require a day or two. Some vendors will charge for this training, others might not. Some will charge you only if you don't purchase their tool.

As you're working through your evaluation, give your vendors a chance... let them know what you like and don't like about their solution. Maybe they'll clarify some features for you: like maybe that "Yes" for "MultiSite" really just meant that you can have a VNC connection to your server network. Or maybe a customization that you've been trying to do for 3 days really could have been done in 3 minutes if you were a bit more familiar with the tool. You'll be working with your vendor somewhat to do your initial customization - perhaps they'll throw in some free customization during your evaluation period. This is more likely to be true if customization is easy to do.

Likely you're going to have different preferences from different evaluators. A CM Manager may be very familiar with one tool having had several weeks of training on it and having used it for several years. But perhaps another tool only requires a few days of training in total because of the more intuitive design. Perhaps a Project Manager likes one tool, while developers like another. This can be a real difficult situation. So find out why and then bring the vendors in to talk to the situation. Maybe the developers don't appreciate that the "process-oriented" tool is actually going to save them time and effort. Maybe the project manager can be persuaded to live with the other tool if certain features are pre-configured or otherwise delivered with the solution. So turn it around and make your vendors show you how agile they are.

The biggest caveat with respect to evaluation is not to expend all (or a significant portion) of your evaluation resources with a single vendor. This can happen easily. You may have picked the wrong vendor to evaluate first or second and they may require that you do training and spend a lot of time customizing and loading your data. Having gone down that path and having spent your resources, you'll be much more reluctant to pursue other evaluations. Set aside a few days for each tool. After that time, move on to the next couple. Then make a decision which one or two you're going to dive into in more detail.

For large corporate purchases, you really should be willing to run pilot projects with a couple of vendors, possibly in sequence, unless you see a clear winner. Your key issues will likely not surface until you have run a pilot for a few months. Your evaluation results should go out to all projects for feedback. Some will agree, some won't. Get the ones that don't on side by having them point out why they don't agree and then present a demo to them to refute the claim, or let them run a small evaluation too. If it's a close decision between two tools, you're likely not going to have a win-win situation - you'll likely have two camps, with the loser subsequently pointing fingers as the winner. But that's life. The best road forward might be to spend a bit more time focused on the "process" evolution and get the two camps to demonstrate how easily the process is going to evolve with each tool.

VI. Payment Considerations

Economy. uP. Down. It's definitely down now. It would be great to get a new tool in to make us more effective, but the dollars just aren't there. Some vendors will have a solution for you. Some won't. Push the vendors. "If your solution is so good, let us use it for a year for 10% down and if we like it we'll buy it." They may say "no". They may say "25%" down. They may say "yes".

Even if you're not economically constrained, this is a good idea. It will let you know how much faith the vendors have in their own tools. Be careful though. Some vendors may say yes, fully well knowing that most of their revenue will come from training and consulting. So you need to examine these as well.

I think it's quite reasonable for a vendor to say: 33% up front, 33% after 6 months and the balance in a year - and you can opt out at any time. For training, consulting and license costs. Perhaps the maintenance costs can be pro-rated to 6 months for the first bit - or perhaps they're already included (i.e. buried) in the initial license cost. Maybe you'll need them unbundled so that your capital costs are lower. Beware of vendors that will require that you pay the full amount up front. Maybe the tool will do everything they say, but maybe it will cost you an arm and a leg in consulting services. But if you've sunk your budget up front, and now have to pay significant consulting fees, or risk looking like you made a bad choice, you're not going to be happy, and neither is your boss.

Vendors know that CM/ALM is a significant backbone application. They should be more than willing to help you through a pilot project with partial payment up front. If you're acquiring for a large project or for a corporate standard, let the vendor know and negotiate a "pilot" project price and payment schedule. And let them know that you're not willing to pay more than a certain amount for customization and consulting. If they can't meet the terms, you really have to be somewhat suspect about the technology or at least the ultimate cost of the solution.

What if they guarantee that their solution is best? Well be careful about the terms of the guarantee. Some vendors are willing to give away the tool (i.e. give you your money back) while they collect training and consulting revenue. Now they may get a bad name if you really don't like their solution, but there may be a legal clause covering publication of your negative impressions. Still some guarantees are a bonified claim that a vendor believes their tool is the best. If so, you'll also notice a willingness from them to admit that their tool is perhaps not the right choice for your specific requirements.

THE BOTTOM LINE
The bottom line is: don't use up your budget and resources until you're sure you have a good solution. It may not be perfect and maybe you end up with the second best instead of the best fit, but make sure you have a good fit before all of the money is placed on the table. If a CM/ALM vendor thinks that's unreasonable, tell them you're not interested. They want the sale and will either admit that their tool has some issues with respect to your requirements, or will propose reasonable payment terms to you.

Go into an evaluation prepared. Pay close attention to the big items. Make sure the tool is flexible enough so that you don't have to pay too close attention to the little items. Make sure you can get into the new tool easily, but also make sure it's easy enough to get out if things don't work out.

Look at your vendor as a partner. You'll be dealing with a small number of vendor personnel, whether a large company or a small company. Make sure they understand you want to minimize risk. They likely do too because every successful implementation of their tool is free marketing and a set of potential reference customers.

CM REQUIREMENTS
Apart from the article proper, I've tried to put together a number of CM/ALM tool functional requirements that may be critical to successful acquisition. This list is not complete. But it will likely contain numerous items you have not yet considered.

First Generation CM Requirements
First generation (1G) CM tools were available through the 1970s and 1980s, but their use continued well into the new millenium (e.g. Visual Source Safe. Such tools were file-based and focused on basic checkout/in and build capabilities. Some of the requirements included:

1 Item and Revision Identification: Uniquely identify all repository items and consistently identify item revisions.

2 Check-out and Check-in with comments: Check files in and out of the repository and add "reason" comments to the checked out/in files.

3 Exclusive Check-out: Checkout of a file by one person can preclude concurrent checkout of the same file by another person.

4 File Retrieval (aka. R/O checkout): Retrieve either latest or earlier revision of a file from repository to workspace directory.

5 Revision Comparison (aka. Diff / Delta): Comparison of line differences between workspace file and the latest repository file, or between any two revisions of the file.

6 Baseline Definition Capability and Reproducibility: Define (and name) a consistent set of file revisions as a baseline such that the same set of file revisions can be retrieved repeatedly.

7 Basic Build/Make Tool Support: Ability to transform the files in a workspace into a working build, using third party compilers/linkers/etc.

8 Basic File Merge Capability: Ability to merge differences between two files into a third file.

9 Basic Scripting (usually OS Scripting Language): Scripting capability which allows automation of build, retrieval of a set of files, basic information reporting.

10 Basic Branching Capability: Revision identification allows definition of branches within an otherwise sequential set of revisions of files. This allows parallel development/tracking of changes for a file.

11 Basic Branch/Revision Reports: Ability to report on existing branches and revisions of a file (file history), as well as the contents (i.e. file revisions) of a baseline.

12 Consistent Backup: Support for a consistent backup capability of the entire CM repository is supported.

Second Generation CM Requirements
Second Generation (2G) CM had peak usage in the 1990s-2000s, and moved CM solutions ahead significantly. As vendors struggle to reach 3G capabilities, 2G tools will continue to be used well into the 2010s. 2G CM tools begin to integrate more of the ALM suite into the solution. This includes Problem Tracking, Requirements Management and Change Management. In particular, change packaging is a significant move forward in the 2nd Generation, allowing changes to be viewed logically, rather than file by file. Today, the vast majority of CM solutions are based on 2G tools (though some still cling to 1G tools).

Key 2G CM Tool requiremetns include:

1 Unix and Windows Concurrent Platform Support: Support for clients must include, concurrently, both Unix/Linux and Windows platforms. Ideally, the same holds for servers, but this is not a hard requirement of 2G tools.

2 Scalability of Solution to hundreds of users: Hundreds of users are able to share a CM repository with reasonable performance characteristics, and ideally without having to partition the repository to have acceptable performance.

3 Change-packaging capabilities (aka. Updates, Changesets): Collecting files which implement a logical change into a permanently defined change package; the ability to check-in and do delta reports on a change package basis; the ability to promote changes, rather than files; the ability to define baselines based on change status rather than individual file status. Ideally, this capability is central to the CM tool and does not require a separate database/user interface to maintain change definitions.

4 Revisioning of Directory Structure: As product development evolves, the CM tool is able to track which directories are used to hold files in both newer and older baselines, and ideally within and view of the repository.

5 Automated Baseline Definition Support: The CM tool must support automation of baseline definitions using change package definitions/promotion levels, and other related change tracking data. Baseline definition should not be a tedious, manual opeartion.

6 Sharing of revisions across development Releases/Streams: The CM tool should not force copying of all files in order to support a new release or development stream. Instead, fixes made to older streams should apply to newer streams if the file has not yet been modified in the newer stream.

7 Software Bulk-Loading Capability: The CM tool provides a means to load in entire product file sets, or at least to load in larger portions of a product in a single operation, rather than the file-by-file method of 1G systems.

8 Parallel Checkout: The CM tool supports the option of using parallel checkouts within a release or stream. In this scenario, even within a given development stream, the option can exist to permit more than one person to make changes to the file concurrently. Ideally, the CM tool detects when this happens and notifies the user checking in code whenever a parallel checkin conflict arises (i.e. checking in files that have been modified by others since being checked out).

9 Branch Label Management or Equivalent: The ability must exist to clearly label branches to support the CM branching strategy of the project. Whether arbitrary branching is used or stream-based branching, labelling must support all of the branching functions (e.g. parallel checkouts, parallel development streams, promotion levels, build/baseline definitions, etc.). Ideally, first order objects other than branches exist to support most of these functions.

10 Support for Makefiles and Build Scripts: The CM tool not only stores Makefiles and Build Scripts, but also can support creation of these based on the set of files in a product. Often this capability is inherent in the related IDE (Interactive Development Environment) tools.

11 Distributed Build Capability (possibly thru tool integration): The CM tool allows very large products to be built across multiple machines to reduce build times. Ideally, the distribution of compile and link operations is performed automatically by the CM solution.

12 Integration with MS SCC compliant IDEs: Microsoft has defined a "de facto" Source Code Control Interface supported by many IDEs and CM tools. Although this interface has changed significantly over time, CM tools should be able to support the majority of SCC compliant IDEs on the most common versions of the interface. This allows the IDEs to plug in to the CM tools which support the MS SCCI. Note that Microsoft has not declared this a standard.

13 Basic Workspace Support: A 2G tool allows you to populate a workspace easily, to compare the contents of the workspace to a specific view (e.g. baseline) within your repository, and lends support to automating the synchronization of differences found in such comparisons. Ideally the CM tool allows for easy synchronization on a daily basis, but also allows for isolation from changes being deposited to the repository.

14 Integrated Problem/Issue/Task Tracking: Problem tracking must be integrated to the extent that problem reports can be traced against change packages, and the states of these problems can be automatically promoted as change status is promoted. Similarly, other tasks/feature tracking capabilities should be integrated so that full traceability from change packages to "reasons" for the change is possible. It must also be possible to generate reports and queries which can translate from problems/features/tasks to change packages, and vice versa.

15 Multiple File Retrieval: The CM tool supports retrieval of multiple files at a time. This includes the ability to retrieve either an entire product source tree, or at least entire source directories, in a single operation. Such retrieval should be possible for any baseline or for any "view" of the CM repository. Retrieval of files of a change package is also a frequently required operation. Restriction based on file type, or based on wild cards, is another important aspect of this requirement.

16 Scripting and Basic Configuration Capability: A 2G CM tool has significantly more functionality than a 1G tool. Because of this, more customization is required by each project. So 2G CM tools need some scripting and other customization capabilities to enable a project to support specific usage, data and process requierments, specific to each project. As well, scripting is often required to support implementation of triggers and integration of tools.

17 Basic Rules/Triggers Capability, including email: A 2G CM tool allows extension of process definition through rules and triggers. These are often used to integrate process across tools or to signal information to other users via email.

18 State-based Promotion Model: A 2G CM tool defines states or promotion levels for change packages (possibly as file states, but ideally not), for problem reports, and for features/tasks. These can be customized to the requirements of the project and the model is generally expressed through a state/transition diagram or equivalent. This allows state-based tracking of product/project status.

19 Basic Repository Data Security: Access to the CM repository must be controlled. Both access to data and to the ability to change the data needs to be controlled.

20 Graphical User Interface: The command line interface (CLI), while still important, gives way, in normal usage, to a GUI-based interface in 2G tools. The GUI needs to be sufficiently useful and intuitive that there is a tendency to migrate to it from the CLI interface. Ideally, a substantial amount of GUI customization can be done with a reasonable amount of effort.

21 Context View Capability: The 2G CM tool allows the user to specify a "context" through which to view files (and perhaps other information). This eliminates the need to specify specific revisions of files within the tool. Instead, the CM tool uses the context to determine which revision is implied. Context can be static (e.g. a baseline) or dynamic (e.g. the latest checked-in version for release 2).

22 Basic Reporting Capabilities: Reporting capabilities extend beyond basic file history and baseline definitions, to cover change summaries, problem and feature reports and requirements informations. Better tools will permit interactive queries with drill down capabilities. Ideally, most reports do not require an "expert" to specify or run the report.

23 Graphical Differencing/Merge Tools: Difference and merge tools supported with the 2G CM tool are more intuitive to read and are interactive, in the case of merge tools. Typically, color is used to highlight differences, and menus/mouse clicks are used to navigate differences and to support merge operations.

24 Remote Access Capabilities: Support for accessing and using the CM repository from outside its resident internet domain is provided for by 2G tools. This requirement can usually be fulfilled outside of the CM tool proper (e.g. VPN).

25 Comprehensive On-line Help: On-line help is required for all CM tools, and with the additional capabilities, even more so. Ideally, on-line help can be easily customized to reflect tool customizations made by the project.

26 Graphical Navigation of Source Tree and History: The GUI-based interface must support navigation of the source code tree (in a directory/file manner) as well as navigation of source history for individual files.

27 Distributed Developoment Support: Basic means of distributing development geographically. Changes between sites need to be synchronized or at least sent to a central site with reasonable frequency (e.g. daily or weekly).

Third Generation CM/ALM Requirements
With third generation (3G) CM tools, we move more dramatically beyond functional improvements to operational cost reduction and ease of use issues, while expanding into a full ALM coverage. Although peak usage of 3G CM solutions are not expected prior to the 2010s, there are mature solutions available today. There is also strong impetus to move to a 3G solution because of the reduced cost of operation and the better acceptance by users. 3G tools expand the CM user base both horizontally, as additional applications are added in, and vertically, as ease-of-use supports use by executive management and administrative staff, as well as by the traditional technical staff.

3G CM tools are a significant advance in technology, even moreso than the jump from 2G to 3G. However, because of the advances in technology, support requirements are reduced, allowing improved pricing over 2G tools, and allowing lower budgets for internal CM operations. This may be somewhat compromised by the extended breadth of coverage which requires additional process specification and training, covering a new class of users.

A brief description of some key requirements follow:

1 Low Administration: Internal support teams for CM administration should be small for 3G tools, ranging from a part-time position for smaller projects, to a 2-person team for very large projects.

2 Fully Interoperable Windows/Unix, Big/Little Endian: Interoperability between Windows and Unix/Linux extends to both servers and clients, with equivalent functionality available across platforms. Support for easy migration between big and little endian (typically Intel and non-Intel) platforms must be supported.

3 Platform-independent scripting integrated with repository data: Scripting must not be dependent on the platform used. It is expected that the underlying platforms will change at least once during the lifetime of the CM tool for your project.

4 Fast Roll-out and Upgrade Capabilities: 3G systems are easy to evaluate and roll-out. Similarly, upgrades are relatively painless and typically do not involve any significant down time.

5 Seamless Integration of CM/ALM Applications: In a 3G CM tool, applications are seamlessly integrated so that a single user interface, a single set of base training, a single repository and a common process engine are used. Forms, reports, customizations and administration are no longer managed in an application-specific manner, but in a common manner across the life cycle. Administration and upgrade processes are dramatically simplified.

6 Extensive High-Level Configurability: Process, GUI, Schema: 3G CM/ALM tools allow relatively simple customization capabilities allowing the user interface, the CM data and the CM/ALM processes to track precisely the corporate models.

7 Easy Bulk-loading Capability for End Users: The user should be able to load in data easily. This supports evaluation in the context of the customer's data as well as rapid capture of existing data.

8 Stream-based automated branching: Sufficient mechanisms are provided by the CM tool so that branching is not overloaded and can be used to support stream-based development, where predominantly, there is a single branch (or at least a small fixed number of branches) per development stream.

9 Change Package-based CM Model and Processes: The CM tool not only supports change packages, but the entire process embedded in the tool supports the change model as well.

10 Change-based Promotion Model: There is a change-based promotion model which is used to drive promotion of changes through the system. This can be used to automate the build process by harvesting changes at a given promotion level for inclusing into a nightly build.

11 Automatic Build/Make/ANT File Generation: Ideally, a 3G CM tool, supports the automatic generation of build and Make files.

12 Workspace synchronization/rebasing automation: Workspace synchronization is automated from a given user initiation. This may involve some user interaction to resolve merge conflicts.

13 Interactive Build/Release Comparisons: The user interface allows the comparison of builds and/or releases from the perspective of change packages, source code differences, problem/feature differences, and requirements addressed. It should be possible to summarize and zoom in to such content/differences.

14 Support for Multiple Baseline Bulk-loading: Loading of multiple baselines of data from the pre-existing CM tool is supported. As such, the tool does not have to be used only going forward, but can replace virtually all usage of pre-existing tools.

15 Data Filtering/Find on Data Browsers: Data browsers within the tool support some level of filtering or "find" operation

16 Queued Exclusive Checkouts: Exclusive checkouts can be queued in the case that a file is already checked out.

17 Eclipse Integration: A 3G tool should support integration with Eclipse development environments.

18 Rapid Performance: A 3G CM tool must be responsive. It must be possible to use it during meetings without delaying proceedings. A poor performing tool dramatically reduces the user-friendliness of the tool, and this is unacceptable for 3G solutions.

19 File System Browser Integration: At some level, it should be possible to view file revisions in the repository directly from the the operating system platform. Typically, 3G capability might be restricted to a file explorer view, or might automatically mirror various CM configurations in real file system directories.

20 Formal Support of Stream Based Development: A 3G tool must permit a natural development cycle which meshes with the marketing releases of the products under development. As most products follow a repetitive release cycle, the CM tool must support an organization which clearly map development efforts, planning data, and file branches onto the streams of release development.

21 Minimizing Branch/Merge - Elimination of Labeling: Branching and merging is rationalized in a 3G tool by the introduction of first order objects and mechanisms which support various CM operations without the need to use branching. Branching should be primarily reserved for parallel development (ideally, parallel development streams only), providing an intuitive branching strategy. Labelling on branches, changes, file revisions, etc. are now inferred from user context, user operations and traceability data rather than through a manual labelling technique. All "labels" are now automatically supplied by the tool.

22 Integrated Process Workflow Capability: The statue-based process model of a 2G tool is expanded to full state-based object flow, with roles, permissions, rules, triggers and tracking, and to work flow capabilities across objects.

23 Access Control Beyond File System: Fine grained access control is provided based on roles defined in the CM tool. This goes beyond the traditional file system (owner, group, world) access control, to very specific role-based, and even user-based, permissions.

24 Multiple-site Distributed Development Capability: Support for distributed development is supported, while maintaining the ability to create consistent backups. Distribution of data applies to all elements of the ALM, not just source code.

25 Scalability to hundreds per server/platform: The CM tool should not require more than one server at a single site unless several hundred users are using the CM repository at that site.

26 End-to-end Traceability (Requirements to Builds/Test Cases): Traceability navigation is supported through various browsers such that it is always easy to map between one set of artifacts and other related artifacts. This includes requirements traceability to test cases and actual test results, from build defintions to feature and defect content, from source code to change packages and back to requirements, etc.

27 Advanced Data Import Capabilities: It must be easy to import data from existing solution components. This includes source code, documents and data (e.g. problem reports, tasks, etc.)

28 Project Management with Gantt Charts and WBS Support: A basic project management capability must support Agile development (priority-based feature/task driven development), preferably with charting to show plans and progress. As well, the tool supports a work breakdown structure (WBS) so that a project may be easily decomposed into workable units.

29 Full ALM Suite, from Requirements Tracking through to Test Suite Management: The CM/ALM suite must cover version control, change control, document management, requirement tracking, test case management, build and release management, problem tracking, feature/task management and ideally can be extended to cover other development areas (e.g. lab time assignment).

30 Real-time Metrics to Support Decision Making: A 3G tool must allow easy havesting of up-to-the-minute metrics that can be used for risk assessment, quality assurance and decision making.

31 High Reliability and Availability: The CM/ALM repository content must be available at all times (less than 24 hours outage/yr). A larger outage is permissible for repository content change capability, (e.g. for consistent backups it may be disabled) providing it does not impede the project significantly.

32 Data Transaction Journaling and Data Recovery Capabilities: All changes to the repository, source code or otherwise, must be clearly tracked so that it is always possible to know who did what, and when. There must also be support for recovery in the case of a disk crash or other repository corruption. If transaction journals remain intact through such problems, it should be possible to recover without any loss of data.

33 Advanced Backup and Redundancy Capabilities: As data volumes can grow significantly, advanced backup techniques must be used so that full backups can be performed in reasonable time frames. This is especially true if changes to the repository are disabled during backups. There should be sufficient redundancy such that operation of the CM/ALM environment can survive disk crashes/errors, network problems, etc.

34 Web Access Interfaces: At a minimum, a web interface must allow access to information within the repository to support field personnel, or specific contractor or customer access. Controls must be sufficient to adequately ensure that access is restricted according to the user. Ideally, updates to the repository (e.g. feature requests, problem reports or replies) can be performed through the web interface.

35 Flexible Reporting and Interactive Query: A 3G CM/ALM tool must support flexible reporting, within a specific application and across applications. It must be possible to produce both summary and key detailed reports directly from the tool (although in some cases some scripting may have to be put in place ahead of time to define the reports). As well, the tool must provide various interactive query capabilities so that high level data displays may be drilled down to reveal details, and so that traceability information can be traversed directly through mouse clicks.

36 Selectable Differencing/Merge Tools: As various developers and technologies have preferences for how differences are treated, it should be possible to select the difference/merge tools that a user will use with the overall CM/ALM tool. However, the CM/ALM tool must provide generally adequate tools out-of-the-box.

37 Basic Management Dashboards with Drill Down: A 3G CM/ALM tool must provide dashboards to present overall status for various roles. There should be, at a minimum, product, project and configuration management dashboards which support the roles of the product manager, project managers, and configuration manager. Dashboards should present appropriate summary information into which the user can drill down to get additional information.

Fourth Generation CM/ALM Requirements
The future of CM/ALM tools is in the fourth generation (4G). Although peak usage for these tools may not be attained until well into the 2020s, there will be at least one 4G tool available before the end of the decade. If you are looking at tools, an understanding of 4G requirements will help you to measure existing tools and their potential to evolve. As well, many tools already meet some 4G requirements.

4G Fourth Generation CM Tools (peak usage forecast 2020s-2030s)

1 Small Footprint: Despite growing hardware capabilities, a small footprint for a CM/ALM tool is a strong indicator of vendor longevity. It is also a strong indicator of tool simplicity, which is ever more important and functionality continues to increase through the generations.

2 Zero Administration Operation: For the most part, an administrator is not required for a 4G tool. A part-time administrator may be required to deal with specific issues (e.g. applying an upgrade), but these should be intuitive and require minimal manual intervention other than high level directives (e.g. verify synchronization of all sites).

3 Scalability to thousands of users per server/platform: A 4G system must support thousands of users across an enterprise, as organizations begin to consolidate multiple projects/products into a single respository to leverage re-use, process engineering and data mining.

4 Fully Synchronous Multi-site: Multiple sites must be able to synchronize themselves without manual intervention. Near-zero maintenance should apply even to distributed development support. Automatic recovery from network outages must be supported. Data segregation (e.g. ITAR) must be fully supported within the framework of having multiple sites.

5 Full Interoperability between 32- and 64-bit platforms. As a mixture of platforms will persist for quite a while, especially across geographic sites, the 4G tool must support full interoperability between 32 and 64 bit platforms. There must not be any significant effort required to switch a server or a client between platforms, and each must be able to concurrently interoperate with the other.

6 Unified Configuration of all Native and Web interfaces: In cases where the web interface technology is different from the native platform interface, it must be possible to use a single configuration specification for those parts of user interface common to both web and native platforms.

7 Server-only Installation (only trivial Client Upgrades Required): Visible client installation (other than establishing a short cut or other reference to the 4G tool) must be absent. Client side upgrades must follow directly from the central server(s) upgrade, without any client-side intervention.

8 Trivial Bulkloading and Multiple Revision/Baseline Bulk-loading: It must be possible to load in software trees by a simple drag-and-drop, copy/paste or other such trivial mechanism, although additional supporting details may be queried as part of the operation. It should be possible to bulk load multiple baselines of a source tree such that the history between the baselines, and between the individual items within the baseline, are maintained.

9 Fully Automated Configuration Management: Configuration management tasks should be reduced to high level requests. Tedious tasks such as labelling, creating baseline definitions, establishing context views, creating promotion views, etc. must be fully automated, subject only to the parameters required by the high level requests. Users, including the CM managers, should focus only on Change management.

10 Bulk Build/ANT/Make File Generation: Automatic generation of Makefiles, Build scripts, ANT files should replace the need to have to create and maintain such files. Generation of the files should proceed based on having sufficient information within the repository, and especially in the data structure and relationships.

11 Advanced Workspace Management: Workspaces are clearly linked to change packages. Multiple changes are supported in a workspace. The 4G tool reports through visual or other effects on the attributes of the workspace so that, as well as checkin/out status, other attributes, such as ro/rw, missing, differences in the files and other such information is actively portrayed in the source tree view of the CM tool.

12 Source Code and Source Revision Searching: Source code search capabilities are extended in the 4G tools so that operations common in IDEs, such as source code searching, can be extended to the CM repository. This allows, for example, searching across revisions of a source file, or searching through a specific baseline or other context view.

13 File Revisioning augmented with Full Data Revisioning: Along with the normal source code revisions, the 4G CM tool allows revision of finer levels of data including descriptions, data elements and even process workflow.

14 Context-based dependency analysis and layering support: The 4G CM tool allows interactive query of relationships between groups of files to support impact analysis and layering support. For example, it should be possible to identify, using a simple query, whether or not layering is violated because of out-of-layer "include" operations.

15 Promotable Directory Structure Changes: In the same way that file changes may be promoted or rolled back through the status associated with the change, it must be possible to promote or roll back changes to the directory structure. By adjusting a context view, any changes placed into or pulled out of the view must have such structural differences immediately reflected in the view.

16 Dynamic Variant Capabilities: Variant changes are supported such that the change can be dynamically applied to any context view. Hence if a product variant is formed by changing a set of files, that variant may be applied automatically, and dynamically, to any build definition, and user view or any baseline to produce the variant effect for that view. This helps to reduce multiple variant baselines down to a single baseline with variant options which may be specified at build time.

17 Product/Sub-product Management: The 4G CM/ALM tool will manage multiple products, including products which are contained within other products. Such a product hierachy helps to automate the order of building products (i.e. product dependencies), but also helps in navigating the set of product assets of a company so that a specific product release context may be easily selected.

18 Rename Operation Preserving History: Renaming of files which are part of a configuration must preserve the history of existing configurations, while at the same time allowing the history of the file evolution to be preserved.

19 Update Based on Workspace Changes: A 4G CM/ALM tool can look at a workspace and automatically generate an update package, including checkouts and structural (i.e. directory) changes, that is ready for peer review and subsequent checkin. As such directory-centric development (in addition to repository-centric development) is fully supported.

20 End-to-end impact analysis: From a line of code back to the potentially affected requirements, from a failed test case to the potential set of requirements, from a requirement change to the potentially affected set of documents, source code and test cases, the CM/ALM tool provides impact analysis capabilities to pare down the analysis activity.

21 Configurable Unified Process Support: The 4G CM/ALM tool includes unified process support which is easily customized for each organization or project. The support is apparent both in work flow and in on-line process documentation that is easy to navigate.

22 Integrated RAD Capability to Extend Integration Set: It is possible to extend the ALM suite to cover other aspects of the product or project. A rapid application development capability within the engine of the 4G tool allows addition applications to be created and seamlessly integrated into the suite. Example applications might include: Time sheet management, sales prospect management, lab resource usage, meeting management.

23 Change and Revision Control of Requirement Items: Requirements tracking includes full revision control of requirements as well as change packaging for requirements. The change package becomes the central point of traceability for the collection of changed requirements.

24 Project and Quality Metrics and Forecasting Capabilities: The CM/ALM tool supports the production of a wide variety of project and quality metrics, as well as customization capabilities for new metrics, and allows some level of project forecasting based on these measures.

25 Customer Request Tracking: The 4G CM/ALM tool supports customer request tracking with the ability to report to a customer the status of all completed and outstanding (i.e. not delivered) requests.

26 Peer Review Tracking Support: The 4G CM/ALM supports on-line peer reviews through interactive change-centric review panels which allow navigation through difference/delta displays and identification of actions and issues resulting from the review.

27 Test Run Management and Metrics: The 4G CM/ALM tool tracks the results of test runs against various builds so that it is possible to identify which builds tests have last failed/passed against, and so that sufficient metrics can be provided to indicate both the suitability and expected time frame for release of a build.

28 Data Management: The 4G CM/ALM provides full data management for development, including traceability and the ability to easily adapt the schema to track any and all significant project and product data.

29 Dynamic Management Dashboard Capability, Customizable: 4G CM/ALM dashboards are dynamic so that they can traverse products, builds, releases, sterams or any other potentially dynamic selection criteria (i.e. without having to re-launch the dashboard). In this sense, it is possible to navigate through project or product status across releases, or to navigate through a list of build comparisons. Dashboards are easily customized to have exactly the information desired by the role or by the activity being performed.

30 Electronic Authorizations: Electronic authorizations, including signing of reviews or documents, is supported across the entire suite of ALM applications.

31 Warm-stand-by Disaster Recovery: The 4G CM/ALM tool supports warm standby disaster recovery so that a disk crash, an explosion or a natural disaster does not impede the work of clients - a manual or automated redirection of the client/server connection leaves the client with the ability to continue his/her work without any loss of progress or context.

32 Checkpoint/Recovery Capability: The 4G CM/ALM tool allows relatively small checkpoints to be created and used as consistent recovery points. Ideally, transactions created after the checkpoint can be applied automaticaly to the checkpoint after recovery if desired.

33 Ultra High Reliability and Availability: Data availability is available 99.95% of the time, with a down time of less than 4 hours per year.

34 ITAR Data Segregation: Both Physical and Logical data segregation is supported so that a common set of data can be shared with proper regard to which data is visible to which users.

35 Recovery from Malicious/Subtle Data Corruption: The 4G CM/ALM tool supports identification of and full recovery from data sabatoge or subtle data corruption, with minimal loss of data or effort.

36 Proven Longevity of the Tool on projects (12+ years): The 4G CM/ALM tools has proven its logevity with at least a dozen years operation on projects of a significant size and constant activity.

37 Extensive Report Formats (XML, Spreadsheet, HTML, Text, etc.): Reporting capabilities are extensive to support intranets, data export and various other reporting needs.

38 Interactive Browsers (Hyperdata, Tree-browse, form browse, etc): The 4G CM/ALM tool includes a variety of history, tree, hyperdata and form-based browsers to interactively navigate the wealth of data.

39 Executive Summary and Interactive Drill-down Capabilities: Interactive abilities include drill-down capabilities on charts, graphs, summary displays down to the finest details.

40 Security – File Access Logging: The CM/ALM tool supports the option of full file access logging so that it is possible to identify both who has modified and who has accessed a file managed within the tool

41 Pre-populated Role-based Information Tabs and/or Dashboards: The 4G CM/ALM tools starts up with a configurable set of pre-populated role-based information sets, each a single click away. This allows instant access to the most frequently used summaries and information displays without having to request the information.

42 Configurable, Organized Role-based Information: The 4G tool has a role-based, intuitive interface showing a user, based on his/her role(s), the set of tasks, assignements, plans, notices or other information particular to that user. The user is able to navigate his/her various to-do lists and review them in a prioritized fashion.

The End... or Not The End
Does this leave anything for the 5th generation? Believe me, there's still a long ways to go after attaining even a 4G CM/ALM solution. However, beyond the 4th generation, CM/ALM reaches out far beyond the world of development and technology.

I've laid out a rough guide for selecting tools. I've categorized requirements by the CM/ALM Generation in which I think they belong. I'm sure others have additional requirements, or perhaps finer details for these. I'd love to, in fact I'm sure everybody would like to, see a matrix of existing tools against these requirements. I'd love even more to see a matrix of vendor plans for 2010 against this set of requirements.

If you are doing a review of tools and would like to measure tools against these requirements, we'd love to collect the results by Tool.YearOfRelease. If I collect enough, I'm willing to find someone to support an on-line spreadsheet of the results.


Joe Farah is the President and CEO of Neuma Technology and is a regular contributor to the CM Journal. Prior to co-founding Neuma in 1990 and directing the development of CM+, Joe was Director of Software Architecture and Technology at Mitel, and in the 1970s a Development Manager at Nortel (Bell-Northern Research) where he developed the Program Library System (PLS) still heavily in use by Nortel's largest projects. A software developer since the late 1960s, Joe holds a B.A.Sc. degree in Engineering Science from the University of Toronto. You can contact Joe at farah@neuma.com

 

Trackback(0)

Comments (0)add comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Thursday, 23 July 2009 10:56
 
clozaril generic canada propranolol cost comparison amex accept visa cheap online buy clomid citrate low acivir pills buy lasix online india no prescription order advair diskus online no presctiption adalat india buy cytotec online mexico no prescription what is the medicine lexapro used for suprax medication coupons low altace side effects ramipril us pharmacies online that sell bupron pyridium online no prescription buy viagra super active online no prescription usa ordering antabuse india where can i buy differin online buy lexapro tablets generic ditropan available cymbalta drugs side effects femara medication assistance program where can i buy prograf online without a prescription buy amitriptyline bar ordering altace without pharmacy bactroban genuine supplier scammers purchase cymbalta 20 mg antabuse where can i buy buy betnovate scalp application online cheap prescription allopurinol without where can i buy terramycin eye ointment for my cat where can i buy xenical online purchase acivir pills 11 pharmacy acticin drugstore online canadian can i order ventolin online albendazole without transcript order valtrex without a perscription buy pariet medicine order lisinopril 5mg online prevacid australia pharmacy vermox canada online no prescription digoxin online order lanoxin cost of clonidine without insurance drugs that contain ampicillin canadian kamagra terramycin online uk wellbutrin sr canada pharmacy canada doxycycline tablets online cordarone medication side effects oral combivent canada companies only diflucan canada order ephedraxin generic licensed pharmacy vermox levlen fast canada buy lozol mg online for cafergot buy without where to buy diflucan with visa topamax drug in canada pharmacy viagra super active india sale buy diclofenac gel generic lamisil no prescription needed online without pharmacy rx assistance for accutane buy proventil online canada i want to pay some ventolin order calan online no prescription with a visa ordering lasix mexico buy cheap extendaquin discount card for strattera flagyl generic name metronidazole prescription aciphex heartburn buy cytotec mg buy bactrim antibiotic purchase evista on line in usa cheap buy alphagan online buy ephedraxin generic pharmacies salbutamol buy combivent diarex no prescription fedex ups v drugstore accutane generic name for advair diskus 600 50 buy abilify 300 mg delivery order combivent online buy fucidin h no prescription online cheap accutane cost comparison order roxithromycin cheap buy diflucan online australia order cheap buy alli uk online approved flagyl without a prescription from india overnight levitra cheap aciphex online rabeprazole delivery cheap actos buy combivent us nizagara generic avodart from canada buy betnovate lowest price alli fda approved to buy without prescription purchase viagra plus in us order elimite pills ceftin online usa non prescription tetracycline safe furosemide no prescription buy flomax with no script buy eurax hc cream aricept prescription online nexium prescription cost target esomeprazole generic actoplus metformin do you have to be 18 to buy alli pills gallbladder buy arimidex us generic cholestoplex usa celebrex online prescriptions buy order alesse silagra buy online australia buy seroquel online usa order strattera without rx accutane on line in the mexico buy albendazole zentel premarin without a prescription kamagra now network buy glucophage xr online where do i erexin in usa order albendazole from usa without prescription generic viagra soft tabs online buy lopid mg effexor xr australia companies only buy ampicillin online us no prescription cephalexin mg order how to purchase celebrex buy renagel philippines dostinex online usa online no prescription uk for lamisil lotensin from china order cozaar canada ordering doxycycline uk actos price in india lamisil tablets and alcohol colchicine with prescription order strattera cod overnight purchase actos online pharmacy 1 order aciclovir tablets online 200mg cardura drugs com hypertension nizagara canadian medications without prescription purchase orlistat 60mg capsules buy cheap deltasone where to buy yasmin online uk cheap methotrexate best place to buy nolvadex in india buy accutane 3 20mg pharmacies canadian cheap altace erythromycin composition cheap levaquin 500mg zyvox 400 mg generic silagra usa citalopram online pharmacy indian alesse online cod medication advair diskus inhalation abilify and cold medicine buy 10 mg online abilify where to buy diflucan no prescription approved amitriptyline low dose recommended allegra 180 mg fexofenadine hcl buy roaccutane no prescription fast delivery how to buy arimidex in canada generic avapro in brand name amoxil ephedraxin canadian source current price viagra soft where to buy online drugs in the canada is nexium available on line in canada medicine cymbalta australia canadian styplon over the counter glucophage where to buy avodart online usa order xenical uk buy plavix online usa cheap ventolin inhalers sale buy aciphex generic drugs buy protonix without a subscription buy alphagan online thru paypals coumadin by mail where to buy ampicillin online canada where can i buy alli diet pills in england pharmacy online buy amaryllis minerva augmentin with prescription morning sickness medicine zofran where can i buy buspar without actoplus met prescription buy cefadroxil without rx diarex medication accutane overnight mastercard over the counter medicine that acts as levitra professional valtrex no prescription buy online cialis online pharmacy canada augmentin without prescriptions buy revatio online uk no prescription quickest bupropion prescription buy acticin elimite brand name coversyl plus blood pressure medication bystolic comparison atenolol buy ortho tri cyclen online mexico no prescription canadian pharmacy cleocin gel advair diskus comments ditropan free shipping where to buy periactin online canada cheap effexor xr venlafaxine buy clomid online without rx buy clonidine online orlistat without rx ordering nolvadex on line uk buy diovan without prescription prevacid uk boots buy cialis professional low cheap price canada deltasone generic bystolic blood pressure medication amoxil no prescription buy triamterene online without rx buy alli ireland pills online protonix on line is levothroid available on line in canada order altace 5mg pharmacies in buy allopurinol glucophage prescription information ceftin drug in fr pharmacy genuine bentyl online pharmacy spastic colon buy actos pioglitazone medication atarax canada sale where diclofenac buy arjuna herb propranolol without a prescription from us lexapro online pharmacies with out prescription buy prometrium cheap ditropan mg uk nolvadex cheap mexico pharmacy order viagra professional cheap very cheap proventil plendil reviews augmentin without a prescription from australia buy indocin tablets us betnovate no rx discount skelaxin order zithromax online no prescription with a visa brand viagra online in uk pharmacies buy albendazole online online crestor with no prescription best site for atarax how to purchase phenergan purchase prograf cheap benicar online no prescription buy sarafem mg buy tinidazole online from mexico buy carafate generic vermox generic canada peco exelon company cheap lasix online non prescription where to buy doxazosin online usa buy lotensin paypal cheap 84 alli 60mg low cost avalide online without what is suprax mg used to treat buy celebrex online no prescription purchase prevacid on line in mexico ordering seroquel canada how to order valtrex online levitra plus canadian source can i order cardura online grifulvin in usa purchase generic evista nitroglycerin uk boots alesse low dose pill like when does actos google generic augmentin tablets online is there a generic for allegra sinequan buy online canada buy sominex online us no prescription buy alesse ethinyl estradiol buy cymbalta canada plavix mg no prescription paroxetine mg canada finpecia birth control online mexico buy cheap indocin synthroid pills colors non prescription cialis super active purchase buspar on line in australia cheapest pharmacy buy altace viagra from usa sarafem canada drug store india buy generic actoplus met propecia on line in the uk allies of the british in the french and indian war no prescription tenormin order prometrium 200 mg cheap us buy augmentin cash prilosec vs nexium medication order lozol online buy augmentin cheap clavulanate generic aricept drugs alzheimer fifths disease ordering acticin drugs similar to prednisolone where to buy furosemide with echeck buy 1 generic acivir pills mg buspar without a perscription prescription drug lotensin generic viagra in 2012 benicar hct canadian pharmacy how to get cafergot propranolol is the generic name for prednisone from mexico buy revatio online thru paypals ampicillin order in the us suhagra pct buy motilium birth control online australia purchase motilium on line in usa pariet usa no prescription norvasc canada companies only avodart prescription prices yagara online in usa cheap ampicillin pricelist canadian exelon pharmacy online prescription abana online cheap canadian seroquel no prescription strattera user reviews adults accutane order in the us generic allegra pictures buy motrin no prescription lisinopril dosage by weight order floxin canadian discount crestor of canada order cipro online no prescription with a echeck where to buy nolvadex from india drug amantadine generic bupron discount no prescription purchase actoplus met on line in india buy sominex uk abilify prescriptions patient their altace without a script doctor prescription abilify coupons safe to buy generic diflucan from uk cheap buy acivir pills without purchase zantac online no prescription pariet order online no prescription zyprexa discount pharmacy floxin shop deltasone drugstore buy requip xl online purchase lisinopril 20 mg cheapest coversyl buy diclofenac potassium uk is there a generic drug for actos buy estrace canada order ciprodex from canada ordering aciclovir india allopurinol over the counter buying prescription amantadine india influenza cipro dosage for ear infection silagra generic name best place to buy cafergot in australia order lamisil online no prescription with a mastercard sarafem where to buy in canada over the counter bupron sr citalopram over the counter australia diflucan pills buy generic brand viagra india cabgolin overnight vantin no rx flagyl medication uses voltaren gel prescription information cialis professional uk boots cheapest acticin canada order plavix buy cheap alli uk purchase prinivil 20 mg generic version of clomid differin without a prescription from us cheap abilify 5mg pharmacy buy periactin lowest price ortho tri cyclen pct buy xenical uk no prescription purchase plendil 10 mg abilify where can i buy pharmacies in buy allopurinol cod cheap kamagra supplier reviews medicine aciclovir decadron comprimido non prescription cialis professional buy naprosyn paypal zoloft buy online us buy chloromycetin quality order viagra jelly from zenegra without a prescription from us florinef where to get alli over the counter glaxosmithkline drug how to get clozaril purchase cialis soft on line in the uk levothroid from canada voltaren uk pharmacy levothroid overnight pharmacy usa buy atorlip-20 without prescription medication class cordarone intravenous pharmacy japan allopurinol for sale buy bupropion xl cheapest buy antivert pharmacy order trazodone uk pharmacy purchasing periactin online zovirax online canadian how to get viagra sublingual bactrim no prescription overnight delivery discount generic lipitor 20 mg low aciphex pharmacy buy roxithromycin cheap viagra soft generic uk tinidazole canadian source where to buy alli diet pills aid ampicillin online erection packs 1 with no rx lotensin overnight pharmacy purchase sinequan cheap cheap doxycycline 200 mg mircette from usa minocin online pharmacies with out prescription cephalexin online order can you buy cialis in canada non prescription orlistat buy clonidine hcl order evista online no prescription with a echeck purchase extendaquin lowest price cheap tadacip mg pill rx health antabuse products ordering dostinex usa lasix with no perscription buy extendaquin visa canada proventil tablets online what is reglan mg used to treat buy luvox mg online order orlistat on line india cheap diflucan one prescription elavil drug in fr pharmacy where do i atarax in australia indian buy accutane buy estrace online buy arimidex cheaply prescription current price risperdal buy bactrim online from canada ordering benicar buy levitra professional online canada no prescription carafate canada online no prescription buy alphagan us drugstore fast delivery buy kamagra online buy cheap online uk kamagra tablets order lasix from uk without prescription metoclopramide generic reglan can i order levitra professional online order suhagra from uk without prescription singulair online uk best place to buy ampicillin in usa celebrex with no perscription buy cephalexin generic purchase flagyl in uk buy femara lowest price cheap buy allopurinol online pharmacy generic astelin spray pharmacy purchase orlistat online no prescription proventil pharmacy price phenergan usa sale order vermox line buy omnicef tablets buspar without a prescription from mexico digoxin online order suprax canada pharmacy benicar canadian pharmacy buy flonase online canada allegra d no prescription online cheapest rythmol paypal discount wellbutrin sr mg silagra discounted allies and enemies of mexico what is lipitor mg used to treat order synthroid on line usa zetia mexico is luvox available on line in canada kamagra pills online in the canada canadian alli cheap topamax mexico pharmacy buy kamagra oral jelly online buy viagra super active pills in the india cheapest robaxin paypal zocor canada online no prescription seroquel uk no prescription viagra no prescription online uk paroxetine tablets bp over the counter drugs similar to lipitor buy zovirax online safely prevacid from canadian pharmacy order bactroban ointment online generic actoplus met 17 500 cymbalta from india pharmacies anxiety atarax 10mg low dose coumadin and aspirin vermox birth control online mexico uk cheap alesse online pharmacy 1 order online aciphex mg zofran mexican pharmacy prescription brand cialis mg india where can i get shuddha guggulu from buspar over the counter australia buy aciphex cheapest prescription buy unisom generic glucotrol xl reviews colchicine generic name buy fluoxetine without prescription motilium fast mexico kamagra online next day delivery buy cheap discount motilium diflucan fluconazole 150mg alphagan without a script robaxin australia pharmacy atarax over the counter rx hydroxyzine estrace medication information order lipitor on line india cardizem buy mexico online cytotec with no prescription clomid where to buy in canada diflucan over the counter india ordering finpecia mexico allopurinol discount coupon prescription legal to buy atarax purchase aceon online strattera no script buy cleocin clindamycin desyrel without a transcript prescription safe to buy generic abilify from uk phenergan mg canada purchase synthroid lowest price order accutane 1mg online is there a shortage of cytotec neurontin uk no prescription generic actos 30mg tablet propranolol without rx arimidex buy online us where to buy prograf online canada delivery prescription abilify online bactroban cream no prescription cheap buy cymbalta tablets canada online cephalexin with no prescription buy zanaflex online no prescription usa buy amoxil 100 lantus cheap us pharmacy actoplus met generic usa purchase ranitidine dosage of augmentin for dogs where clomid buy uk prescription generic no prescription buy celebrex strattera birth control online india buy citalopram pills in the mexico alphagan pharmacies brimonidine ophthalmic flomax without prescription medication buy micardis discount delivery antivert online buy cheap lithium batteries camera i want to pay some voltaren how to order nizagara online purchase coumadin lowest price nexium mg no prescription no prescription pharmacy buy alesse order metformin from mexico without prescription allegra for purchase without a prescription abilify over the counter sale mexitil birth control online canada indian viagra jellyfish seroquel from usa combivent online from usa where to buy diamox in uk lipitor shop glucophage canadian online purchase ditropan in uk nizagara from australia lipitor where to get order florinef 0.1 mg buy abilify tablets usa buy coreg generic buy noroxin low cheap price where to buy allopurinol 300mg cheapest propecia paypal where to buy lipitor generic cheapest ephedraxin paypal purchase cholestoplex lowest price where to buy nexium for cheap how to get cialis super active brand amoxil on line no prescription vermox cephalexin over the counter walgreens proscar medication canadian pharmacy levothroid tamoxifen discount code discount alli of canada buy neurontin medication order dilantin 30 mg purchase tamoxifen citrate erythromycin over counter cream order ortho tri cyclen lo where to buy lotensin online usa buy aricept online uk pharmacy diclofenac overnight free delivery protonix online with out prescription allegra cheap online buy lipitor in canada prices zanaflex mexico pharmacy pharmacies buy allegra online cheap anafranil prices drugs voltaren pills online in the canada nexium no prescription online buy evista mg online discount lipitor coupon pfizer zofran mexican pharmacy buy vasotec online canada no prescription where to buy wellbutrin alli discount voucher code amaryl mg uk purchase flomax canada crestor commercials buy cheap prescription biaxin online buy actos 15mg pharmacy voltaren generic india erythromycin cheap australia pharmacy best place to buy uk cheap kamagra trandate usa generic ceftin india erythromycin without a prescription from canada altace medication high blood pressure buy vpxl tablets india dreamtilt online pharmacy where to buy trazodone online without rx how much does generic lamisil cost order dilantin online buy innopran online order abilify 11 mg abilify prescriptions squibb company purchase abilify on line in india can i buy antivert over the counter cardizem generic form buy lexapro without rx citalopram generic usa cialis mg canadian rx diclofenac delivery metoclopramide in usa generic combivent canada prescription allegra canada mexico pharmacy diclofenac gel where to buy bactrim with mastercard provera where to buy in canada cheap nexium india where do i nexium in canada purchase aciclovir 200mg tablets where to buy amaryl online canada can u get high from trazodone aid buy advair diskus 500 fluticasone buy actos medication canada drugs ceftin shopping where tetracycline is there a shortage of augmentin buy mobic no prescription buy aldactone pfizer generic buy augmentin cheap generic drugs buy lisinopril online us no prescription bystolic where can i buy nizagara without a prescription from australia avodart online from usa ordering amoxil canada prednisone tablets buy frumil have no prescription buy midamor online propecia stores uk buy silagra in india delivery deltasone online buy tenormin 50 mg zovirax mexico companies only buy cialis super active online drugs similar to yagara buy paxil without prescription zoloft pills online in the india buy mexitil online no prescription actoplus met online without prescription advair diskus generic drug fluticasone alli without a prescription order zoloft 100mg differin prescription drug buy tamoxifen online from india buy differin paypal buy arimidex with paypal cheap baclofen no prescription triamterene overnight brand amoxil online pharmacies with out prescription aricept drugs side effects where to buy kamagra mg metformin prescription uk midamor no prescription needed canadian online pharmacy chloromycetin us companies only cipro mg no prescription purchase generic erection packs 2 viagra jelly generic tinidazole generic canada vasodilan drug in canada pharmacy depakote order online elavil australia pharmacy prescription xenical slimming pills erection packs 5 drugs cialis buy combivent pills in the canada oder mg tablets of revatio cheap us altace online alli noprescrition needed canada online pharmacy propecia tablets uk best place to buy zithromax in usa prevacid no prescription buy depakote er online order ortho tri cyclen on line mexico lexapro over the counter australia furosemide online order lexapro drug in mexico pharmacy antabuse tablets 200mg low dosage of accutane side effects estrace generic estradiol discount arimidex cheap dostinex 1mg order sodium generic diclofenac where to buy diflucan in uk prescription cheap cipro uk prednisone purchase doxycycline dosage for malaria prophylaxis buy hydrochlorothiazide online canada no prescription generic adalat cc 60 mg suhagra from india purchase zoloft online buy generic hytrin online with prescription cheap medrol mg buy cafergot online overnight delivery buy actos online usa cheap singulair drugs buy hytrin online order estrace cream online canadian pharmacy topamax without a prescription from australia generic actos 30mg pioglitazone hydrochloride generic actos 45 mg pioglitazone hydrochloride metformin to buy in uk buy roxithromycin with differin buy mexico order etodolac 300 mg where to buy plavix cheap order coreg lowest price cheap abana 1 quality pharmacy purchase strattera cheap generic proventil ventolin buy cleocin t clindamycin topical buy prometrium online overnight delivery fluoxetine overnight pharmacy buy tetracycline online pharmacy buy alesse online no prescription overnight mexico pharmacies online that sell periactin prednisolone online without prescription buy cheap rythmol premarin generic drug tetracycline online cheap buy colchicine without a prescription atarax mg buy canadian buy decadron online is protonix over the counter where do i viagra soft in usa buy revatio drug buy suprax online canada lisinopril generic cost liposafe without a perscription finpecia online mexico avodart pills online in the usa tamoxifen on line in the uk flagyl canada drug store lipitor generic canada release date cheap provera no prescription acticin prescriptions amaryl drug in fr pharmacy yasmin from canada uk buy accutane online cheap buy tablets generic viagra kamagra online cheap isoptin without a script abilify drug in canada pharmacy price india ampicillin cheap is augmentin generic plavix overnight pharmacy motilium without a prescription from india purchase citalopram cheap buy lotrel online from usa buy cialis soft tabs online diamox prescription diamox delivery order lipitor purchase etodolac cheap order abilify 5 mg drugs buy atacand discount buy colchicine 1mg online minocycline antibiotic reviews acne elimite online without prescription diamox birth control online canada prescription drug levaquin 750 strattera online from india lanoxin online yagara no script lasix drug in uk pharmacy order colchicine from usa without prescription safe lexapro no precription generic zocor canada tamoxifen generic purchase allegra in usa cheap roaccutane 40 mg generic arimidex canada order benicar no rx canadian pharmacy clonidine reviews children indian medrol approved cheap low cost overnight clozaril online aciclovir over counter order levlen cheap generic viagra price exelon buy online canada pyridium over counter combivent online india periactin overnight prevacid otc in canada purchase norvasc generic brand cialis usa vpxl india sale can i order fluoxetine online can you buy lanoxin over the counter amaryl buy uk buy kamagra online next day delivery jelly buy cheap pharmacy cod ampicillin purchase stromectol 3mg buy minipress online from canada purchase clonidine 2 mg robaxin medication classification desyrel pharmacies buy zanaflex overnight shipping cheap requip no prescription celebrex medication generic where to viagra in chennai noroxin delivered to your home canada buy roxithromycin without prescription cheapest female cialis paypal is 5mg of lexapro effective where can i get some flomax buy avapro lowest price buy benicar mg buy brand viagra tablets mexico ordering nolvadex usa albendazole us buy generic prescription etodolac canadian medications without prescription order diclofenac 50mg online prescription mobic information warnings cheap generic cialis free shipping buy lasix visa where to metformin propranolol online uk trial erection packs 1 without prescription buy protonix 40 mg motilium buy uk levaquin over the counter uk order clozaril from australia without prescription buy generic cialis online pharmacy purchase paxil cheap vermox pills online in the uk trial erection packs 1 overseas viagra plus delivered to your home lexapro reviews 2012 where can i get some clozaril order avodart buy robaxin online from canada where to buy propecia in singapore best place to buy differin in mexico buy cheap hyzaar no prescription clonidine to purchase without a prescription buy alphagan us online prescription coumadin blood thinner medicine purchase lithium grease order omnicef 300mg buy bactrim ds no prescription trimethoprim augmentin in usa zocor buy online canada furosemide pills online in the uk lipitor over the counter canada flagyl noprescrition needed usa online pharmacy acticin drugstore pills buy advair diskus $500 over the counter erection packs 1 altace pharmacy low cost over the counter medicine pariet buy lotrisone lotion online betamethasone us pharmacies online that sell cymbalta lisinopril generic side effects order bupropion order altace without cheap aceon 2 mg ceftin buy online mexico prescription lexapro cost buy cialis soft flagyl to buy in the uk without a prescription citalopram usa pharmacy cardizem discount inhouse pharmacy finpecia cialis no prescription canadian pharmacy ventolin online mexico order florinef cheap advair diskus uk no prescription adalat online sony tv alli over the counter diet drug orlistat buy aciclovir 200mg tablets buy anafranil online no prescription plavix medication program buy cheap provera viagra soft drugs cheap clonidine cheap 1 accutane mg isotretinoin buy robaxin for horses zyprexa 10 mg vial capoten india angiotensin losartan fucidin fast uk order prednisolone 5mg proventil generic inhaler viagra soft generic canada aciphex non generic online next day delivery topamax with prescription buy cefixime online overnight delivery over the counter bupropion hydrochloride motilium on line in the india canadian alesse prescription buy order ephedraxin generic cheap allegra fast usa buy tretinoin 0,025 no prescription buy abilify 2mg online pharmacies safe to buy generic augmentin from canada usa buy vasotec without prescription celexa pills online in the canada brand cialis medication low advair diskus available order bactroban online buy bactrim mg alli online from india levitra to buy order trial erection packs 1 ranitidine online in usa medrol drug in germany pharmacy flonase no prescription fedex ups cheap albendazole 400 mg purchase tricor 145 mg buy ventolin inhaler online no prescription carafate prescription needed cheap order zestril online no prescription with a echeck where can i get some hytrin accutane on line in the canada over the counter glucotrol allopurinol discount online doxycycline tablets online buy tretinoin online uk can you buy viagra professional topamax from canada cheap flomax 0.4 mg revatio shopping buy voltaren low cheap price order flagyl no rx canadian pharmacy order antabuse 500mg cheap uk generic compazine prescription cheap cabana us sale cephalexin india sale abilify international pharmacies accredited elavil on line avodart prescription medicine ordering cialis india buy lamisil tablets canada how to buy alli diet pill best site for pariet pharmacy buy drugs lipitor purchase depakote in australia order avodart online no prescription cheap topamax online coversyl plus medication side effects perindopril discount buy alphagan drugs can you buy ciprofloxacin buy abilify no prescription online cheap prices brand cialis drug in usa pharmacy where to buy augmentin furosemide 40 mg purchase online nexium medicine for gerd moduretic uk boots pharmacies canadian cheap allegra buy trileptal online uk safe to buy generic trazodone from uk when will zyprexa generic be available cheap voltaren gel cheap lanoxin 0.25 mg purchase lisinopril online neurontin cheap australia pharmacy flonase online purchase where can i buy lithium batteries order roaccutane 40 mg online brand cialis in canada online no prescription uk for silagra periactin online with out prescription purchase vantin lowest price how long to get seroquel out of your system purchase buspar on line in canada order cytotec online finpecia mg india where can i buy lasix online without a prescription buy cialis super active mg online where to buy prednisolone clomid tablets online ordering atorlip-20 usa cheap doxycycline hyclate buy zovirax online australia no prescription purchase styplon in canada buy cheap accutane in usa generic alphagan p available how much is differin gel without insurance order accutane 4 mg online cheap accutane 4 mg purchase tinidazole on line in mexico where can i buy aciclovir is there a generic for advair diskus generic buspar uk terramycin no script buy cheap online augmentin without alesse medication oral contraceptive levonorgestrel and ethinyl estradiol effexor xr buy online india over the counter medicine motilium ampicillin drugs interactions dosage order bactroban ointment retin medication overnight delivery zyvox order online no prescription purchase cozaar 50mg online buy seroquel generic accutane drugs interactions buy combivent online bupropion dosage depression how to get off paroxetine propecia uk boots buy cheap generic anafranil buy motilium discount discount trial erection packs 2 mg zyloprim birth control online us buy retin a 0,05 diarex where can i buy order prednisolone from india without prescription synthroid online from usa where to triamterene buy cheap generic buy antabuse online thru paypals cordarone medication side effects patient ordering valtrex uk oder mg tablets of prinivil order antabuse no prescription buy hytrin visa order minipress online no presctiption buy aciclovir online india no prescription order clozaril from usa without prescription order propecia online no presctiption buy chloromycetin eye ointment canadian diclofenac for discount aciclovir buy online india pyridium shopping discount brand viagra is there a generic for proventil inhaler cheap noroxin 400mg online buy mobic low cheap price trazodone fast usa order yasmin online no presctiption without a script next day prescription altace best place to buy remeron online valtrex without prescription pills buy capoten captopril silagra tablets online where to buy lamisil online levitra plus without a prescription from canada buy naprosyn uk buy lanoxin online cialis 5mg online australia metformin online australia buy abana generic prescription propecia online prescription metoclopramide shortage viagra without rx generic advair diskus 100 51 colchicine over the counter india where to buy unisom sleepmelts aids purchase valtrex lowest price purchase seroquel us where to buy celebrex with mastercard tinidazole non perscription countries purchase keftab lowest price purchase tinidazole on line in canada buy colchicine paypal canadian pharmacy viagra professional buy lithium chloride powder where could i buy cozaar without prescription tetracycline buy online australia order tadacip online betnovate prescription buy tadacip tablets australia buy lithium ion batteries uk medicine cephalexin is for what cheap actos online pharmacy buy cialis soft online with no prescription the chepest decadron strattera usa sale purchase avodart in canada finpecia reviews order metformin canada viagra jelly overnight delivery cheap cabana adrenergic over the counter medicine lisinopril order brand viagra online no presctiption cheap aciphex 10 canadian pharmacy ordering lasix on line buy aciphex discount amantadine no prescription store generic buy abilify 2mg lowest clonidine online order cialis super active online uk viagra soft canada no prescription cephalexin canada pharmacy order cialis jelly lowest price generic augmentin dosage acticin online low cost discount 300mg buy allopurinol mg viagra by mail order buy clomid no prescription needed nizagara buy online uk lipothin online order alli on line canada lopressor canadian online overnight pharmacy hyzaar paypal where to buy tinidazole online where do i propranolol in australia ordering actoplus met online pharmacy purchase advair diskus in canada zovirax generic mexico where do i diovan in usa order allopurinol all rights canadian buy anafranil mg buy amitriptyline tablets india low cost canadian buy actos ordering trazodone canada purchase lamisil in us buy anafranil online uk torsemide from china drugs similar to chloramphenicol how to purchase lanoxin calan lowest price buy plendil online buy periactin tablets mexico order diovan online pharmacy colchicine without prescription pills diamox drugs com diuretic how to buy nitroglycerin in canada evista no prescription needed canadian online pharmacy buy lasix without a subscription order micardis from canada without prescription where can i buy alli in canada shipping available ordering aciphex medication purchase sarafem in usa safe abilify no prescription order calan cheap actos birth control online canada buy cheap premarin very cheap cardura buy zoloft online without a prescription buy strattera pills in the india cheap coversyl plus online arimidex online without prescription lexapro generic release 2012 india pharmacies online that sell ventolin generic phenergan with codeine allopurinol drugs levaquin canada overnight pharmacy buy get bentyl cialis jelly no prescription drugs similar to proscar metoclopramide stores allegra d generic name buy amitriptyline with paypal order coreg from canada lipitor drug in germany pharmacy order endep cod prescription buy motilium visa capoten pharmacy mg buy what is fluoxetine mg used to treat robaxin overnight pharmacy order abilify 1 aripiprazole pharmacy where can i buy viagra from purchase atarax in canada revatio mg india where to buy amitriptyline online uk where cane i buy clomid in south africa buy brand viagra online no prescription canada buy online no prescription order avodart crestor interactions with other drugs xenical tablets online what is xenical mg used to treat buy differin low cheap price buy retin a 0 05 generic tablets buy albendazole online where to buy ceftin online mexico prevacid without generic for allopurinol available generic nitroglycerin ointment where to buy doxazosin pill rx health abilify products calan by mail mobic on line i want to pay some suhagra order tretinoin canada online pariet with no prescription tamoxifen for purchase without a prescription buy generic buspar online no prescription the chepest elocon best place to buy roxithromycin online xenical prescription only nolvadex noprescrition needed canada online pharmacy buy finpecia tablets mexico purchase paxil cr pharmacies buy biaxin online cheap augmentin from uk pharmacies in buy alphagan canadian how to order brand viagra online over the counter medicine vermox antabuse drug in mexico pharmacy canadian pharmacy accutane drug medicine actos type pioglitazone hydrochloride where to buy paxil online without rx generic for trazodone purchase accutane on line in mexico pill rx health order elavil products indian ampicillin canadian flonase ditropan pct buy lopid online pharmacy shipped to canada buspar medication on line overnight membership order accutane cheap diarex overnight diabetes medicine actos buy unisom online sleeping aid buy ventolin nebules 5mg online synthroid medicine price atarax mg usa florinef tablets online order depakote uk pharmacy purchase augmentin 500mg albendazole to purchase without a prescription diet pills and effexor xr buy ampicillin online uk where to buy fucidin online mexico buy minocin discount buy viagra overseas order neurontin 300 mg citalopram without prescription medication where to buy plavix online usa altace without drug prescription lisinopril discount card discount ephedraxin mg oder mg tablets of nizagara non prescription betapace alli prescription weight loss coumadin low vitamin k diet buy inderal cheap online order citalopram rx buy finpecia generic diovan reviews abilify overnight delivery medicine cefadroxil used maxalt generic equivalent order clomid without prescription buy arjuna buy zebeta low cheap price ordering brand levitra usa skelaxin generic cost buy ampicillin uk he doctor purchase cordarone online buy amitriptyline online cheap price where can i buy tretinoin hydroquinone maxi peel buy lithium generic abilify by mail please where to buy yasmin mg purchase levitra 5mg online where to buy albendazole generic abana without a script canadian pharmacy tinidazole order hyzaar 50 12.5 mg allegra over the counter 2009 sanofi aventis where to buy cephalexin online uk where to buy propecia online uk withdrawal from paxil symptoms chloramphenicol pharmacies in cash order ventolin online canada pyridium online order isoniazid rx prednisolone acetate no prescription order drugstore doxazosin online valtrex medicine for herpes where do i cafergot in uk buy brand cialis mg cheap us buy albendazole buy zenegra online safely buy alphagan us drugs order medicines baclofen oral relaxant buy metoclopramide syrup robaxin without a prescription from us buy online uk kamagra oral jelly cymbalta for purchase without a prescription cardura online no prescription pariet generic canada amantadine through generic name for viagra ordering cephalexin usa buy provera online uk nolvadex for purchase without a prescription zocor no rx where to buy tetracycline online mexico lopid mg no prescription canada pharmacies online that sell luvox tenormin with no rx purchase albendazole without prior script crestor uk pharmacy discount kamagra of canada cheapest xenical buy online buy sarafem online canada where to buy amitriptyline 10mg 75mg through prescription buy abilify where to buy prednisone online uk buy atorlip 5 paypal cordarone for discount cheap albendazole atlantic drugs medicine amoxil 250 safe to buy generic xenical from canada buy robaxin have no prescription no script zithromax mg the chepest ortho tri cyclen cheap sumycin no prescription purchase albendazole purchase procardia in usa xenical medication canada paroxetine buy online canada order diarex cod order does alli work day buy robaxin online from uk over the counter premarin where to buy diclofenac gel purchase keftab online low altace side effects drugstore buy alli pills antabuse from mexico where do i elocon in uk levaquin canada companies only buy bactrim suspension order vermox in when is actos going generic prescription nitrofurantoin online with out prescription lasix drugs dogs buy advair diskus online with no prescription cheap uk free shipping buy alesse cheap generic compazine uk quick delivery purchase citalopram in mexico canadian pharmacy buy ceftin online lotrisone cheap us pharmacy dostinex no prescription fedex ups lexapro canadian online overnight pharmacy order nexium 40mg tablets cheap zoloft no prescription tadacip uk boots order allegra online cafergot pb medication voltaren tablets 50mg purchase strattera on line in uk best place to buy phenergan online celebrex canada pharmacy purchase avodart buspar mg canada actos uk drugs buy cheap pharmacies allington maidstone order aciclovir 300mg tablets prevacid where can i buy purchase actos 300 mg celebrex australia pharmacy medicine baclofen used what is levaquin medication is used for ordering xenical india buy allegra d uk buy nitrofurantoin tablets delivery adalat online without script buy exelon online singulair over counter equivalents clomid overnight delivery medicine amitriptyline 50 mg brand amoxil online meds augmentin tablets alcohol cheap paxil generic provera canada van you buy alli in canada reglan india buy vermox online from uk best place to buy tenormin without a prescription buy levitra plus discount cleocin medication class purchase amaryllis kit purchase kamagra jelly where to buy combivent online uk online mevacor overnight delivery buy sumycin uk pharmacy buy tenormin online no prescription betapace no prescription buy carafate pills in the canada order adalat 1 pharmacy overnight purchase luvox in australia buy actoplus met tablets us order actos canada generic pioglitazone suprax no script brand cialis online purchase without a script ampicillin online pharmacy is there a generic cialis in canada orlistat from australia cheap actos generic drugstore cheap calan blanes holiday secure diflucan over the counter where liposafe zoloft prescription order metformin from usa without prescription dostinex canada drug store buy cytotec online in london viagra professional online pharmacy generic nizoral canada prevacid over counter infants valtrex mg no prescription amoxil where to buy in canada erection packs 2 drugs prescription alphagan mg canada can you buy aciclovir tablets over the counter uk genital can i buy prevacid in canada buy albendazole 400mg discount topamax of canada seroquel generic australia buy furosemide tablets pharmacies in buy alphagan online canadian buy depakote online no rx canada and femara no prescription buy actos overnight delivery proventil online with out prescription female cialis online without prescription buy cheap prilosec plavix in india cytotec cheap canada pharmacy medicine augmentin 625 can i buy clomid in canada viagra soft shopping purchase topamax online no prescription where to buy furosemide without a prescription buy bupropion xl 150 safe to buy generic fucidin from uk brand cialis online in uk buy lamisil cream 1 low alesse estradiol purchase lanoxin lowest price purchase glucophage online no prescription vpxl over the counter usa hydrochlorothiazide needed buy purchase fucidin ointment flagyl online purchase canada brand cialis tablets online altace prescription assistance program accutane delivery can you buy pariet over the counter buy erection packs 2 without a subscription buspar online uk purchase haldol cheap canada pharmacies online that sell advair ordering viagra from canada overnight pharmacy tinidazole stds bacterial infections zoloft discount no prescription buy acivir pills us canadian bid voltaren no prescription allopurinol online meds buy digoxin mexico buy propranolol paypal avapro in buy generic blood pressure ordering zantac on line canadian astelin buy cheap viagra online forum where to buy baclofen acivir pills overnight delivery aciphex on line in the canada mexico pharmacies online that sell elavil hyzaar delivery canada buy chloromycetin without prescription coupons for abilify medication orlistat from uk strattera shoppers drug mart zocor online in usa toprol order online betnovate over the counter pyridium availability in canada viagra no prescription needed canadian online pharmacy buy desyrel generic over the counter clomid uk viagra super active over the counter canada buy differin tablets uk buy wellbutrin sr uk cheap canadian aciphex online cardizem buy online australia alesse drugs com over the counter medicine that acts as antabuse buy trial erection packs 1 online no prescription canada where can i buy vermox over the counter bactrim cheap uk pharmacy discount omnicef is there a shortage of levitra cheapest antivert rx buy antabuse mg online for buy alesse pharmacy diamox drugs com remeron online pharmacies with out prescription how to purchase atorlip-5 buy toprol xl 25mg buy deltasone mg how to get medrol furosemide over the counter buy diovan hct 160 25 where to buy revatio with mastercard amitriptyline without a prescription from mexico buy phenergan with paypal buy actos prescription cheap price biaxin mg uk levitra professional.com buy prograf online with out prescription where to buy colchicine tablets usp buy levlen pill accutane buy online approved generic paxil medication reviews cheap colchicine buy bactroban cream australia paroxetine overnight shipping pharmacy how to get seroquel xr canada buy zantac without prescription buy cheap generic advair diskus fluticasone what are nexium tablets used for tinidazole online without rx aciphex medication information is there a shortage of propranolol cheapest place to buy suhagra prescription order acticin cod ceftin overnight delivery where can i buy alesse buy accutane uk prescription over the counter drugs similar to orlistat what is the generic name for levaquin buy colchicine online cialis soft fast india what is risperdal medication buy nexium tablets australia nexium oral capsule delayed release best place to buy accutane online lexapro 5mg effective seroquel on line in the mexico how to order ranitidine low advair diskus without corticosteroids cialis professional online uk buy nitroglycerin spray canada order nexium 40 mg capsule order diovan on line canada buy tamoxifen without a subscription medicine amitriptyline 5 mg effexor xr mg india estrace medication women generic cialis online reviews order chloromycetin cheap pills no prescription prednisone safe to buy generic prednisone from uk purchase orlistat 60mg order buy actos online propecia over the counter canada the chepest aciclovir buy cheap arjuna buy elavil discount buy fucidin no prescription propecia lowest price evista tablets price where to buy flagyl for dogs online pharmacy benicar order erection packs 2 from lowest voltaren gel canada pharmacy combivent over the counter usa discount prednisolone otc cafergot pills online in the uk mail order nizagara online aciclovir australia companies only diclofenac tablets spc buy acivir pills cheap tetracycline where to get current price antabuse amitriptyline drugs side effect order effexor no rx canadian pharmacy cheap oral jelly india kamagra buy female viagra pills in india buy flomaxtra online buy avalide 150 12.5 amoxil without rx order prednisolone 25mg cozaar online pharmacy amaryl drugs com dosage buy vermox paypal suprax tablets dosage order actos diabetes pioglitazone buy requip discount order viagra jellyfish from pills buy cheap cipro elavil reviews fibromyalgia online pharmacy gasex lasix pills online buy minocycline for acne buy no prescription zyvox online order depakote from australia without prescription zithromax trusted online drug stores in canada ortho tri cyclen mg no prescription atacand fast canada canadian differin gel buy reglan online no prescription advair diskus generic generic prescription usa buy cialis jelly without prescription buy metformin for weight loss buy amaryl pills in the india actos in canada lisinopril australia pharmacy elimite dosage head lice pariet pharmacy mail order buy prometrium online without prescription overnight buy lotrisone order rosuvastatin in drugs crestor purchase roxithromycin online buy viagra super active with brand viagra with no rx where to buy serpina mg where to buy mobicam where can i buy viagra online with no prescription ditropan online india valtrex generic price where could i buy mexitil without prescription best site for rosuvastatin buy cheap generic aldactone discount order motilium no rx canadian pharmacy buy levitra professional mg buy dostinex online from mexico buy orlistat where can i buy clomid as pct canada benicar hct diovan medication side effects buy metformin generic cordarone medication interactions cordarone with no rx buy protonix lowest price maxalt combination nexium prescription information buy depo provera online no prescription estrace without a prescription purchase fluoxetine in australia where to buy revatio online uk safe abana no precription canadian pharmacy zyvox elavil in canada prescription without buy carafate allegra on line purchase phenergan online