How do you track changes to your product?
Reliable and Agile

How do you track changes to your product?

Working with a global teams and partners which are not co-located has become a trend these days. This poses a challenge to the product owners / managers to keep control on the changes being made to the product. The key here is to track every change happening to your code, so that a rollback can be opted if required. Sounds ideal right? Is it really possible?

Well many will argue that its no longer a big challenge, and easily possible. I agree to this, provided your partners who works on your code are aware of the tools and practices to support it. I have seen many companies with whom I have worked at different capacities, that there is a lack of basic processes. There is no meaningful connection between their ISO or CMM certifications to the actual processes they follow. Sometimes these things run completely independent of each other, whereas they are intended to reflect each other.

@iConnect our focus was always building a lean development methodology. Our people are still put first to processes, but these processes are their top priority. We picked up only the ones which gave us a significant value . We use processes that give a completely transparent view of whats going on to our customers. And believe me its hard to do, as there is no where to hide.

So how do we do it?

  • We use code repository like git | subversion for each of the project. Thats pretty standard.
  • We use TRAC as our User story & Defect management system. It generates a unique number for each User Story and defect.
  • This instance of TRAC is connected to our code repository.
  • Whenever a developer commits changes to the repo they put a #id in their comment. This is a User story or defect number for which they are trying to commit these changes
  • TRAC is intelligent and connected to our code repo. It can then let us click on the comment #id link and shows us a change set details
  • This way every change committed links back to a defect or User story. So it is easy to understand these changes in a context.

This gives our customers great control over their product and confidence in our team.

Mobility Solutions with Hybrid Mobile Apps – Are you Game?

@iConnect we started working with Mobile Apps about 3 years ago. It was not an early start and we had a few choices to make. We needed to choose the technology stack as a primer.

We had a choice of going Native or adopting Phonegap/Apache cordova for hybrid platform. (there are more platforms, but we stick to these).We built iConnect and its team to help our customers develop products quickly and in a cost efficient manner.

Challenges for a Startup :

  • An important investment to make any startup idea succeed these days is technology and the platform | solution.
  • A lot of resources are also required by a startup for sales and distribution.
  • A quick feedback from market | customers is desirable in shaping up the roadmap of the product | service.

With all these in mind keeping a separate team for every mobile platform and then managing all of them to deliver a working solution is a big challenge. Often overwhelming and leading to extending budgets and timelines. With Apache Cordova platform becoming more stable and more plugins for device interaction getting available, it was a natural choice for us. We could utilise our existing web development skills and deliver quality quickly for our customers.

We could pass on a lot of benefit to our customers with cost as well as time.Our customers could get a feedback from market on a real working poduct rather than just a POC. They could also focus their energy on the core business and its development rather than the technology solution.

There are a few myths around when it comes to UI/UX of the hybrid apps and speed of the apps. A say they are a myth because, it is very subjective and i can find a number of native apps which have similar problems. We have had a lot of success with this technology and are continuing to use it. I recommend it to anyone who is in a dilemma. We will be happy to review your situation and offer any advice based on our experiance.

 

thanks for reading.

Jaideep Deshmukh

Technical Head – @iconnect

SFDC Mobile App development challenges

Recently we have started exploring Sales Force Platform and mobility solutions that we can build for it. The best part is sales force offers a ready to use cloud environment out of box so that developers can start using it and experimenting with it. Thanks to sales force.

@iConnect we have developed a lot of expertise  in building cross platform mobile apps using phonegap / apache cordova platform. We use various UI frameworks with Angular JS. We use Ionic 1 & 2, Mobile angular UI etc and have been successfully building production quality apps which works excellent on android and ios and windows platform as well.

As we started exploring SFDC platform we decided to build a simple app which maintains a customer list. It includes offline functionality with sync, so that even if the usr is out of coverage area or has a poor connectivity, can still work with app. He can add / edit customer data stored for offline use and later sync it with the server.

SFDC offers a cordova plugin which includes smart store, smart sync and authentication functions. We were very excited to see it and thought that our job of creating such an app would become very easy. But to our astonishment, we came across countless hurdles to get this plugin working. We tried version 5.0.0 also 4.3.1 and a lot of permutation and combinations with code. But alas we could not get it working for android.

There is plenty of documentation on web for all the problems we searched. Most of it i think is out dated and there is no easy way to find out. Some of the old tips did work to move us a bit forward and most of the tricks did not. We were so disappointed to find out that such a great platform has so many problems with its android plugin. We tried to seek some help from google+ channel but it did not help.

We then decided to try the ios version of the plugin, and were delighted that it worked out of box for version 4.3.1. But latest version 5.0.0 was still not working for us. We then tried the features of the plugin and after a lot of effort could implement auth, smart store and sync from server to mobile, but from mobile to server could not be achieved. Again we had a lot of frustration as we tried a number of things but all in vain. At least we have an ios working app with only 1 missing feature with version 4.3.1 using forceios script of the plugin.

We could not have given up at that. So we decided to build a cordova app without using SFDC plugin, just consuming SFDC REST APIs. We have had a lot of experience building offline first mobile apps and sync etc which we put to use here. And within a few days we had a working version of the app with custom code. Although we had a lot of issues with the SFDC cordova plugin working with SFDC REST apis was very easy and we did not face any hurdle.

We are trying to build more expertise on SFDC mobile platform and hope to do some challenging work with it.

thanks for reading.

Communication Plugin for GRAILS

We @iconnect use Grails framework extensively and are constantly improving the way we work with grails.Grails supports component based architecture in the form of Plugins. This Post is about a Grails Plugin we have built internally called communication plugin.

Grails already has different plugins for communication purposes such as email, sms, push notifications, etc. We have build an abstraction on top of these in the form of communication plugin. It supports grails >= 3.1 and above. This plugin provides a common interface for creating notifications with a type. types can be SMS,EMAIL,PUSH etc. For each type we have supplied an implementation. The project does not need to worry about the implementation , it just creates a notification via given service and supply the correct type.

 

New Types and their implementation can be added as required. For SMS we have used SMS Gupshups apis in the implementation. Email uses any SMTP gateway and its properties can be supplied through by the project. We have Push notifications support as well and 2 implementations for it are GCM & Firebase both google variants.

Another goal of the plugin is to make sending such notifications asynchronously and avoid any wait time for the clients of the plugin. A job runs to execute all the newly saved notifications and can keep track of all sent/erred ones. Bulk notifications can also be sent using this job – upto 200 push notifications can be sent at a time for firebase & GCM. Methods are also available to view notification history between specific dates in the Service provided in plugin.