Building awesome sample apps that actually provide value 

start using these are a great read these examples from my own company but then developer start having other questions right and a line questions after they look at this code snippet so
apply this simple example to my bigger use case
where how do I test this
how do I integrate this example into my
they have a new line questions that they might not even realise that they have that could be answered by Simple code so they might have questions like
quickly build a complete application
where how do I apply devops best practices
when your engineer is that your company might be wondering how do I know if I'm breaking something really important
Tony Stewart looking at these questions sometimes that's her simple code breaks down and you want to build a comprehensive simple application that have covers a variety of use cases so that's working to talk about today
so my goal for this presentation is to empower you to convince your boss that building an awesome simple app should be at the top of your priority list
why can't hear
I feel Beyonce confident ready to build your singing flat
Harry can do that why would I start with a case study I've been working on a stable app since last full time I talk to you about that
about the concepts that I use give you some steps to success
how about some pitfalls I hit that hopefully you can avoid
the first a little bit about me
I am a developer advocate for sugar CRM I'm from Pennsylvania which is on the east coast of the United States before sugar I worked at Ivy and for a variety of different roles I was a Java software engineer in web development
packing soap and I've also done a test on a mission so I've hit the various pieces of the software development life cycle and I'm here doing developer advocate scene
I'm really obsessed with Taylor Swift gifts
suicide by the case study
just need a little background information about what I may be in July I think so I work on a product called sugar it's customer relationship management software
the big selling points about sugar is it is highly customisable so when you get a licence to Sugar you actually get access to our Source Code which is awesome you can go and you can tinker you can tweak make it to be exactly what you want
is that whatever you customise you have to be able to upgrade in the future right to get our latest and greatest versions to people customise it creates problems
that's the problem we want to sort of
right so does anybody remember the java Pet Store app from the early 2000s yes ok so I don't remember it even though I'm a developer Java developer but apparently it was all the rage I basically if you wanted to know how to build something in Java you would go to this job a pet store application
the chief product officer at Sugar was actually a Java when they build the starter pistol
so when I came to Sugar about a year ago I kept hearing him ask where is our pet store where is our pet store app so that's always setup to build
what are goals for a project where solicitor without a first who wanted to be in authority example of how to customise the product in the best way
do we want to be an example of how to follow devops best practices while customising or product
we got a lot of any others that go ahead and customise a product will be also have a lot of partners who bill by the hour and they develop customizations for the end customers so these partners don't have time to build up to create an infrastructure into letting it so we want to make it really easy for them to create high quality customizations
finally we wanted this example to be an example that are engineers contest that they aren't breaking common common customizations RMZ 85 x ok so the next videos with it started brainstorming what are scenarios should be
the time we were preparing for our annual user conference they had a superhero theme so decided to roll with that and we end up creating professor and school for gifted coders not I'm not really into superheroes but some people get the joke there and it's a university for superheroes
next thing we did was identify the requirements for a minimum viable product or in BP now I don't really love meeting so we had to do it we got everybody together in a room we brought in people from various parts of the organisation people from engineering people from products services
Warframe customer support Nathan hey what do we need to cover in this example application you know what are the things that people trip up on and what are the things that people do the most we want to include those in our example
and then we also did some of my research I went to make sure we were using the best of breed two of the latest and greatest so we searched in so what are people using for their devops tools what are they doing for continuous integration let's use that
so we created this big long list of requirements and broke it down and here's that we came up with so we came up with some basic customizations with scenario creating some custom modules field only
do you want some very basic test automation using phpunit and Jasmine because that's what our product engineering team uses
we want to create a devops pipeline using travis-ci it's very popular and it's great because it's free and you can anyone to go in and look at it in anytime
test integrated in the product build process because we wanted to know instantly if anything that our product team creating was going to break this common customizations and finally we decided to put a documentation in to get home
so once we had all this lined up it was time to actually do the work right implementer and BP so I'll show you what we created if you're not familiar with sugar you're probably what this looks normal but it's actually a customised version of sugar you look up on the top nail bar with that things like stupid groups professors student applicants those are customised we got some custom simple data here that relates to a superhero theme
we did some very light testing using phpunit in Jasmine to get our infrastructure setup
get a very simple Java pipeline using travis-ci
can we words with aw Engineering automation team that runs our teams a daily build processes and got our test integrated into the the daily build so whenever an engineer emergency changes in the master or Tesco Transit 100 instantly if they break something
blessing we did was our rights and documentation and we've been very intentional about this week we've got a lot of documentation because he wanted people to be able to come in and you're staying at any point
behind the web so we've talked about the scenario we explain if you just want to come in and use the same but this is how you do it
here's how you can check out our continuous integration here's how you can run our automated test as part of continuous integration are me and you learn your computer so you wanted people to be able to get up and running very easily
continued building incrementally so here's another feature that we built it in application for this university
and we make sure that we built a very transparent place so we do everything and get home are you can come in and see her issues at any time and as I am developing the code for this