Saturday, September 27, 2014

Employment after the age of 40 (MngtTips Podcast)

Couple of weeks ago we've recorded a short session hosted by the MngtTips podcast.

In this session 3 PicScout's employees shared their experiences on searching and working in the hi-tech industry after the age of 40.
Though we're sure this issue isn't particular to the Israeli hi-tech industry, the difficulties to find a proper job after age of 40 in Israel are well known.

You can listen to the podcast here (Hebrew only).


By Beautification Syndrome

Monday, September 22, 2014

Software development apprenticeship program at PicScout



In May 2013 we were happy to start a software development apprenticeship program. This program is in cooperation with the Atidim program, which encourages engineering studies combined with an internship in Israeli high-tech and industrial companies.

Since the program started, we have focused our efforts on training apprentices for excellence and encouraging their growth and learning in accordance with PicScout's culture and core engineering principles:

·         Simplicity - creating simple and business oriented designs
·         Efficiency and transparency - writing clean and readable code that others can easily maintain & adjust per business requirements
·         Innovation ­- nurturing innovative thinking as a key to growth
·         Creativity ­- bringing new and better ideas and finding creative solutions for identified problems
·         One voice ­ - embracing collective responsibility


How does it work?

a) Our apprentices receive effective and solid training that provides them with the right tools on their way on becoming great developers.
b) The apprentices receive a wide range of tasks throughout PicScout's management and they experience the full lifecycle of a product.
c) With their arrival to PicScout a few mentors are assigned to help facilitate easy and friendly integration- both technically and socially.
d) The initial training period includes getting to know PicScout's products and architecture, understanding the organization's culture and going through technical training.
e) The apprentices are provided with an extensive reading list, tools and technology reviews. We don’t only focus on a high level review, but actually delve into details explaining the trends, whys and hows behind every tool and technology.
f) We review PicScout products, explaining why the business decisions were made as they made and how our architectural and design solutions meet the business requirements
g)The apprentices come to Picscout once or twice a week. Their ongoing work includes R&D tasks, design and code reviews, and participating in educational meetings, Hackathons and SW craftsmanship events.
h)In addition, each apprentice gets a chance to lead a small project end to end –
Starting from the design phase and going deep into production’s maintenance phase.


What's next?

We are very pleased with the progress of the program so far and we can already see the fruits of both sides efforts. We are looking forward to integrating the apprentices in our company once they finish their studies and to welcome additional apprentices in the future.

Wednesday, September 3, 2014

Selenium use at PicScout

At PicScout, we believe that every step in our development workflow that can be automated should be. Testing is one of those steps where automation is needed. Automated testing allows us to implement new features quickly, as we can always prove that the product still works as we expect.

In order to automate our testing process, we chose to work with Selenium among other tools we are using. Selenium is an open source set of tools for automating browser-based applications across many platforms. It is mainly used for web applications testing purposes, but is certainly not limited to just that.

Our approach is that most of the automation should run locally to keep the continuous integration environment clean as much as possible. This is very important step for stepping up to continuous deployment. Therefore, we build a mechanism that enables to run the automation including selenium locally. By using this mechanism, the SW engineers can ensure quality up to a certain level.

Each developer must first run the automation including Selenium on the local machine before his\her changes are pushed to the source control repository. To achieve this, each developer works on his own environment and doesn't interrupt other developers. That way the selenium testing environment stays "clean". In order to ease the developers' life a set of tools was developed which is responsible for updating the DB and running the tests.

The tests use dedicated DB which contains the relevant data; hence before running them the DB needs to be restored from a backup stored in the source control repository (aka GIT). In case a new selenium test is written which requires some data changes, the tool allows publishing the local DB to the repository.

Furthermore, selenium tests are written over NUnit Framework. NUnit Framework runs the tests in sequence, meaning one after the other. This can be time consuming since some tests can run in parallel as long as they are not affected by each other. Running tests in sequence takes about an hour, while in parallel it takes only 10 minutes!

Therefore, we developed a tool that supports serial and parallel modes for running tests. In order to run tests in parallel, we had to isolate each test from another. To achieve this, we had to make sure that the tests don't use shared DB resource or information (including but not limited stored procedure, tables etc.).  By doing that, we know for certain that at any given time, no test will disturb any other test while still pushing the performance to the limit and finishing all of the tests in minimal time, as opposed to running tests in sequence manner.

That's about it on how we use selenium at PicScout.