Microsoft dynamics - which one to go for; ERP OR CRM - dynamics-crm

I have requirement of preparing an in-house Project Management and accounting app using Microsoft Dynamics. My requirements are similar to what explained in the below page:
http://community.dynamics.com/product/crm/f/117/p/54453/98182.aspx
Can someone suggest that should we use ERP or CRM? And which one to use i.e. SL, GP, NAV, AX? And why?

CRM is probably the first choice to eliminate. Project management is usually an internally facing application, while CRM is by definition, externally facing. Secondly, if you need to maintain budgets, Dynamics CRM doesn't have anything built in for this (a general ledger for example).
As for the others, each will have its own costs and the extent of support you can get for any of them will vary depending on where your business is located. In some areas you may be able to get good SL support but no NAV or AX for example.
As for one you may not have considered, have you considered Project Server / SharePoint? If you need really heavy weight PM capability, Project may be your best bet. SharePoint can do some PM stuff. There's at least one book around by Dux Raymond Sy, published by O'Reilly. He's also done at least one webcast. Both are based on SharePoint 2007.
HTH

Of the Dynamics ERP products, SL is the one most focused on the project management (i.e. Project Accounting) space. CRM doesn't have a lot of project management capabilities built in, but is probably the most customisable and extendable of the dynamics range.
If you're after something that needs to cover the financial aspect of PM (e.g. billing, tracking costs etc) then you should look at the ERP options. If you're not worried about the financial side, then building a custom solution within CRM might be an option.

Came across this thread in a search I was doing. Hope Sukhminder Singh is still listening...
Sounds like you shouldn't abandon Dynamics CRM, a tool which your organization has tried and tested for nurturing customer satisfaction and turning it into ongoing revenue. On the other hand, you need to maintain a smooth accounting and billing relationship with the same customers - and for that, you'll need an ERP solution. As ccellar suggested NAV can do that, or even SharePoint, as suggested by Mike. I'll hazard a guess your organization already has SharePoint, too.
Now, what about the integration? You know, devising an effective, scalable, and future-proof way for getting MS folk to "talk" is quite a challenge! Also, you need a solution that places stress on human, as well as system workflows. The human factor can be decisive in time-critical projects.
Sukhminder, are you going to be coding solutions on either end? That's one way to go, though often, that option comes with high overheads: dragged-out coding projects, functionality that can be difficult to maintain, and even harder to modify, and serious concerns when one of the systems is upgraded or replaced.
From another angle--are you considering BPM? I'd urge you to.
BPM (Business Process Management) software suites are becoming an increasingly practical and mainstream option as an organization's central integration hub. BPM lets you rapidly map out and control mission critical processes involving multiple systems (as in your scenario). BPM lets you visualize the players, processes and apps over time, and when it comes to adjusting, remapping, and remodeling your workflows, you may have to do some coding, but a large part of the work can be done by experienced, non-programmer BPM users.
There are a bunch of vendors out there, each with its own pros and cons. For the job of connecting MS CRM and MS ERP/Sharepoint, here are 3 candidates I have come across.
Kofax's TotalAgility BMP integrates between Dynamics CRM and SharePoint, by leveraging SharePoint capabilities. The solution obviates elaborate coding by supporting workflows, rules, and user screens. It "orchestrates" processes between itself and other MS and products, most notably SharePoint, CRM, Lync, Visio, Outlook. They enable "in-flight" process change and dynamic BPM, so that down-time on your production is minimal. See the data sheet.
Sequence Business Process Management from PNMsoft. Provides integration with systems from many vendors. The forte is on human-centric processes, with a strong bent for Microsoft products. Sequence lets you integrate with existing systems using wizard-based connectors. When your organization changes, Sequence lets you "hot-swap" your business processes fast, without down time in your production.
MuleSoft's CRM-ERP integration. Their strong point is application integration, for connecting (legacy) systems from a range of vendors, including SAP, Oracle, Salesforce.com, and MS. The Mule ESB is a lightweight integration platform. It comes with a library of connectors to quickly create connectivity with all systems and services, whether on-premise or in the cloud. When adding or modifying an endpoint, you can easily update your integrations to reflect the change.
HTH some....

I'd start off at the Microsoft Dynamics site and explore what each product has on offer. They even have an ERP selector tool for you to try out with just a few questions. Why not contact Microsoft yourself and they could provide a list of potential partners that work in your area - it will be an important decision and they would better guide you through the selection process.

After a few projects which also had an accounting part, I would not recommend to use Dynamics CRM (at least for the accounting part). That's not what it's meant for and you have to spend much effort to get to a level of Dynamics NAV for example.
On the other side: why not combine both systems and use their strenghts.

Related

Can I use .net with Microsoft Dynamics systems?

I have googled, but can´t find a good answer. I´m a .net developer and looking into starting with Microsoft Dynamics (CRM and AX). My question is if I can use .net on this platforms or do I have to learn x++?
Yes and no. Dynamics CRM consists of a bunch of different customizational entries and some of them are .NET based (plugins, custom workflows, WCFs, external webs) while some are not (default workflows, JavaScript, XML customizations, FetchXML).
In my experience, at least based on the reality where I'm stationed, there's an abundance of people who can configure CRM but there's an embarrassing scarcity of skilled developer who can code .NET (and JS) to program the thing.
MS does what it can to make it possible to configure everything without coding but in the end, some things can't be resolved other than by good old hacking. Plugins is the golden goose, I'd say. If you learn how to write and install them, you're set. It's a bit of a threshold, that's true. But then again - if it'd be easy, everybody would be able to steal your job.
Yes .NET is the platform of choice for server-side customization of Microsoft Dynamics CRM. Start here: https://msdn.microsoft.com/en-us/library/gg327971.aspx. There's a lot of reading but you could be writing your first plugin in a few days.
I'm intentionally vague here because you should really take the time to read the materials out there to learn the right way. It will help you out a lot more then me giving you a paragraph summary.

MS CRM 2011 deployment Automation tool

I am looking to automate the deployment process for CRM between different Environments eg.Development Env, Test Env and UAT.
I am wondering if there is existing tools(s) available on market to automate the deployment for me?
If NO, Is it possible to automate the CRM deployment between different environments and what is the best practics for doing that?
Thanks
Where I work we are currently working with the exact same issue. I spend quite some time initially looking for of-the-shelves products that could help us, but I have not found anything promising. Therefore we have undertaken the task ourselves.
Some guys from Microsoft made a short "whitepaper" on the subject which I found quite helpful. It can be found here at Deploying Microsoft Dynamics CRM 2011 and CRM Online Solutions from Development through Test and Production Environments.
I will not claim that we are using "best" practices, but we have chosen to try and script everything in PowerShell or through .net based CmdLets in our own PS-module. CRM server comes with a PowerShell snap-in that sports some basic functionality for creating/removing organizations, but you are more or less on your own when it comes to actually "deploying" CRM-customization, configuration data, users etc.
It would be interesting to know, which approach you choose (if any)? And if you have any specific question, please don't hesitate to ask!
How about this?
The xRM CI Framework is a set of tools that allows you to quickly and easily implement Continuous Integration for your Dynamics CRM solutions.
PowerShell and the XRMCI framework will serve you well for solution deployments, the downside being that for Standing or configuration data that cant be added to a solution (or for solution items that are currently buggy in CRM 2015 e.g. Case Creation Rules, SLA Items etc.). In this case, my client and I have created powershell C# CmdLets that use the SDK and API to create standing data such as Users, Teams, Memberships, Queue's, Case Creation Rules (although its unsupported, the API does allow it), and to configure mailboxes etc.
So in combination, the XRMCI framework, C#, and PowerShell can be used to automate a deployment of one environment to the next. The key is to take it slow, manually execute the scripts to begin with and build trust in the process, tweak and add more elements. Once that trust is achieved, move onto integrating it with TFS in as a CI/CD process.
As for best practice, my own research suggests that this is still a "he/she who dares" area with no real "best practice", in time the players such as Chef, Puppet, Octopus and Microsoft (with DSC) will contribute, but for now....

Which MS technologies would be suited for a data intensive application?

I'm a junior VB.net developer with little application design knowledge. I've been reading a lot of material online regarding different design patterns, frameworks, and methodologies. It's become a bit confusing for me.
Right now I'm trying to decide on what language would be best suited to convert an existing VB6 application (with SQL server backend.) I need to update the UI and add more user functionality and reporting capabilities. Initially I was thinking of using WPF and attempting the MVVM model for this big project. Reports would be generated from SSRS.
A peer suggested using ASP.net and I don't have enough experience to determine what would be better. The senior programmers here are stuck on using VB6 and don't have any input on what to use. They are encouraging me to use the latest technologies.
This application would be for ~20 users in a central location. Ideally I would stick to a Microsoft .net language. Current interface is similar to a datagrid table where the user would click in to see the detail of each record. They would need to have multiple records open at any given time.
I look forward to all the advice I can get.
EDIT 2010/04/22 2:47 PM EST
What is your audience? Internal clients within an intranet
How complex are the interactions you expect to implement? not very... displaying data from SQL server to UI. Allow user updates to said data. Typically just one user modifying a record.
Do you require near real-time data updates? no
How often do you expect to update the application after the first release? twice/year
Do you expect a well-defined set of client platforms? Yes, windows xp environment, potentially upgrading to Win7. Currently in IE.6 moving to IE7 or 8 within a couple of months.
Do users need access from anywhere? No, just from their PC.
What would be wrong about building a simple ASP.Net application in VB.Net using Gridviews for allowing the data access and manipulation? Seems like a simple ADO.Net trial application if you aren't familiar with it in the beginning you will be by the end. CRUD applications are pretty common so it shouldn't be too hard to build it and then refine it as more requirements become apparent.
Sounds like you need to use a web-based solution--this eliminates alot of your potential distribution woes with multiple users. You could use silverlight, but if you are locked into SSRS, this might not be the way to go.

Microsoft Team System value within only a Dev Team

Microsoft Team System appears to be a great platform for process-oriented systems implementation, however if you strip out access for the BAs, PM and Business Users and just purely use it within a Dev team does it have any more value than just using Visual Studio Professional, SourceSafe, a Defect Tracking Tool and a continuous integration server like CruiseControl or TeamCity?
Yes. Every replacement technology you've mentioned is something that is supported by the Team System package (either in this release or the next). All of these components are designed to integrate and work with each other in TFS. This is a high priority of the TFS team for all components. The result is a set of features which in most cases seamlessly integrate with each other.
I'm not familiar with several of the other projects you mentioned but it's unlikely that they integrate as well with each other as the corresponding TFS components. This is not to say they have no integration or perform poorly as products. Just that they are not designed ground up to work with each other. Hence the interaction will not be as crisp as the TFS components.
Is this valuable enough to continue using TFS? Don't know because it would be highly dependent on how much you value this integration.
One of the big selling points for TFS for my team is the coherency it provides to our overall product life cycle. We do allow BAs, PMs and Business Users to have certain levels of access to TFS, but even if we did not, the product would still be of great value to use. The ability to manage our workflows within TFS and enforce consistency across the development team is great.
Some of the features that TFS provides that we use: security, reporting, work flow management, integrated builds, email alerts, branching / merging.
Could you pull it off with a hodge-podge of other tools? Probably, but it wouldn't be as easy to manage and maintain and you probably wouldn't be able to pull out the kind of data necessary for reporting and tracking the way you can with TFS.
On a sidenote, if your counting on Visual SourceSafe as your repository I would highly suggest looking elsewhere. From personal and business experience, I can attest that it cannot be counted on as a stable/robust repository.
My thoughts.
Sure it has value. There are a ton of client features only in the Team SKUs (don't let the name fool you -- they are primarily just the new "super premium" kitchen-sink versions, that also have the nice bonus of including a server CAL for TFS.) Exact specs available here: http://www.microsoft.com/visualstudio/en-us/products/teamsystem/default.mspx
Looking specifically at the collaboration features, again there's clear value in a system whose components were design to "just work" with each other. The setup is streamlined (though it has a ways to go); the UIs are consistent and accessible from each other; the backend feeds a unified reporting/analysis service. If you have a large team, the overall perf/scalability also far exceeds what the typical OSS suite is capable of at the moment.
The question is whether it's worth the $$ to you. Why use Visual Studio Professional instead of SharpDevelop? Why SourceSafe instead of Git? Why not Notepad and specially labeled folders?
All of the commercial products are commercial for a reason (ok, maybe not SourceSafe!). If you want something with a broad feature set, tight integration, well-defined support & testing lifecycle, good fit & finish, etc then it's usually worthwhile to spend the $$ and let your development staff get on with their work. If you don't mind doing setup & troubleshooting yourself, switching between several applications as part of the development workflow, losing the ability to query & report on team statistics as a whole, etc then by all means go open source -- many OSS dev tools are very solid nowadays.

Microsoft Dynamics CRM as a software development platform?

My organisation is in the final stages of acquiring CRM 4.0 for use as a general purpose software development platform. The company who is selling it to us has convinced upper management that CRM will solve all our productivity problems and make software development as easy as point and click. (They don't read Brooks.)
Having resigned to the fact that I can't stop CRM from being foisted upon us developers, I have been doing research on how to manage the complexities of large scale CRM development.
I have so far identified the following complexities that need to be addressed:
CRM seems wholly incompatible with basic configuration management practices.
Keeping the black box CRM database in bidirectional synchronisation with external LOB systems is both very hard and critical to project success.
What other complexities must I take into account when building a large scale CRM application?
What limitations does CRM have as a development platform?
Edit: This topic provided additional insight.
I've worked with MS CRM 3.0 and now 4.0 here's my take:
Whenever possible focus on standard best practices. Don't get overly confused by what CRM is doing or wants you to do.
Don't be afraid to break what's "supported" by MS. With some caveats on 2 major factors - will your company let you think outside the box to solve problems and do customizations/integrations that are not officially supported? - and are you comfortable enough with .Net, SQL, javascript etc to weave through their code and implement what you need?
I have sometimes banged me head 100 times trying to do something in a "supported" fashion when one small tweak to a js file here or a small db modification there gave me what I needed.
If constant data integration with other LOB apps is critical you should consider a 3rd party tool like Scribe (http://www.scribesoft.com/). It's not cheap but can basically get you 90% of the way when it comes to integrating with your other LOB apps.
As a general rule, MS CRM is great at contact management - doing things like tracking appointments, doing mail merges, etc. Could you use it as your core HR system - probably. Finance system - maybe a bit more difficult. The further you go from it's core competency of performing contact management the more custom work you'll have to do. The more custom work you have to do the more you should consider if MS CRM is the right solution to that problem.
I know you're likely well underway into your deployment of Dynamics CRM, but just a few quick tips:
I'd avoid making unsupported changes purely because it becomes too hard to track the changes eventually. Since Dynamics CRM allows developers to make C# Plugins and access to web services, it's usually unnecessary to make unsupported changes for anything non-trivial. Plus you run the roulette of having to hide changes from MS if you have to call their support. I know many people will include external javascript files (jquery, etc) and other somewhat benign changes, but try to mentally stop yourself when an unsupported edit involves anything non-visual.
Look into the phrase Microsoft Dynamics Xrm, there are several books on the subject that are excellent, http://www.thecrmbook.com/ is particularly good because it comes with some nice custom code to use with your CRM.
Source Control your customizations xml's and don't let people touch the database, also, Google Halan CRM tool, and use it for scripting out CRM customizations and javascript files. Easier than writing custom powershell scripts to do the same job.
Transaction Support
If your application require transaction support from the underlying platform, Dynamics CRM is not the correct choice. The reason is because currently Dynamics CRM SDK web service doesn't support transaction.
The reference thread is here : Does MSCRM web-service support database transactions?
Since you would like to utilize Dynamics CRM as a platform, that means all the business logic should utilize Dynamics CRM SDK Web Services as data access layer. But imagine without the transaction support and you're invoking a series of web service calls as a unit of work, and one of the web service calls fails. That means you potentially will encounter data integrity issue.
Configuration
Usually i create a custom entity called Configuration, which will store all the necessary related configuration for the current CRM application. After it has been created, you can use Dynamics CRM SDK Web Service to read all the necessary configurations from the Configuration custom entity

Resources