Big Objects in Salesforce

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.

Continue reading

Posted in apex develeopment, force.com app development, Salesforce, sfdc.

Salesforce Implementation Using Agile Scrum Process

 

 

Agile SalesforceWith 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.

Posted in Agile, Salesforce cloud Implementation, salesforce community implementation, salesforce consultant. Tagged with , , , , .

DESIGNING AN ARCHITECTURE FOR A SOFTWARE SYSTEM

1 INTRODUCTION

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.

 

2 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.

2.1 ASSUMPTIONS

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.

 

3 REQUIREMENTS

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 –

    1. FUNCTIONAL REQUIREMENTS
    2. NON-FUNCTIONAL REQUIREMENTS
    3. 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.

 

4 PATTERNS-STYLES

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.

 

5 VIEW

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.

SABlogMirketa1

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.

SABlogMirketa2

 

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.

SABlogMirketa3

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.

SABlogMirketa4

 

5.5 SCENARIOS

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.

 

6 EVALUATION

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.

 

7 REFERENCES

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.

Posted in think build transform. Tagged with , , .

Salesforce & IoT

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.

IoTPicture

Continue reading

Posted in Apex Development, Salesforce, salesforce consultant, salesforce for healthcare, salesforce for small business, Salesforce.com, Visualforce. Tagged with , .

Apex Code for Creating Recurring Event in Salesforce Lightning

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.

.Capture rec

 

 

 

 

 

 

Continue reading

Posted in Apex Controller, Apex Development, force.com app development, salesforce customization, salesforce development. Tagged with , , , .

Salesforce Development Best Practices

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.

Salesforce Development Best Practices

Salesforce Development Best Practices

Continue reading

Posted in apex develeopment, Apex Development, Salesforce, salesforce administrator, salesforce certified developer, Salesforce Challenges, salesforce consultant, salesforce customization, salesforce development, Salesforce.com, sfdc. Tagged with , , , , .

Sales and Marketing Automation for Addiction Treatment, Part 1

Mirketa AppExchange
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.

Download our eBook “How to Leverage Salesforce for your Addiction Treatment Centers”

Continue reading

Posted in Agile, Learn Salesforce, Salesforce, salesforce administrator, Salesforce Challenges, salesforce consultant, salesforce customization, salesforce development, salesforce for healthcare, salesforce for medical clinics, salesforce for NonProfit, salesforce for small business, salesforce integration, Salesforce Support Packages, salesforce Tips & Tricks, Salesforce.com, Salesforce1 Mobile app development. Tagged with , , , , , , , , , , , , , , .