Sunday, September 2, 2018

JTD-DesignerSeries-2-DeliveryOutline



Delivery with Platform Skills
Along developing learning patterns from developer modules, we also need to build on the playgrounds. Some of the starter apps like Suggestion Box, Conference Management, Battle Station can help understand the agility of the platform.

On-Boarding Developer Resources
Typically, a developer is on boarded and will have to go through the product overview, as-is architecture & process understanding, and deep-dive into the requirements / user stories. Usually enterprise application developers spend quite a bit of their time in understanding the existing data model and design object model on salesforce platform to enable automation of business functions & processes.


Data Model Design
As developers participates in team discussions, they use platform tools like Schema Builder, Object Manager to work with custom objects & relationships.
a) Recruiting App defines the data model by creating six custom objects [Position, Candidate, Job Application, Review, Job Posting, Employment Website].
b) FriendsWithBoat App defines the data model by creating three custom objects [Boat, BoatType, BoatReview] and using standard objects like contact, user.

With Salesforce design being metadata aware, lot of freebies comes with the platform like Page Layouts, mobile and there are point & click tools like App Builder, Tabs which really eases the app configurations.


Comprehend Delivery
Product teams go through the ideation phase / or business scenarios sessions and the feedback from those discussions is transformed into the features by product owners. Architects, as platform owners leads design discussions with the team of developers to perform technical analysis on the business scenarios.

In this process, business scenario is mapped across architecture / system layers like UI, Services, Data and tasks are created by Leads / Scrum Masters with the focus on definition of Done.

At times, different solutions are evaluated, proof-of-concepts are done to develop an implementation plan, and deployment & releases schedules are published to attain the desired outcome.

Platform tools like APIs, Change Sets, Scratch Orgs, Lightning Components helps developers build & deploy artifacts based on delivery enablement methodologies like DevOps and Agile.

In an enterprise environment, you will find that Salesforce application, processes & connects with other enterprise systems & resources to deliver a streamline user experience. It is quite important to formalize standardization by documenting release processes, identifying common tools for Version Management, Continuous Integration, establishing peer review & testing guidelines.

a) Use Git as a source control repository, formalize a branching strategy for team development, configure builds & automated tests using tools like Jenkins / TravisCI and snapshot releases with Maven & Artifactory / Nexus.
b) Work with Sandboxes & Scratch Orgs to develop & test feature & user stories before pushing it to the testing environments, and create a feedback loop to manage quality control.
c) Leverage new toolset like Salesforce DX along with ChangeSet, Ant Migration Utilities to manage artifacts efficiently with CLI.

Links & References
a) https://trailhead.salesforce.com/en/modules/alm_deployment

No comments:

Post a Comment