Have you ever been in a situation where you need to store gigantic amount of data in your Salesforce org? Are you tired of using third-party storage systems and writing web service calls to get the massive amount of data? Having to crunch those large numbers, though a reflection of your own success, can be troublesome and performance degrading. Salesforce has come to the rescue again by introducing big objects-which are objects with massive storage capabilities on the Salesforce platform itself. They provide consistent performance over a data set of the order of billions and are accessible through a standard set of APIs to your org or to an external system.
With having being part of 5 Salesforce Sales and Service cloud implementation projects I have realized that customizing the platform to the client’s need is not challenging but the build up to the production release and approach that the integrator adopts to, makes all the difference to have delighted project sponsors and end users. The implementation that I am considering for the scope of this article can range anywhere between 6 to 16 weeks depending on the complexity of Salesforce lightning components, number of external interfaces involved for integration with Salesforce and the number of clouds being rolled out (most common are Sales Cloud, Service Cloud or Community Cloud).
We can have varied school of thoughts on how to plan for such small duration projects; should it be a complete roll out of all features or an Agile Development approach where even a 6-week project is divided into 3 sprints of 2 weeks each. With my experience, I can safely say that breaking into multiple sprints will allow everyone to gain a lot more value out of the project as the lightning components and interface integration will evolve with regular feedback from the client. My team scored an average CSAT rating of 9 for the projects we have delivered in the last 1 year. Now let’s take a closer look at the key processes and scrum ceremonies one needs to follow that make the process truly Agile. Please note that one consultant will play the role of PO, Scrum Master and Project Manager because that helps to have full visibility and control on the timelines for the cloud implementation.
- Requirement Discovery Sessions – This is the foundation stone and often referred to as sprint 0 for the project and generally ranges anywhere from 3 to 5 days of dedicated meetings and workshop at the client side sitting, discussing and brain storming the needs of the end users. The consultant running the workshop as a pre-requisite should have basic knowledge of the CRM domain, good understanding of the Salesforce Sales cloud, Service cloud or Community cloud and basic idea about the client’s industry will be an added advantage. The sessions are facilitated with flip charts, white boards and process maps. The consultant should constantly ask the question ‘Why’ to the customer team to understand the pain point before advising and concluding any solution to the customer. This will be a good place to define if any REST/SOAP based Salesforce Integration will be needed or not.
- Define Stories in Jira or tool of your choice- Immediately after the workshops are concluded the consultant should start to document the discussed features with peripheral details into any tool like Jira and define the narrative and acceptance criteria on these stories. Even if the name of the feature is only added, more details can be added later.
- Point Sizing and Team Strength – The PO/Project Manager who facilitated the discovery session needs to competent enough on Salesforce platform to provide the points in a Fibonacci series (1, 2, 3, 5, 8, 13, 21) to each of the story put it into Jira. Based on the total points and agreed upon schedule with client the PO decides on the number of Engineers needed for the whole work. This is typically done by doing a mock/draft release planning with a technical lead and PO making a guess on how many points an engineer can deliver. This part of the project gets better only with practice and experience that you gain in at least two rollouts.
- Backlog Grooming – This is an ongoing ceremony for the Agile team. We typically spend 60-90 minutes/week for a SCRUM team of 5 to 6 members including developer and quality assurance. The PM/BA puts on the hat of a PO and interacts with the agile team and grooms into each requirement in detail and updates the story with acceptance criteria. The team agrees upon the scope of the stories and call them as ready for development. The grooming sessions are also used to decide on the technical solution to achieve the requirement the decision of configuration versus customization is decided now. It will be beneficial to have an Salesforce architect involved in the session so that the engineers don’t overkill the system with excess of apex coding like triggers, batch classes and rely on configurations as much as possible.
- Sprint Planning – This again is an ongoing ceremony that happens at a cadence. Engineers pick up stories as per their understanding and add to the sprint. The assignment of stories should be done with everyone’s consensus considering the engineer’s experience and story complexity.
- Sprint Demo and Retrospective – This phase utilizes the maximum benefit out of Agile Development for Salesforce clouds. The demo is organized by the PO to the stakeholders like the client’s functional users and project sponsor and get their feedback early and if needed changes can be implemented in the next sprint. This helps the client to have focus throughout the project and hedges the integrator’s risk towards any possible changes coming after all work is done.
I would like to summarize by saying that any process can be used to deliver the same set of things but keep in mind that you need to Adopt a process, Customize the process and finally accept and embrace the process so that you believe in it to ensure your client and team stand with you even if there are some challenges thrown your way in the implementation. Finally, don’t forget to have some fun in this journey.
Mirketa has been helping client’s ranging from small to Fortune 500 companies’ rollout Salesforce clouds with high customer satisfaction and user adoption rates. Get in touch with our Agile Salesforce champions to understand how we can help your sales business process achieve more with the powerful Salesforce platform.
The primary objective of this document is to provide a standard format for the designing of an architecture for any software.
The first step in the Software development lifecycle is always requirement gathering as without that it is not possible to start building a software. Requirement analysis will give an idea about the various aspects that is to be built into the system and these aspects are the building steps to the architecture of the system.
“The Attribute Driven Design (ADD) method is an approach to defining a software architecture by basing the design process on the quality attributes the software has to fulfill. It is a recursive decomposition process where, at each stage in the decomposition, attribute primitives are chosen to satisfy a set of quality scenarios and then functionality is allocated to instantiate the component and connector types provided by the primitives.” (Wojcik, R., Bachmann, F., Bass, L., Clements, P., Merson, P., Nord, R., & Wood, B. (2006))
The ADD approach is straightforward and efficient way of defining an architecture and it facilitates consideration of every aspect of the architecture separately while decomposition. This makes it easier for modifications to occur while the architecture is being designed, allowing the formation of a more complete design.
As every system has their own set of requirements, they also have their own set of assumptions which refers to the various preconditions basing on which the entire SDLC is driven forward. It is absolutely necessary that all the preconditions are validated and checked with all the stakeholders in order to avoid rework and waste of resources.
As already mentioned, requirement gathering is the only step that can kick start the design and development of a system. Types of requirement that are needed to be taken care of are –
- FUNCTIONAL REQUIREMENTS
- NON-FUNCTIONAL REQUIREMENTS
- PRIORITY REQUIREMENTS
It is good practice to prioritise all the requirements right at the beginning.
3.2 DESIGN CONSTRAINTS
Under this section all the possible concerns related to the system can be discussed. For eg – security concerns, performance overheads, memory constraints etc.
3.3 ARCHITECTURAL DRIVERS
This is the section which discusses the major requirements of the system or in other words the requirements which has the most impact on the system. These requirements are known as architectural drivers and before deciding on a particular architectural design, it is absolutely crucial that these requirements are analysed to see if a particular design is better suited to allow convenient implementation.
The requirement section should also validate and justify the use of a particular design over others to allow flexibility of the system as this facilitates adoption of a new pattern or convenient combining of multiple patterns if required, without too much hassle.
Patterns and Styles are architectural design decisions concerning a specific problem and a development context respectively. Most systems consist of multiple styles and patterns instead of just one as this is more advantageous. Every aspect of the system is to be considered separately as well as together to make the perfect design decision about the patterns and styles to be used.
Representation of the various modules, components and other elements of the system to be designed along with their relationships is taken care of in “Views”. All the stakeholders, developers and everyone involved in designing and implementing the system has a different way of visualising the system and view models are used to create relevant representations for everyone involved. The “4+1” view model is most widely used and following are its various sections.
5.1 LOGICAL VIEW
The logical view is to support the functional requirements of the system. It is also known as the design view and is closer to the implementation of the software. Thus, this view is mainly for the understanding of the developers. UML class diagram can be used to represent this view. Following is an example of a logical view and it shows a part of a certain system which handles student admissions and other such student and university administration interactions.
5.2 DEVELOPMENT VIEW
In this view we take into consideration the various modules and subsystems present in the system to be designed. A basic UML package diagram of the system can represent this view. Following is an example of the development view of the system mentioned in the logical view section.
5.3 PROCESS VIEW
The process view is to support the non-functional requirements like availability and performance. This view takes into consideration various interactions between the processes and the program flow. Activity diagrams can be constructed to represent this view. Following is such an example.
5.4 PHYSICAL VIEW
Physical view is to provide a view of the integration of the software along with the hardware. This mapping can be represented using UML deployment diagram.
The numerous use cases that a system will have is represented in this view. The UML use case diagram can represent this view. Following is one such example and it is a view of the system from the earlier examples.
Evaluation is another crucial step for architecture design as this can clarify and shortcomings a design might have and also clarifies all the requirements in relation to the design chosen. For the evaluation of architecture “Architecture Tradeoff Analysis Method” can be used. This is a very widely used evaluation technique and it takes into consideration every step of the architecture development process, therefore, increasing chances of detecting any defects in an organised manner. The method demands evaluation of the architecture from the point of views of an entire team involved with the construction of the system.
Bass, L., Clements, P., & Kazman, R. (2003). Software architecture in practice. Addison-Wesley Professional.
Kruchten, P. B. (1995). Architectural Blueprints-The 4+ 1 view model of architecture. Software, IEEE,12(6), 42-50.
Taylor, R.N., Medvidovic, N. & Dashofy, E.M. (2010). Software Architecture Foundations, Theory, and Practice. John Wiley & Sons.
Wojcik, R., Bachmann, F., Bass, L., Clements, P., Merson, P., Nord, R., & Wood, B. (2006). Attribute-Driven Design (ADD), Version 2.0 (No. CMU/SEI-2006-TR-023). CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING INST.
“Anything that can be connected, will be connected.” This quote by Jason Morgan of Forbes.com, is going to be, what future holds, with the increasing growth of the concept of IoT. Simply put, Internet of things is a system of electronic devices or components, interconnected with each other through Internet and capable of exchanging data and information. The devices include everything ranging from cellphones, coffee makers, headphones, smart wearables to components of machines like engine of an airplane etc. The IoT allows the devices to be remotely sensed and controlled using the existing network structure; which enables the opportunity to directly integrate them with other devices or networks. So basically, IoT is a giant network of connected things.
Why use IoT & How big is it?
A survey conducted by HP estimated that the growth of IoT will be exponential and by 2025, over one trillion devices will be connected through IoT. Another report by Cisco predicts that IoT will generate $14.4 trillion in value across all industries in the next decade. These surveys suggest towards a fully automated future.
In this article I am sharing my approach and code required for fetching days for recurring events in Salesforce Lightning. The use cases could be creating a recurring pickup, order placement etc. You would need basic knowledge of Apex and Salesforce Lightning.
This screen will give you an idea about the recurring UI.
In this blog I will share the Salesforce Development best practices that I have learned over the years. I have tried to give a few code snippets to provide examples. Feel free to use the code as-is.
Have you ever sat wondering if you had followed up with everyone you were supposed to talk to today? Or managed a team and wondered if they we’re following through? These questions plague most sales driven businesses daily, but to Addiction Treatment Centers this could mean that someone’s life is on the line.
Gain an edge over the competition by taking advantage of the advancement in technology and changing the way you communicate with your employees & clients. Continue reading
I am introducing here Quote to Cash which is well known as QTC. QTC is a process where Sales Organizations send details to their customers on their product offerings as per their need, provide them with the pricing for the set of products that they have requested, put all those in an official document called ‘Quote’ and then it continues through Invoice, payment and negotiation which comes under ‘Cash’.
It is extremely notable that the amount of customer data is expanding with each passing moment. One can’t simply physically investigate information and know each pattern or test numerous theories. Taking care of and dealing with this colossal data is no less than a challenge which stresses on the significance of analytics further. Acknowledging this need to be of immense importance, Salesforce recently uncovered its most progressive CRM platform called Einstein Analytics. The analytics has opened ways to a few stunning elements for CRM clients, empowering them to utilize advance analytics powered by Artificial Intelligence.
The proportion of data that a business is developing at a rapid pace, and recognizing each pattern and relationship, and to test each speculation, utilizing traditional manual situated techniques is currently beside unimaginable but Einstein analytics resolves client’s dilemma by stimulatingsales, improving client service and optimizing their marketing campaigns. Overall, the Insights offered by Einstein allow executives to make decision 38 % faster which data scientists took days or even weeks to achieve.
When the user enters a query, the tool uses Artificial Intelligence (AI) to throw logically important outcomes, pinpointing what is occurring, the purpose for such an event, and expectation on what is probably going to occur next. Einstein utilizes machine learning to identify factual patterns and designs, and convey the same to users in a significantly more far reaching, reliable and contrasted way than what data scientists can ever give. The engine consequently examines billions of data combinations, and prescribes the best game-plan, assessing the in all probability situation, and the upsides and downsides of each possible action. Users may penetrate down to the most state of the art information, reveal bits of knowledge, team up and take instant action from any device.
Salesforce Einstein Analytics goes above and beyond, and is a direction framework, which utilizes past information and mediates it with current circumstances and future conceivable outcomes, to anticipate patterns.
Consider the case of a sales executive out to meet his quarterly numbers. When he uses Salesforce Einstein Analytics, he gets comprehensive and in-depth insights on a customer, competitor and pipeline data, and recommendations – Let us suppose Mark is his customer and he had set up a meeting with Mark to close the sales 3 days earlier. He assumes Mark to be loyal but Mark is talking to the competitors very often. Taking him for a coffee may be a good idea or he needs to bring in three or so managers to close the deal. Here is what you should be doing and so on.
Using Einstein Dynamics, each Sales executive gets a dynamic dashboard, complete with all the required functionalities, for example, activity tracking, account whitespace, benchmarking, and more, offering them powerful insights required to perform successfully and close more deals. Having identified a new opportunity or uncovered a trend, the user may create a task, change a close date or share insights on any device, all seamlessly from a single pane, without bothering with spreadsheets and other tools.
Einstein Discovery is a tool launched concurrently with Einstein Analytics, and superbly supplements the latter. It just takes couple of minutes for Einstein Discovery to get outcome from insights from millions of data combinations. It makes precise predictions by instantly analyzing massive amounts of data and mining out crucial patterns. “Further, Einstein Discovery generates explanations, answers, and recommendations that are easy to understand and implement by the users. This is done with slide presentations that are generated automatically, containing visualizations and key points.” (http://www.algoworks.com/blog/salesforce-einstein-analytics/, 2017)
To learn new exciting analytics, salesforce offers a package of 12 modules – “Analytics trailblazers” fun way to learn salesforce. With these smart analytics, Independent software vendors (ISVs) can now create apps using analytics app designer, visual data preparation, and outside data connectors to build their own custom analytics apps on the Salesforce platform, ensuring they have all the relevant metrics they require, and omitting any superfluous details for their business. AppExchange has around 20 analytics apps from ISVs
So, this is how you can become a data scientist in a fun and smart way!!!!!