Some time ago (March 26th), we organized the second “open door” day at Objectivity. We hosted 135 guests, who participated in a number of different talks prepared by our employees. Topics were chosen by the attendees, who voted electronically during the registration process. The event was so popular that at some point we run out of chairs :). About 60 people helped to organize the whole experience.
It often happens that not all of the questions can be predicted and answered during the presentations, so usually avalanche of queries follows the sessions, stretching even to corridors. That’s why my guild, i.e. Development Guild, organized a special, interactive meeting called “Let’s talk about Development” to address areas of extraordinary interest to developers. Here is my best recollection of questions that the audience has challenged us with that day, grouped into few categories.
Growth, People and Teams
- What is the size of a typical team? The number of people in a team varies and depends on project’s needs. On average, a team consists of 3 to 6 developers, 1 to 3 testers, a Business Analyst, a Technical Architect and the Project Manager / Scrum Master. Sometimes, we also have a User Experience specialist and/or a UI developer on-board.
- Are role changes possible in the projects? Yes, it happened in the past. The classical career path for Development is: Developer → Senior Developer → Technical Leader / Technical Architect, but with good will on both sides, you can change your role or even create a new role in the company. There are living examples :) of the following career path changes in Objectivity:
- Java Developer → BI Specialist → .NET Technical Architect
- Developer → PM
- Tester → Developer
SDLC process – Tools, Technology, Quality and Excellence
- Do the developers communicate directly with the customer? Yes, they can and yes, they do. Most of the communication with the customer lies on the shoulders of BA, architect and PM, nevertheless, some details of the solution are handled by the developers. They can use different means to contact the customer, for example: Tandberg (video), phone or e-mails. We talk with people holding different roles – sometimes it’s a Product Owner on the other side of the line, sometimes it’s a BA or an end-user of our apps.
- What web technologies and JS frameworks do you use? Knockout, AngularJS, RequireJS, Kendo UI, Bootstrap, jQuery, Jasmine and d3 are the most popular JS libraries. In addition, we are planning to introduce of TypeScript for one of our major clients this autumn.
- What tools do you use for integration and deployment? TeamCity is our choice for Continuous Integration, mainly thanks to gated check-in support, flexibility of deployment pipeline, high usability and friendliness of administration. However we still have some projects running on Jenkins, which we intend to migrate in the next couple of months. Most of our systems run on Windows, so PowerShell is the default language for deployment automation. Many projects utilize PSCI, the automation library we created and open-sourced to simplify Continuous Delivery setup for new projects. It provides a DSC-like language that allows to express the configuration as a code. Some of our projects also utilize PSake.
- What tools in general do you use for development? The key tools for us include: Visual Studio, Resharper, NuGet, SourceTree/TortoiseGit, Web Essentials, Jira, SQL Server Management Studio, StyleCop and FxCop. But our developers use more than that – SonarQube, RedGate’s SQL Prompt, IntelliJ Idea, JsHint, JetBrains dotCover, ANTS Profiler or .NET Reflector to name a few.
- What leading Microsoft technologies do you use? .NET 4.5, ASP.NET MVC 5 (Razor), Web API 2, Entity Framework 6 Code First, EntLib 6/Unity.
- What other technologies, apart from .NET, do you use? About 80% of what we do are .NET web applications. This does not entirely result from our decisions, as quite often our big customers come to us with a particular technology in mind. For example, a client may already be a Microsoft house with people specializing in this technology, hence the client may expect a solution based on .NET platform. Usually, we help customers to validate this selection and do minor changes regarding libraries and frameworks. In addition to .NET, we do some:
- What does SDLC mean? SDLC stands for "Software Development Life cycle", you can find full definition on Wikipedia. At Objectivity, we created our own Metro map to explain how we deliver software. You can find out more about “1st Metro in Wroclaw” here.
- Are unproven technologies sold to the customer? No. Only technologies, we have at least some experience in, are proposed to the customers. It happens though that to solve some intricate problem, a project requires some library or framework, we never used before – in such case, we do ‘technical spikes’ to learn and check a particular technology.
Projects and Clients
- How long does a typical project last? The standard length of a project is between 6 months to 2 years. After that period, the system is usually handed over to support.
- What projects do you have in Java? We have one big Java customer from Germany, i.e. ImmobilienScout24. We already delivered eight products for this customer and we work on the next ones. We also have some Java-based systems for another, major customer - Primark.
Development Guild & Other
- What is the Development Guild? Guild is a group of people with similar skills from the whole company joined by a common passion, common aims and the need for growth. It is a community of interest and knowledge exchange. The Development Guild takes care about developers and architects, among others by organizing: Lightning Talks (short presentations), trainings with external specialist (like Dan North or Bartłomiej Zass, Microsoft Polska) and WROC# conference or knowledge sharing through our blog. You can find out more on Guilds and Tribes and why we have introduced them here.
- Do you look for junior developers? Mostly, we hire only MSc degree people with 2 years of commercial experience. Our customers demand that kind of specialists. However, we are always open to talents as we have some internal projects, which are not limited by these expectations. In the past, we had a vacation internship programme for students and perhaps we will repeat it.
- How do the first weeks of employment look like? First of all, a week before you join us, you receive:
- a welcome pack with a bunch of surprising and useful things,
- an e-mail containing a detailed list of activities planned for the first week of your employment.
- further familiarization with your team, the customer, domain and technologies,
- internal training on technical and general subjects (e.g. how to complete timesheets or organize business travels, etc.),
- 1-1 sessions with your supervisor, where you can get and give feedback concerning your work.
I hope, I dispelled your concerns about Objectivity and now you will apply for one of the positions to experience our culture and to learn more about this fantastic company. If you still have any doubts, I encourage you to visit us on the next “Open Day” event, which is planned for October/November this year. Anyway, see you there…