Adam Olshansky on Salesforce DX and Version Control
We recently sat down with Adam Olshansky to get his thoughts on Dreamforce, developing on the Force.com platform, version control and other topics.
Adam Olshansky is a Salesforce MVP and 11x certified developer based in San Francisco. He has written extensively about his journey learning the Salesforce platform on his blog Adam to Architect. You can follow him on Twitter at @adam17amo.
How did you get started on the Salesforce platform? How long have you been doing it?
I’ve been working with Salesforce since August 2014. Part of it was by accident - I ended up getting a promotion onto a team at Honeywell that was working with Salesforce and I kind of fell in love with it.
I had come from the SAP operations side of things previously where you were not only dealing with SAP but all the servers and storage and operating systems. Having to manage and monitor all that was a lot. So then to come to Salesforce which is this nice user-friendly system in the cloud that lets me as an engineer focus on building things and creating things and providing actual value as opposed to spending time keeping things running smoothly behind the scenes. So that was why I fell in love with Salesforce.
I attended my first Dreamforce two months later and was blown away by everything there. I really liked the idea of the community that was growing there. I kind of latched onto the concept of learning about it and getting certified after seeing a theater session with David Liu. And so I tried to make that a part of my path too. I got certified and was also able to become active in the community. I ended up getting another job doing full-time Salesforce development which I turned into this other new job doing full-time Salesforce development. So it’s been a lot of fun and a lot of stuff going on the past couple of years.
You did 5 certifications in 6 weeks. What was that like? Was it intense?
Yeah kind of. When I attended that first Dreamforce I hadn’t really touched Salesforce very much before. I created my first ever Dev Org. I did some hands on trainings. I took the point and click development training. I took a few more and got through them quickly. I took another one on Intro to Apex Development.
I had done a bunch of Java in college and so was familiar with programming concepts. So again it seemed pretty similar and came naturally to me. So when I was watching David Liu’s presentation and he was talking about his website SFDC99 he talks about helping you get certified. So I spent most of my winter break and second half of December going through the Salesforce fundamentals workbook and learning the basics of how Salesforce works. Also Honeywell is a premier customer so I had access to the premier training courses. This was pre-Trailhead or at least pre me knowing about Trailhead. So I was able to go through a bunch of help and training modules in my spare time. So it was additional learning but it kind of felt like it was fun for me to learn about. I didn’t really look at it as extra work.
One of the great skills of an admin is to be the business advocate and to put the business processes into action.
Being a competitive person, I saw a story about Mayank Srivastava that had completed five certifications in six weeks. So I wondered if I could do something like that. Sort of a challenge accepted kind of thing. So I went down that path. Realistically a lot were similar, for example Advanced Admin and Force.com developer are pretty similar. Sales Cloud and Service Cloud Consulting are just an extra layer on top of that. It was a lot of fun and a lot of hard work. I’m glad I put forth the effort to do that.
Did you study computer science prior to using Force.com?
I did an engineering major and a computer science minor. Part of the minor included an introduction to computer programming. I never coded before college but I kind of took to it. I liked the logic of how it worked. I liked how it all fit together. I started taking more computer science classes from there and took a few comparative programming classes. In grad school I took software engineering. I took a class on cloud computing and actually Adam Seligman came to speak to our class one day. He was the first guy at Salesforce I ever met. So I kind of learned it from there.
Apex is pretty similar to Java or C or a lot of the other object oriented languages out there.
Has that background been helpful for you?
Tremendously. I think Brent Downey from AdminHero has a great blog post about this, but Salesforce is a relational database at the end of the day. It’s all a bunch of tables and rows of data that tie together. Once you understand that and how all the pieces fit together, when you’re adding custom fields and custom objects you see that they are just additional pieces to the puzzle. Once you have that sort of wholistic view you get it.
Same thing with writing code. Yeah Apex is a different language but it’s just logic at the end of the day. If this, then that. For all of these records in this list over here, do something to them. Check something. When this event happens do this other thing. Part of the reason I like Salesforce so much is because you can do so much on the declarative side and there is such a low barrier to get started. If you understand the logic and how everything fits together I would suggest looking into the coding side because it shares the same concepts and principles.
You ramped up fast. What was the biggest challenge getting started?
Probably just the terminology and understanding the business side of things. I don’t have a sales background and I don’t have a marketing background. I’m still a little confused to be honest when it comes to how marketing works. I’m in awe of the people that are really good at it.
One of the great skills of an admin is to be the business advocate and to put the business processes into action. I kind of struggled with that a little bit at first. I could understand how to build great processes but if they weren’t adding any value for the business it really doesn’t do anybody any good.
So that connector between knowing the business better and the industry you’re in and how to make Salesforce work for you.
What makes Salesforce such a great platform? What did you fall in love with?
The ease of use. Especially coming from the SAP side originally. SAP is a lot clunkier. Salesforce was really straightforward and easy to use. It just kind of made sense: here are tabs, here are objects, here are fields, here are formulas, everything is in plain language and it made sense to me how it all fit together.
The low barrier to entry is that anyone can click here, click there and build stuff. There is a little more to it than that obviously but the fact that anyone can go and start with a free Dev Org and start building applications in a matter of hours is really incredible to me. I feel Salesforce gives anybody that opportunity.
What was the highlight of Dreamforce ‘16 for you?
I like where the platform is going. I like Salesforce a lot now, but knowing that there is always new stuff being added to it every few months is also exciting to me.
Some of the stuff they are doing with Einstein - even if it’s a few months out - will be really exciting to see where we’ll be able to go with that.
The other thing is Salesforce DX which I’m sure you’re very familiar with - the concept of source control and release management. The ability to have some of that built in now so you can use additional tools that developers are pretty familiar with.
With version control…if something bad does happen and you need to rollback you can. I’ve been in several situations where a deployment or somebody else’s deployment broke something of yours so you have to do a rollback and figure out what lines do we need to take out.
What do you think about Einstein?
The Einstein keynote really helped me see some of the use cases for it. It still has a ways to go in terms of being built out and ready for people to start using. But I definitely like the direction. I think it has a tremendous amount of potential. Hopefully some of those features will be built into the platform and not be add-ons so people can take advantage of Salesforce and the machine learning capabilities from day one.
If you think about it computers are more accurate than humans in a lot of ways so letting a lot of that work be done for you gives you more time as an Admin or a developer to find solutions that your company can take advantage of. It makes you that much stronger as an Admin or developer.
We’d love to get your thoughts on Salesforce DX. What do deployments look like today for you? Do you use the Ant migration tool or change sets?
I’m ashamed to say I use change sets today. I’m not thrilled with the interface but they do work at the end of the day. Personally I love the idea of Git but I don’t like using it. I can work on the command line but it’s ugly and I don’t necessarily like to. Sometimes what Git thinks should be merged and what I think should be merged don’t agree. So I’m still kind of paranoid doing line by line checking. It would be nice for that to be automated.
No version control systems are natively integrated into Salesforce yet so we have to deploy to version control and then separately deploy it to Salesforce. If those are out of sync nobody will have any way of knowing and so that is probably not idea. We are making strides in that direction. There is a decent amount of room for improvement.
I like that DX provides Scratch Orgs so I can spin up a whole new Org to test my changes. I don’t have to change my sandbox. I can just spin something up, test it and then throw it away. I really like that.
I definitely like the idea of DX having version control and sticking with industry standards around Continuous Integration. I like that they are helping with version control so that if something bad does happen and you need to rollback you can. I’ve been in several situations where a deployment or somebody else’s deployment broke something of yours so you have to do a rollback and figure out what lines do we need to take out.
I definitely like the direction they are moving in though they are still a few months away. It’s good to see what that looks like. Looking forward to getting more industry best practices in my own release cycle.
What are you doing for source control today?
Google has their own internal version control system. On the Salesforce side we use that and change sets and as a fail safe we are copying and pasting old files and storing it on my desktop. We are doing code reviews and stuff like that. We don’t have a built in rollback process.
No version control systems are natively integrated into Salesforce yet so we have to deploy to version control and then separately deploy it to Salesforce. If those are out of sync nobody will have any way of knowing and so that is probably not ideal. We are making strides in that direction. There is a decent amount of room for improvement.
How much of your time is spent in the UI vs developer tooling? Do you use the Force.com IDE or MavensMate?
Once I converted to MavensMate I haven’t gone back to the Force.com IDE. I’m using Atom on top of MavensMate. I know I could use that for deployments but I haven’t. I tried once and got an error and didn’t bother to investigate it.
When I have to do things like field updates I do that in the UI. Code changes are all done in MavensMate with the exception of anonymous blocks which I think you can also do in MavensMate but I usually use the Developer Console for that.
What are you most looking forward to coming from Salesforce this year? What do you think we’ll be talking about at Dreamforce ‘17?
That’s a hard one. It seems like every year there is something really big. Last year was Lightning, two years ago was Wave, this year was Einstein. I have to think about what other acquisitions they’ve been making recently. CommerceCloud just came out this year as well.
I think this year Lightning is really getting more built out. Next year I don’t think it will be anything new and groundbreaking but I think we’ll see Lightning become more of the norm. People are slowly shifting over, but a lot of people are hanging on to Classic. I think Winter ‘17 and Einstein will drive people towards Lightning. Once that happens more, with the architecture that Lightning is built on Salesforce can really get into innovating faster and building things faster.
Anything you want to learn, anything you want to get involved with nowadays, the opportunity is there. You just have to take the first step and go get it.
I think right now a lot of the products are segmented still so I would like to see a little more coming together. Some more stuff with Einstein. I think AI (artificial intelligence) is the new thing I see a lot of companies doing now and Salesforce is right in the thick of that. Business Intelligence and Analytics were big a couple of years ago.
It’s too early to say for sure with as fast as technology moves nowadays. I’m excited to see where it goes.
What advice do you have for someone who wants to get started with the Salesforce platform?
My advice is always start with Trailhead. It’s a great way to get introduced to concepts and learn about anything you want to know on the platform. Get active in the community. Find your niche whether that’s Success, Twitter, or LinkedIn - there are people who love to help free of charge so take advantage of that. If you have questions there are people who are more than happy to answer them. Anything you want to learn, anything you want to get involved with nowadays, the opportunity is there. You just have to take the first step and go get it.