O Salesforce s Pavlem Popem

V sérii „O Salesforce s …“ jsem si dal za cíl během celého roku vyzpovídat alespoň 52 lidí, kteří se v České a Slovenské republice pohybují okolo Salesforce. Jedno, zda jde o lidi od partnerů, zákazníka nebo dokonce někdo přímo ze Salesforce. Máte tip na někoho, koho bych měl určitě vyzpovídat? Sem s ním! děkuji

Další v sérii mých rozhovorů s lidmi ze Salesforce komunity je Pavel Pop ze společnosti blue-infinity.

Jak ses k Salesforce dostal a jaká je tvoje role?

Dostal jsem se k němu přibližně tři roky zpět v AVG, kde jsem pracoval jako Development Manager pro Salesforce. Momentálně pracuji pro blue-infinity jako Senior Developer a Technical Architect pro Salesforce projekty. Jinak obecně jsem před SFDC nějaký ten rok pracoval jako backend .NET developer.

Jak se vzděláváš, které zdroje doporučíš?

Co jsem měl možnost bavit se s lidmi, případně číst tady na blogu, pro všechny je jasnou volbou Trailhead. Musím ale říct, že byť je to udělané opravdu pěkně, není to nic pro mě. Já osobně preferuji učení se na reálných problémech a tak si v rámci sebevzdělávání radši večer “střihnu přesčas” a snažím se vyřešit problém některého z našich zákazníků. Přece jen, realita bývá od tutoriálů a hello world aplikací většinou nahony vzdálená 🙂

Jako zdroj doporučím http://sfdcmonkey.com. Je tam spousta pěkných věcí, které lze použít jako výchozí bod pro řešení problému.

Jak se díváš na certifikační zkoušky, máš pocit, že je důležité je absolvovat nebo žádný test praxi nenahradí?

Obecně ano, certifikace smysl mají, praxe pro mě ale má mnohem větší váhu. Co je pro mě nejdůležitější je, řekněme “postoj k řešení problému”. Rád pracuji s lidmi, kteří hledají způsoby jak něco udělat, né důvody proč to nejde,

Ale zpět k certifikacím, jaký má podle tebe smysl certifikace jejíž dump lze najít na netu …

Oddělil bys tvrdě administrátory od vývojářů nebo je fajn, že se to prolíná? A prolíná?

Prolíná a myslím že je to tak správně. Posouvá to obě tyto role na úplně jiný level a v konzultačním světě je to nutnost.

Admin, který dokáže číst kód, napsat jednoduchý trigger? Já jsem přesvědčen, že to je ideální.  Developer, který chápe jak platforma funguje a jaké jsou její možnosti? Za mě nutnost.

Používáš aplikace třetích stran? Která je ta nejoblíbenější?

Jednoznačně Salesforce inspector (chrome plugin). Nechápu, jak jsem bez něj dříve mohl žít.

Jedna funkce, kterou máš nejraději?

To jak je defaultně propracovaný sharing model, a to že se dá poměrně jednoduše obohatit v případě, že ti z jakéhokoli důvodu nevyhovuje. Měl jsem tu čest psát sharing model v .NET “ručně” a musím říct že to není úplně triviální záležitost :-).

Kdyby sis mohl přát jednu věc, kterou by Salesforce mohl od zítra nově dělat, co by to bylo?

Jednu? Pak asi obohatit Apex o rozumný způsob práce s kolekcemi.

Co bylo/je na zavádění Salesforce nejtěžší?

Sladit procesy zákazníka s fungováním Salesforce a najít hranici mezi standardní funkcionalitou a customizací platformy.

Lightning – co tě přitahuje/odrazuje? Doporučil bys zákazníkům přechod?

Z pohledu zákazníka je neoddiskutovatelným benefitem vizuální stránka, classic už toho v dnešní době zkrátka moc nabídnout nemůže. U nově budovaných instancí už bych o klasiku ani neuvažoval.

Problém je, že Lightning obecně nepokrývá funkce které jsou v classicu a to považuji za neomluvitelné. Migrace se tak může v mnoha případech takřka nerealizovatelnou, protože to, že některé funkce nejsou v Lightningu k dispozici se prostě zákazníkům těžko vysvětlují.

Jak drží zákazníci krok s rychlým rozvojem funkcionality Salesforce, zavádí nové funkce tak jak přicházejí nebo je nové funkcionality nezajímají?

Zákazník nechce moc experimentovat a každý půlrok platit za nové hračky – což plně chápu. Chce hlavně funkční a stabilní prostředí a to dostane tak, že se do instance nesahá pokud to není nutné. Nová funkcionalita tak většinou přichází ruku v ruce s jeho potřebou o zapracování nových funkčních požadavků.

Ta Salesforce nebo ten Salesforce?

Ten. Dokud jsem poprvé neviděl tenhle blog, ani mě nenapadlo že by to mohlo být jinak.

Napiš komentář, díky!

How to refresh record details in Lightning when you change them in APEX

The Lightning is awesome and beauty, the problem I faced was simple – I created a Lightning Component, which called @Future method, which update some data in records. How can I update the screen after that, as it is all asynchronous?

The solution

After all, the solution is easy.

And the „all“ is the community, specificaly Andrew Fawcett in this case, who created this awesome component.

The second ingredient in this solution are the „still new“ platform events, which when I saw for the first time, I saved as something great for integration. But they are way bigger, they can replace triggers – as you can create and consume them in Flow and Process Builder – and they can pass messages around.

At the end the solution is really simple:

  • install Andrew’s component, tweak it if you want it to listen to just specific messages in events and fire the force:refreshView event,
  • drag it onto your Lightning page,
  • update your APEX code, so it creates the event.

Done and solved. It should be reliable as Platform Events are reliable, but who knows, from what I have seen it is a bit tricky.

You use Flow?

Maybe you use Flow to do your stuff. Luckily there is the „unofficial“ component for Flow, which does the same. In the Spring ’18 release it needs you to be part of the Local Flow Actions, from Summer ’18 it should be generally available. And it requires you to use the Screen flow 🙁 so no process builder starting the flow.

Napiš komentář, díky!

O Salesforce s Pavlem Řezníčkem

V sérii „O Salesforce s …“ jsem si dal za cíl během celého roku vyzpovídat alespoň 52 lidí, kteří se v České a Slovenské republice pohybují okolo Salesforce. Jedno, zda jde o lidi od partnerů, zákazníka nebo dokonce někdo přímo ze Salesforce. Máte tip na někoho, koho bych měl určitě vyzpovídat? Sem s ním! děkuji

Další v sérii mých rozhovorů s lidmi ze Salesforce komunity je Pavel Řezníček ze společnosti blue-infinity.

Jak ses k Salesforce dostal a jaká je tvoje role?

K Salesforce jsem se dostal v předchozím zaměstnání (AVG), kde ho již měli nasazený a já jako projekťák jsem pak vedl projekty dalšího rozvoje salesforce – např. nasazení Community Cloudu. Moje role je Projektový Manažer a tak nejsem s platformou v denním styku, ale řídím tým(y), které se o nasazení, konfiguraci a adopci u zákazníka přímo starají.

Jak se vzděláváš, které zdroje doporučíš?

Primárně trailheady – a ty mě fakt baví. Pak taky hodně diskuse s kolegy a výměna zkušeností a občas Success community.

Jak se díváš na certifikační zkoušky, máš pocit, že je důležité je absolvovat nebo žádný test praxi nenahradí?

Začnu od konce.. Praxi ničím nenahradíš – a fakt nemám rád, když má někdo 3 certifikace a přitom v dané oblasti se pohybuje třeba teprve 1 rok… Na druhou stranu zastávám názor, že certifikační zkoušky jsou důležité, protože prostě ukazují, že se o danou oblast zajímáš, vyznáš se v ní a dáváš tím zákazníkovi najevo, že dané téma umíš zvládnout jako profík.

Oddělil bys tvrdě administrátory od vývojářů nebo je fajn, že se to prolíná? A prolíná?

Těžká otázka, nejsem ani admin ani vývojář. Přicházím do styku s oběma stranami řekl bych, že se prolínají a je to dobře. Ale určitě by se neměly ty role úplně překrývat.

Kdyby sis mohl přát jednu věc, kterou by Salesforce mohl od zítra nově dělat, co by to bylo?

Aby Lightning uměl všechny dobré věci, které šly v classicu. Ne že bych tím trpěl já osobně. Ale vím, že kvůli spoustě „drobností“ je potřeba přepínat 🙁

Co bylo/je na zavádění Salesforce nejtěžší?

Najít správnou rovnováhu mezi business zadavatelem (většinou CIO/CTO + management tým zákazníka) a reálnými uživateli, kteří budou mít salesforce jako denní chleba (obchodníci, customer care, atd). Požadavky těchto stran (ačkoliv jsou obě u zákazníka) bývají odlišné, protože na to mají jiný úhel pohledu.

Lightning – co tě přitahuje/odrazuje? Doporučil bys zákazníkům přechod? díky moc

V jednoduchosti je krása a prostě lightning je na první pohled přehledný a uživatelsky přívětivý – a to je to co zákazník potřebuje.

Jak drží zákazníci krok s rychlým rozvojem funkcionality Salesforce, zavádí nové funkce tak jak přicházejí nebo je nové funkcionality nezajímají?

Nové funkce je zajímají, ale většinou nemají odvahu na to být pionýři nových funkcí, chtějí znát zkušenost odjinud – jak se s tím kdo popral, co z toho vytěžil atd.

Ta Salesforce nebo ten Salesforce?

TEN Salesforce 🙂

Napiš komentář, díky!

O Salesforce s Pavlem Halasem

V sérii „O Salesforce s …“ jsem si dal za cíl během celého roku vyzpovídat alespoň 52 lidí, kteří se v České a Slovenské republice pohybují okolo Salesforce. Jedno, zda jde o lidi od partnerů, zákazníka nebo dokonce někdo přímo ze Salesforce. Máte tip na někoho, koho bych měl určitě vyzpovídat? Sem s ním! děkuji

Další v sérii mých rozhovorů s lidmi ze Salesforce komunity je Pavel Halas, technický člověk s mnohaletou praxí ve vývoji software od pozice vývojáře, architekta, až po vedoucí pozice. V minulosti pracoval na vývoji informačních systémů a finančních aplikací pro banky a nadnárodní firmy.

Jak ses k Salesforce dostal a jaká je tvoje role?

Jako slepý k houslím. Byl jsem osloven, jestli bych nechtěl pomoci rozjet novou kancelář Bluewolfu s tím, že se jedná o konzultační firmu implementující Salesforce. Přiznám se, že ani jedno jméno mi nic neříkalo, ale Google mi prozradil, že Salesforce je velice úspěšná technologie a že Bluewolf je s ní úzce spojený. V tu chvíli mi došlo, že nabídka slibuje velký potenciál.

Tehdy jsem na ni kývl a stal se vedoucím vývojového oddělení firmy Bluewolf, an IBM Company v Praze. Zároveň jsem u nás zodpovědný za evropskou strategii vývoje.

Jak se vzděláváš, které zdroje doporučíš?

Jako číslo jedna bych samozřejmě uvedl Trailheads, i když předpokládám, že to každý zná. Dále bych doporučil sledovat videa, což je nenásilný způsob, jak získat přehled o novinkách a různých aspektech existujících řešení. V Bluewolfu pořádáme přednášky u nás v kanceláři, k tomu máme vlastní knihovnu videí.

Jak se díváš na certifikační zkoušky, máš pocit, že je důležité je absolvovat nebo žádný test praxi nenahradí?

Certifikace v mých očích nemají takový význam, tedy alespoň ty základní. Bojím se, že lidé se je učí jako autoškolu, ale vlastně tomu vůbec nerozumí. To se mi potvrdilo mnohokrát.

Pokud se ale jedná třeba o vyšší certifikace, jako například architektonické, vím, že vyžadují patřičné úsilí a reflektují znalosti těch, kteří je mají.

Oddělil bys tvrdě administrátory od vývojářů nebo je fajn, že se to prolíná? A prolíná?

Do jisté míry je prolínání pozitivní, ale pro komplikovanější věci je třeba mít specializaci.

U nás v týmu máme konzultanty, kteří jsou technicky vyspělejší a jsou schopni číst kód, ale při vší úctě, vývoj software je samostatná disciplína, kde je třeba více, než jen být schopen napsat jednoduchý trigger.

Je mnoho aspektů, které musí vývojář znát, od složitosti algoritmů, návrhových vzorů, bezpečnosti, testování atd.

Na druhou stranu musí vývojáři rozumět konfiguraci, minimálně aby byli schopni posoudit, zda se daná funkcionalita dá nakonfigurovat nebo je třeba ji naprogramovat.

Pro komplexní konfiguraci je ale lepší využít znalosti a schopnosti administrátorů, kteří dokáží nakonfigurovat Salesforce podle představ klienta.

Používáš aplikace třetích stran? Která je ta nejoblíbenější?

Neřekl bych, že nějak moc, ale samozřejmě sáhnu pro Workbench nebo Postman, když je třeba. Mám sice licenci na Illuminated Cloud, ale s kódem už se aktivně moc nesetkám.

Nejvíce používám profily a správu hesel v Chrome, kdy mohu přistupovat k pracovnímu profilu se všemi Salesforce hesly, i když pracuji z domova na soukromém počítači. Zmiňuji to, protože to příliš lidí nezná, resp. používají speciální rozšíření, která ovšem uchovávají hesla pouze lokálně.

Jedna funkce, kterou máš nejraději?

Nemám jednu funkci, kterou bych zmínil. Oceňuji přínos celé platformy pro naše zákazníky a byl jsem s ní ochoten spojit svou kariéru :).

Kdyby sis mohl přát jednu věc, kterou by Salesforce mohl od zítra nově dělat, co by to bylo?

Nenapadá mě nic zásadního. Z pohledu vývojáře si člověk říká: Kéž by fungovalo debugování jako v Javě a kéž by za to člověk nemusel platit. Ale chápu, že to obecně není asi nejžádanější funkcionalia.

Co bylo/je na zavádění Salesforce nejtěžší?

Každý klient má specifické požadavky a specifické prostředí, do kterého musíme Salesforce zapojit, tudíš má každý projekt své úskalí. Asi bych ale neřekl, že je něco vysloveně těžkého, protože vesměs existují postupy, jak se vyrovnat s konkrétní situací.

Samozřejmě, že člověk často slyší klišé, že nemohou uchovávat data v cloudu, ale i to se pomalu stává minulostí.

Jak drží zákazníci krok s rychlým rozvojem funkcionality Salesforce, zavádí nové funkce tak jak přicházejí nebo je nové funkcionality nezajímají?

Jsou zákazníci, kteří sledují přednášky na Dreamforce a ptají se na nejnovější funkcionalitu, ale většina je spokojena se systémem, který jim naimplementujeme k jejich obrazu. Je pak na nás, abychom jim představili novou funkcionalitu a ukázali, jak jim může pomoci k dosažení jejich obchodních cílů.

Lightning – co tě přitahuje/odrazuje? Doporučil bys zákazníkům přechod?

Lightning je osvěžující prostředí 21. století, které se soustřeďuje na uživatelskou přívětivost, takže jej můžeme zákazníkům s klidným srdcem doporučit.

Vývoj nezastavíš, takže je to spíše otázka kdy přejít, zejména s ohledem na množství a komplexitu customizací. Samozřejmě, že jsou tam stále hluchá místa jako rychlé akce v rámci souvisejících objektů, ale obecně už je takových věcí málo.

Z technického pohledu používá Lightning čistou architekturu s oddělenými částmi pro vizuální stránku a logiku, která je mně osobně bližší než třeba React, kde se vzhled a logika prolíná.

Ta Salesforce nebo ten Salesforce?

Ten Salesforce. Nikdy jsem nad tím nepřemýšlel — takhle mi to bylo představeno, tak to tak používám.

Napiš komentář, díky!

First Czech NGO Hackathon aka Build it Day

10 teams, 4 NGOs, 24 hours for delivery – basic ingredients of the first Salesforce hackathon in Czech Republic. I got the honor to be a mentor and sit in the jury, selecting the winner of this great event.

I did attend a few hackathons before and this one was different due to a several reasons.

  • Reason #1 being that people signed up for the event as teams, which – from my point – was good and bad at the same time. It is definitely good for the team, because you make sure all needed competencies will be there, bad because the people in community don’t mix, share knowledge and learn from each other. And as they worked most of the time they didn’t really have time to mingle or share the knowledge;
  • Reason #2 being that the organizers prepared things which needed to be build. The teams could still provide a lot of invention how to make the final solution better and nicer, but the borders were set;
  • Reason #3 being that teams were allocated to the tasks by lot, not by choosing what they want to do. And what really surprised me was that none of them left after finding what they should deliver, as some of the tasks were pretty complex. Just one team gave up during the night, as they had just 6 months of experience with Salesforce.

So from my experience I wouldn’t call it hackathon but rather build it day, partly also because we really plan to use the results to use in real life for real NGO customers.

The Tasks

Four different NGOs, selected by CRM pro neziskovky, four different tasks to complete.

  • ADRA needed a project management solution, linked with donations and some advanced features;
  • The Open Society Fund needed replacement for Google Forms, something linked directly with Salesforce, which they can also use to update data and be used as a way to sign up people for events;
  • Centrum Paraple wanted something similar but stressed different part of the process – wanted to automate as much as possible the process of setting campaign members whether they will or won’t attend and whether actually attended. As well as the ability to update their contact details when checking in or let them check in even without registering before
  • Army of Salvation had the most common request NGOs have – automate the process of sending gift receipt, we need at the end of fiscal year. One simple button, which will generate this receipt for thousands donors and send it via email or print it with one click. And at the same time it should work for individual donor who just called he need it.

At first I was sceptical about having just 4 problems and 10 teams, at the end I loved it. We really got totally different solutions and would we be able to combine them, we would get something awesome.

Szandor Knapp, the great MVP from Munich, who we had as a mentor here, considered all of them pretty complex and challenging, I – as always – thought about it as something simple.

Of course we are aware, that there are great applications on AppExchange we might use for these tasks, but to build something from scratch has its beauty.

How it went

All requestors were available to the teams for several hours and they could pass as many requests and information to them as possible. Mentors were available the whole time as well as food (plenty of it) and drinks. As night progressed some teams went to get some sleep, others continued nonstop. Was quite interesting to watch them and as I write this article I have no clue, whether they will provide better solutions to those who left. The beauty of different approaches, when you can work way less than others and still deliver something similar or maybe even better.

The Winners

The Jury – Jan, Aleš, Zuzana and me – had a hard time. The teams presented their solutions, trying to impress all of us. We had access to their orgs to see how they did it and could check whether it really works. Can ask additional questions.

First place was obvious to all of us. The rest was a bit more tricky. Should you prefer native features, which make it harder to customize by customer (eg. one team used VisualForce page to render the pdfs and we agree it is pretty easy to tweak such page, other team used Email template for the same thing and via code generated the pdf, which is even easier) or a bit of code, which makes it easier? Should we give bonus points for using custom metadata (as it is the prefered way) or custom object for configuration is better, as customers can find it more easily? Does it matter that one feature doesn’t work as the team hit some limit of Salesforce, while such features wasn’t needed?

All in all, Svatopluk, Eliška and Tadeáš from AspectWorks, were obviously the best one. You can also feel it from the presentation – Svatopluk was up and running the whole night and I still consider his presentation the best one. They used Labels in their solution, handled mass email limits, allowed users to choose which email template to use and which certificate template, dynamically define groups and much more.

Second place went to Petr, Martin and Petr, who worked on the solution for Centrum Paraple. They also involved little eshop as part of their solution, solved the process of registration to an event as well as simple links in an email you can just click and confirm/reject your attendance. Plus solution for speeding up the process at check-in, including ability to update contact details or allow people to register themselves on a shared tablet.

Third place was super hard to decide, so we decided to give it to two teams. Jan, Tomáš and Lukáš solved the problem of The Open Society Fund. Custom objects to define the structure of custom form, all the fields, their types, whether they are mandatory or not, validation rules and probably much more. Looked robust and really full of features.

Martin, Zuzana and Ondřej from AspectWorks solved the need of ADRA for project management. All the objects they needed, some custom Lightning Components to make it nicer, some triggers which automatically completed milestones when all task have been completed and so on and on.

We didn’t decide on the order of the rest of the teams. Nikita, Alexandra and Michal from Bluewolf worked on the Open Society Fund as well, incorporated Field Sets and some other features, had a nice corporate presentation, but the we liked the winning solution more.

Michal and Milan from Enehano Solutions with Jakub solved the ADRA requirement, we missed a bit better cost tracking but like the idea of uploading files directly to Salesforce. Pitty that the base LC doesn’t work in anonymous community.

Diego Perez, Stanislav and Martin from MSD worked on Salvation Army and really went with the 80 % customization, 20 % development process. Visualforce for printing the PDF file, email templates, workflow rules, which fire when specific flag is set in the record.

Iryna, Kamila and Anežka from MSD worked on the ADRA project as well. And they went mostly customization route as well, with a nice touch of free app for visualization of the timeline (and we still have no idea why it shows months names in Czech when everything we checked was set to English).

Take aways

Being mentor doesn’t mean you don’t learn new things. I learnt a lot, at least that:

  • it is hard to come up with a correct validation rule at 5am, especially if it involves PRIORVALUE function and picklist field (hint you need to use it with TEXT or ISPICKVAL), but Szandor was able to do it;
  • the anonymous communities, which are part of Enterprise licence, are awesome, but doesn’t allow to upload a file (even the default component to create a case);
  • Napili template really requires a Chatter and My Domain, otherwise isn’t available. On contrary to Partner Portal and other templates;
  • not having My Domain means even standard components are not available in communities;
  • @AuraEnabled is needed to have APEX variables available in Lightning Components (of course I know it, just forget it at 8am after sleepless night).

Partners

This event wouldn’t take place without partners. Clouderia, who came with the idea, organization and main price; MSD, who provided place and catering; CRM pro neziskovky, who get in touch with NGOs and helped them define their needs.

As well as Enehano Solutions, who donated price for second place (Tesla for the weekend) and AspectWorks, who paid additional expenses.

I should also mention the Salesforce, who provided swags for attendees!

Next time?

Will see, whether there will be next time, I’m really curious about it. The attendence was pretty good, all the big partners here, and the question is, whether they will be willing to attend again, as I don’t think we can find another such a big group of people. I spoke with a few of them and looks like they will take some sleep and are quite willing to do it again. Which is awesome.

All photos from Stanislav Krupar, are available.

Napiš komentář, díky!