Archive for the ‘Custom Software Development’ Category

Using TFS Templates for Tracking Projects

Monday, March 21st, 2011

The Merit Solutions Development Team uses the Microsoft Visual Studio Scrum 1.0 template for TFS and it has proven to be a great improvement in leading projects based on the scrum methodology. Its usage makes tracking project progress easier and also gives our team a great opportunity to have all project related documentation in one place, easily reachable and editable by all team members.

The ease of using it and opportunities it provides has been received with very positive feedback by our team members. In fact, it has started to be used for non-scrum projects also, which in turn developed the need for improving existing templates and creating more suitable ones.

There are two ways for customizing a TFS Template. The first one is based on changing the XML code directly and the second one allows us to simplify that process by using Team Foundation Server Power Tools.

The whole process of customization is automated and consists of downloading the template, editing it by directly modifying the interface and uploading a new template version on the TFS server. The most important thing is to predict all things needed for a project and include them in a template, as the template is chosen at the project creation and cannot be changed or modified later on.

Customizing a template is very simple. The user does not have to work with xml code anymore. With this tool, the template interface can be modified directly by adding or deleting text properties or tabs to already existing backlog items, adding new item types, new drop-down fields and relations, linking new and already existing product backlog items or directly changing the layout by moving and positioning controls in proper groups or columns.  This tool also gives an opportunity to adopt already existing terminology for states and processes to the terminology familiar to the team which uses it.

This is a link for downloading Team Foundation Server Power Tools.

To start learning the sample rules for editing the template, here is a very useful blog article.

Merit Solutions’ Development Team and Scrum Methodology

Tuesday, December 7th, 2010

Recently, the Merit Solutions’ Development Team has been using the Microsoft Visual Studio Scrum 1.0 template for TFS and it has proven to be a great improvement in leading a project based on the scrum methodology.

Artifacts from Microsoft Visual Studio Scrum 1.0 include work items, reports, and team queries, so the team can use them to track information, analyze progress, and make decisions.

This way all team members can easily track and update the project status. They can also be updated about all changes made and about progress of the other team members. Through the big range of work items, the team is allowed to track, monitor, and report the development progress of a product and its features.

All the artifacts can be accessed either from the team project node in Team Explorer or on the team project portal. 

The other benefit is the big range of reports which offers a capability to monitor team progress and velocity during the whole project. This is a great way to track how quickly the team has completed work or how much work remains in a product backlog or in a sprint backlog. It can also predict how much backlog effort your team can exert in future sprints if the team composition and sprint duration stay constant.

Using the Microsoft Visual Studio Scrum 1.0 template make tracking project progress easier and also gives our team a great opportunity to improve leading projects in future and predict the possible problems.

More info about Scrum 1.0 template for TFS can be found on MSDN.

Sum LookupSet Return Values

Monday, November 8th, 2010

SQL Reporting Services 2008 R2 provide some new cool functions, including: Lookup, LookupSet and MultiLookup.

Those functions are the most useful for getting data from two different data sources (like one from CRM fetch, and the other from GP data base). A couple of times, I have needed to collect data from CRM based on some values from Dynamics GP (like collecting all open opportunities from a CRM customer which is also available in GP). This is the right place to use LookupSet function. However, since it only returns a list of objects, it is hard to get sum of, for example, the estimated values of open opportunities for a specific user.

To calculate the lookup values you will need to add some custom code:

Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
suma = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
Next
Return suma
End Function

So, if you want to use those sums in a report table you just need to call the SumLookup function

Code.SumLookup(LookupSet(CUSTNMBR,customername,estimatedValue,”CRM”)).

Exploring the Cloud with CloudXplorer

Tuesday, October 5th, 2010

In a day to day routine I am used to working with myAzureStorage. It allows me to view my tables, queues and blobs. It also allows me to add messages to queues and monitor my application in real-time. On the other hand, myAzureStorage does not support blob upload among other things.

Going through some Windows Azure learning materials and videos a couple of days ago I came across one very handy, user friendly Windows Azure cloud exploration tool. If you did Azure development before, you know there is quite a few explorer tools available on the market, some free and some not. ClumsyLeaf Software CloudXplorer is YACE (yet another cloud explorer :) , but what is appealing about it is that it is very easy to use, it is fast and it is free.

You can download the CloudXplorer here. In order to start using it, all you have to do is create an account using storage service name and secret key from the portal.

Once created, you can add containers and folders to your blob storage.

With containers and folders in-place you can drag and drop files from your local desktop to your CloudXplorer application and those files will be uploaded to your storage account.

Sure Step Adoption – A Marathon for Achieving Core Competence

Wednesday, September 1st, 2010

Sure Step is a widely applied and proven methodology for Microsoft Dynamics implementations. Its flexibility offers possibilities to adopt parts of the methodology that partners find useful and applicable. Yet, in order to achieve full benefits of Sure Step, it is essential to apply a subset of options that must be used in a given implementation.

Many of the partners that use Sure Step still face issues in their implementation projects and the principal reason for that is failure to fully adopt the procedures and make Sure Step their Core Competence. What is Core Competence? A Core Competence is:

  • Something that you do very well
  • Something that delivers unique customer benefits
  • It is hard for competitors to imitate
  • IT IS CONSISTENTLY USED IN YOUR COMPANY

Achieving Core Competence requires continuous effort throughout the Company with substantial Change Management.

Microsoft has offered priceless assistance to companies that want to achieve the core competence in Sure Step. The methodology of adoption is a systematic approach that leads the team to a successful end of the adoption. The adoption process may be facilitated by specially trained facilitators who are trained to make sure the process is well led (never by the facilitator her/himself).

The adoption process begins with the Diagnostic phase that has to confirm the business need first. Then it is necessary to assign a “Champion” who will lead the adoption of Sure Step. The Champion should be selected amongst senior managers and must possess the credibility to lead the initiative. The next step is to form the “V-Team” that will be responsible for assessing, configuring and deploying Sure Step.

The Champion and the V-Team must attend a Sure Step training after which they must be assessed for their proficiency. Finally, the CEO announces the importance of the adoption process and officially assigns the Champion and the V-Team.

The process continues with the Analysis phase during which the V-Team takes the Adoption Self-Assessment provided by Microsoft. The Assessment will indicate the current level of adoption of Sure Step and what needs to be done during the adoption process. It will also indicate what skills must be developed by V-Team members to fulfill their responsibilities.

During the Analysis phase it is also essential to identify the risks during the adoption, to review required investments, to define the expected rewards and return from the adoption along with the ROI plan that will help the CEO to decide whether to continue with the process or not.

The Design phase begins with the redesign of current processes for sales, project implementation and performance management. The Champion and the V-Team explore the Proof of Concept for mapped processes. They also prepare a handbook “What is Sure Step and How to Use It”. The HR manager has to define the learning plans and job descriptions for all the roles defined in the new processes.

The IT department defines the requirements and then has to configure systems and migrate sales data and documents.

Sales readiness is achieved through activities of the Sales and Marketing teams. The Marketing team updates the customer messaging to reflect Sure Step as their new engagement process. The Sales team, after the Sure Step training, runs a pilot of the new Sure Step processes using real customer situations.

Marking the end of the Design phase, the CEO should communicate internally to summarize new processes and stress the importance of Sure Step.

During the Development phase, the custom development work should be completed – configuring existing systems. All the database development for customer data storage must comply with the privacy plans (that also must be created if they don’t exist). All the remaining data and documents must be migrated finishing the work begun with the sales data and documents.

The V-Team now can perform a pilot using real projects uploaded into the system. The Sales team should recommend which projects should be used for the pilot.

The Deployment phase should be started with the CEO’s communication signaling readiness to go live with Sure Step. Now the training is deployed across the company and everybody is ready to apply Sure Step. All the roles who have taken the training should prove their knowledge by using the Sure Step Proficiency Assessment. The HR manager should continuously monitor the ongoing effectiveness of training.

At the very end of the process, the adoption maturity can be measured by re-taking the adoption assessment taken at the beginning of the process and comparing the results. The Company can also measure the customer satisfaction after the adoption.

And don’t forget to communicate through the Company about the progress made to date, the results of everyone’s efforts and the future goals for Sure Step Partner Adoption.

New Microsoft Dynamics Development Landing Pages

Thursday, August 26th, 2010

In an effort to keep our web content relevant, up-to-date, and informative, we have recently gone through and updated our Microsoft Dynamics Development Services landing pages.

Below is a brief snapshot of the new content, along with the links to individual pages:

Microsoft Dynamics AX Custom Application Development: With a team of highly-qualified Microsoft Dynamics AX developers, Merit Solutions provides custom application development to both ISVs and Microsoft Dynamics AX clients, extending your team in regards to requirements analysis, technical design and development, and quality assurance testing of all software products. In the end, we measure success by our ability to deliver custom applications that will help organizations optimize performance and reduce costs.

Read more about our Microsoft Dynamics AX Development services.

Microsoft Dynamics GP Migrations: Users migrating to Microsoft Dynamics GP often want to improve the structure of existing processes and line-of-business applications. Typically these businesses have grown and become more complex in their business process needs. Using the migration tools available from Microsoft, Merit Solutions can help organizations plan and implement an efficient migration from systems like QuickBooks, Peachtree, and legacy systems. Our methodology preserves data, enhances security, improves reporting, and minimizes business disruption by designing and following an efficient migration plan.

Read more about our Microsoft Dynamics GP Development services.

Microsoft Dynamics CRM Integrations: For companies interested in integrating front- and back-end business operations, Merit Solutions provides seamless Microsoft Dynamics CRM integration that brings together sales, marketing, accounting, supply chain, and more. We have extensive experience with Microsoft Dynamics CRM integrations to Microsoft Dynamics, SAP, Oracle, and other 3rd party ERP Systems. Merit Solutions also provides cost-effective integrations with external sites, hosted either in-house or at the hosting partner.

Read more about our Microsoft Dynamics CRM Development services.

Microsoft SharePoint Development: Merit Solutions provides Microsoft SharePoint development and deployment services to companies in need of extended portal functionality. Our integration, training, and consulting services help companies through new intranets, workflows, collaboration, document management, and custom portal solutions. We also have extensive experience developing SharePoint-based features and solutions, including 21 CFR Part 11 SharePoint Document Management.

Read more about our Microsoft SharePoint Development services.

We hope you enjoy the new content. Feel free to make suggestions by commenting on this blog article!

Debugging Non-Reproducible Issue with IntelliTrace

Thursday, August 26th, 2010

“Not being able to reproduce it, not a bug” is a developer’s main philosophy. And generally it can be accepted as a fact. This is one challenge which continues to appear in different forms and testers need to spend a considerable amount of time analyzing environments, build versions, preconditions, and code without any guarantee that any verification process will provide precise information to what caused an issue.

So, are non reproducible bugs one of the most frustrating and toughest challenges for a QA?

One of the most interesting improvements in the Microsoft Visual Studio 2010 which should help both developers and testers is the option to collect IntelliTrace files during the test process. New Visual Studio 2010 allows testers to save rich test logs when running test cases and attach them with the bug. Developers can debug the code reproducing the steps recorded in those files, they can go back and forward in the call stack and analyze parameters and result values. The main advantage is that the developer’s environment can be completely different from the one where the file has been recorded. This is accomplished by deploying the IntelliTrace diagnostic data adapter (DDA) to the target system as part of the Visual Studio Test Agent or by deploying the IntelliTrace.exe command-line utility.

IntelliTrace has two main modes it can run under. In the default mode, IntelliTrace will just be collecting debugging data at the predefined IntelliTrace event points. While in the “methods and calls” mode, IntelliTrace will be collecting debugging data (including method parameters and return values) for all function inputs and outputs for all included modules. The “methods and calls” mode provides a lot of additional information about your application’s recorded execution path, but at a substantially higher cost in terms of time overhead and log file size.

However, there are several drawbacks related to this feature:

  • The IntelliTrace DDA and/or IntelliTrace.exe cannot be used on a machine or a server in the production environment
  • IntelliTrace files created using either methods can be opened and debugged only by using Visual Studio Ultimate.

Scrum Methodology and Merit Solutions

Friday, July 16th, 2010

Scrum Methodology is a very powerful asset to the Agile project management paradigm. Merit Solutions has recognized it as a very valuable skill that can bring even more professionalism and competitiveness among our team. Our developers, consultants, as well as the members of the management team have intensively invested in its embracement and effective enforcement.

To be able to thoroughly understand and grasp the full potential behind it, both basic concept courses as well as the advanced ones were required. We have attended a number of trainings that dealt with the Scrum Methodology. They helped us better understand and utilize the purpose of the methodology and how to put its theoretical layout to practice.

And indeed, it did. We at Merit Solutions are now proud to say that the depth of involvement and the commitment of our team are on are ever growing – and much of it we owe to the power of Scrum Methodology.

View some photos from the most recent Merit Solutions Scrum Training.

Recommending Tests to Run That Are Affected by Code Changes

Wednesday, July 7th, 2010

Microsoft continues to provide new features which should help in defect prevention during the software development process. With the new Visual Studio 2010, you can check which builds have bug fixes, new features, new requirements or user stories added. Built-in test reports now cover test case progress, test plans and test results.

But the really cool new feature in the VSTS 2010 is that you can also view recommendations about which tests might have to be rerun, based on the effect of code changes that have been made to your application if you are using Test Impact Analysis when you run your tests. This is an additional feature for the code review implemented for the first time in Visual Studio 2008.

The whole process requires collecting test impact data per test. Test Impact Data is actual information about the methods called during the test execution. What is really important is that Visual Studio will collect Test Impact Data for both automated and manual tests, during the test execution using Test Runner. Therefore, the user doesn’t have to spend time exploring the application code. The links between methods in the application and the test cases are stored to determine which test cases should be recommended to run again based on the changes to the methods.  This actually means that this feature will help in development from unit tests to manual tests and in both cases, the code analysis tool in the Visual Studio 2010 will shift user’s focus to the testing of the updated code.

If you have implemented Continuous Integration rather than running a build with a huge portion of tests you probably have a problem as it takes way too long to run frequently. If that’s the case, many administrators choose to exclude all – or a large number of tests – from the Continuous Integration, breaking a concept of the end-to-end builds process. The only remaining impact is Build Verification. By applying this mechanism in the TFS, the team should get a repeatable and reliable method to create a regularly available public build.

On the other hand, the developer is free to choose between a subset of tests (those that need to be run based on the code changes made) or running the entire suite of tests. This feature will point to both testers and developers what needs to be tested and which tests need to be run, especially since the test team often struggles with the details of what has been changed. Test Impact Analysis has a powerful mechanism to identify all changed points in order to help testers identify which tests need to be run in order to validate the new build.

Although, an investment in this feature increases maintenance time and requires a decent level of discipline within the development team, cost of the Test Impact Analysis implemented like this is significantly lower than benefits that team will gain.

Visual Studio 2010 CodedUITest Log

Wednesday, June 30th, 2010

One of the main problems for any test engineer working with a test automation tool is how to resolve the situation when the tool doesn’t work properly. A distinction between an average and good test tool is the way of handling these situations. The minimum that one “good tool” must provide is a log with information of what happened in that test run in order to reduce engineering time necessary to fix that problem or find a workaround. However, this information is in the same time very sensitive, because it might contain an answer to a question if the tool has support for certain platforms.

CodedUITest in Visual Studio 2010 is well equipped with the Debug Trace, containing detailed information about time spent, action performed, control found and even expected time to complete a specific action. This log also contains technology used by Visual Studio to find control, so an average user can try to find out what the cause of the issue is. In a lot of situations, a set of such information will give a user an adequate reason for test failure.

W, 10220, 13, 2010/06/30, 08:28:33.358, 281524579375, QTAgent32.exe, PERF WARNING: FindAllDescendents: took 838 ms. Expected it to take maximum 500 ms.

W, 10220, 13, 2010/06/30, 08:28:35.085, 281529640405, QTAgent32.exe, Playback – {1} [SUCCESS] MouseButtonClick – “[UIA]ControlType=’Button’ && AutomationId=’btnCreateProject’”

W, 10220, 13, 2010/06/30, 08:28:35.663, 281531333898, QTAgent32.exe, Playback – {2} [SUCCESS] MouseButtonClick – “[UIA]ControlType=’Button’ && AutomationId=’NextButton’”

However, the user can enable more detail tracing in two ways

- The first one is by enabling trace for all Testing Tools in VS is to modify the following registry file:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\EnterpriseTools\QualityTools\Diagnostics]
“EnableTracing”=dword:00000001
“TraceLevel”=dword:00000003

EnableTracing key defines whether tracing is ON or OFF.

o 1 – ON
o 0 – OFF

- The other way is to set EqtTraceLevel or UITestTraceLevel switch in the appropriate exe.config file. The EqtTraceLevel will enable tracing for all Testing Tools modules of the executable. UITestTraceLevel will enable the tracing for only the UI Test modules of the executables.
For UI Test, the trace file is generated in %temp%\UITestLogs\*\LastRun\UITestLog.html where * could be empty for VS or could be exe name like CodedUITestBuilder for other cases. The LastRun here indicates that this is THE file for last run – the earlier ones would be stored as PreviousRunXX. The tool automatically cleans up the old trace file if it exceeds ‘n’ (today it is 25) previous runs.

This log is very useful for an experienced user as it contains full Microsoft Visual Studio log with API calls, the result of API calls and other algorithms used.

Obviously, it doesn’t mean that the user will be able to resolve all situations, but this log will increase productivity of automated software testers by giving them deep information about how the tool works, it will give them an idea how to resolve an issue or how to find workarounds. And if the log shows that the selected UI Technology is not supported, users can extend platform as this framework has been created with idea to overcome situations where this engine will not meet the needs and these means to test applications built on a different or new UI technology.