Question 1. What Is The Definition Of Continuous Integration And Continuous Deployment For You And The Company?
Continuous Integration is testing your code all the time and keeping software quality high. It gives you the confidence to get stuff out as quickly and often as possible
Continuous Deployment is basically getting code into production. Things should be easy and repeatable. That’s where Continuous Deployment comes into play. Deployment should not be manual.
Question 2. Was Continuous Deployment Planned And Used From The Beginning At Grabcad?
In the beginning we used Engine Yard for deployment. Over time we used more Scala and Java in our features. This was not supported as well as needed so we moved to AWS and put more emphasis on automation throughout the infrastructure.
We have about 30 production servers in place right now. You commit your code and if it passes all the tests it will make its way into production through our automated system.
Testing Tools Interview Questions
Question 3. Could You Explain Your Workflow? What’s Your Sprint Length, Ticketing?
We do Scrum with 1 week sprints. We do our sprint planning at the beginning of the sprint (which does not have to be aligned with the beginning of the week). Then the team starts to work on the features which have been agreed upon. Every feature that is done gets into production. The feature teams decide on their own how much needs to be tested for that feature. Sometimes we push to a staging environment.
When a feature is ready you merge to master and then go to Jenkins and push the “OK DEPLOY” button. We release a couple of times a day.
After the week we do a sprint review.
Question 4. How Do You Do Release Planning?
Once a quarter we do release planning. The first week or two of the quarter is for planning the quarter and then we have about 8 to 9 weeks we can work on the features.
For the initial backlog we do rough estimations. We calculate in points. We look at points and see: “This team has about 600 points left and we know how much the team can still do.”
Testing Tools Tutorial
Question 5. Who Defines The Goals?
Goals come from the company level. The goals then get split up into tasks and features. We try to split them up in as small pieces as possible so we can get them into the sprints efficiently. We also do a semi-detailed breakdown with the aforementioned points (e.g. 200 points for this feature)
Linux Interview Questions
Question 6. Which Metrics Are You Using To Determine The Work Within Your Teams?
It’s not easy to define meaningful metrics for the engineering teams.
Take this example:
A feature is ready and live. But then the marketing promotes it and everything else kicks in later. You can validate the result of the feature only later on. The engineering team’s goal is to deliver the feature.
Our KPIs for engineering are:
- velocity (scrum points),
- number of deployments to production per week and
- number of regressions per feature/developer.
This gives us confidence in Continuous Deployment.
The sales team’s metrics include:
- engagement and others
Question 7. Your Team Works In Three Locations. How Does That Work For You?
The development teams are pretty evenly spread throughout three countries. Having everyone in one place has less overhead in communication but due to circumstances we had to have three locations.
However, having small teams has a lot of advantages and can compensate for geographical gaps. For example you can easily see where something went wrong and take quick action against any mishappenings.
Linux Tutorial Framework7 Interview Questions
Question 8. What’s The Team-composition At The Different Locations?
We have teams in Estonia, the UK and in the USA. We moved away from very functional teams in different locations to cross-functional teams in all locations.
We do have specialized teams owning different sections of the product though. If everyone owns everything, no-one owns nothing.
We do shift our teams every so-often to keep them fresh or when we have a new project and see that a specific person is perfect for that task.
Question 9. How Did The Team Grow Over The Times?
The core of the company started in Estonia and the CEO moved to Boston. Our biggest market is in the USA. Today we have the headquarters, the product management teams and the sales teams in the USA.
We were also able to land two key CAD experts in the UK which triggered opening the third location.
Maven Interview Questions
Question 10. What Do You Use For Product Management?
We now use JIRA and GreenHopper. Originally we used AgileZen.
Question 11. When Do New Developers Get Productive In A New Team?
They can commit to the work within the first week.
Automation Testing Interview Questions
Question 12. What Do You Think Will Get You More Productive In The Future?
We want to make the staging and Continuous Deployment and Testing environment better. These things are massively important for development productivity. We are putting a lot of effort into it in this quarter.
We are also thinking about changing to different languages. In Rails some performance and maintenance tasks are not as we like them to be. We may change some things to Scala or Java to get better performance.
Testing Tools Interview Questions
Question 13. Which Strategies Do You Use To Test Or Measure The Performance Of Your Application? Think Load Testing Vs. Monitoring.?
Currently we don’t do a lot of load testing. We might do it in the future. We use New Relic and our own monitoring. The GrabCAD website grew organically. We have a regular growth pattern now and its quite easy to estimate what’s going to happen in the near future.
Question 14. How Do You Grow And Scale Your Application?
We are on and want to stay with cloud providers. Cloud services are totally worth it. Think about IT people, servers, cooling systems and many more. There are a lot of hidden costs you save when you use cloud services.
Question 15. Have You Built Your Own Management Tools On Top Of Amazon Or Do You Use A Lot Of Amazon Providers?
We have some basic scripts. We are using Chef. Amazon instances provide a Chef client. It’s really easy to create the machines and it’s secure.
Getting something like this in place is work intensive and you have to figure out if it’s worth your time in the early days. We planned a lot of overhead to use Chef and built this setup.
We pay far less for our servers than for our office and salaries, so it’s not an issue. If we want to cut costs we just have to improve our code base.
Jenkins Interview Questions
Question 16. What Is Continuous Integration?
Continuous Integration can be defined as “Building software and taking it through as many tests as possible with every change”.
Question 17. Why Is Continuous Integration Important?
Two important reasons:
Defects found early cost less to fix : When a defect is found immediately after a developer codes it, it takes 10x times less time to fix it compared to finding the defect a month later.
Reduced Time to Market : Software is always tested. So, it is always ready to move to further environments.
IBM Integration Bus Interview Questions
Question 18. How Is Continuous Integration Implemented?
Different tools for supporting Continuous Integration are Hudson, Jenkins and Bamboo. Jenkins is the most popular one currently. They provide integration with various version control systems and build tools.
Linux Interview Questions
Question 19. What Are The Success Factors For Continuous Integration?
Implementing the tools for Continuous Integration is the easy part. Making best use of Continuous Integration is the complex bit.
Question 20. How Often Is Code Committed?
If code is committed once a day or week, the CI setup is under utilised. Defeats the purpose of CI.
DevOps Interview Questions
Question 21. What Steps Are In Continuous Integration?
More steps in continuous integration means more stability.
- Unit Tests
- Code Quality Gates
- Integration Tests
- Chain Tests
More steps in continuous integration might make it take more time but results in more stable application. A trade-off needs to be made.
- Run Steps a,b,c on a commit.
- Run Steps d & e once every 3 hours.
Question 22. How Long Does A Continuous Integration Build Run For?
One option to reduce time taken and ensure we have immediate feedback is to split the long running tests into a separate build which runs less often.