30.04.2018 / Volodymyr Rubych

I started my work on e-commerce development field more than 10 years ago from a topic of my graduation project in university. My choice was to develop a B2C store on the then-so-popular (in 2006) OsCommerce open source platform. The scope included a PIM for the OsCommerce engine, a few payment methods, shipping modules, etc.

I did an easy one, without various difficult integrations, without thinking about such important things as scalability, system performance or maintainability. Let’s say that system was monolithic, non-modular, difficult for any modifications, even from UI perspective, slow and inefficient. But the right choice was that I decided to do it using an existing open source platform.

After that, I used to work with a lot of different e-commerce platforms: wooCommerce, shopify, WP eCommerce, zencart, Magento, OpenCart, and I have practical knowledge and experience to compare them and recognize the evolution of each.

From those days, technologies have changed a lot. There’s a vast variety of new powerful e-commerce platforms available today, but only few of them are on the enterprise level and could be applied as enterprise for a large-scale businesses.

The leading companies who provide enterprise e-commerce solutions are SAP Hybris, Magento, Oracle and IBM. By chance, during the last 3 years I’ve been working on SAP Hybris projects and I can affirm that the evolution of this platform and the whole e-commerce direction is really impressive.

Moreover, based on OVUM predictions, in the nearest future the retail trends will be changing even more rapidly, so e-commerce platforms should be able to react to these changes appropriately. That’s why all of the providers/vendors are trying to move technologies and sell platforms like SAAS Cloud, which makes applications more flexible and independent with microservices, integrate AI and machine learning, etc.

It is absolutely natural that each business is unique from the perspective of business processes, workflows, company internal rules and regulations. That’s why platform providers/vendors should also maximize flexibility and make business processes configurable in their solutions out of the box.

The most difficult question for a company which has decided to create an enterprise online store is choosing whether to use an existing platform or develop their own solution from scratch. Enterprise platform is not cheap, but implementation of a custom solution can be even more expensive and, just as importantly, very time consuming.

SO WHAT SHOULD A COMPANY START FROM TO MAKE THE RIGHT CHOICE?

First of all, the company should do some research and identify levels of risk, the main goal of the future solution, scale, scope, schedule, technologies and budget. Besides that, the goal of the future system should be predefined from the very beginning for choosing best applicable application architecture and approach in general. The goal may change or the target may become clearer during the implementation phase. As a result, it will affect solution and processes, but not the fundamental things agreed on preliminary analysis, system analysis and design phases.

If we are not limited in time and budget, implementation of an own solution is the best and the only right choice. The result is that finally, we will have a 100% match for our business needs. Is it possible in real life? Unfortunately, this is very rarely the case…

TECHNOLOGICAL STACK AND DOCUMENTATION

Nowadays, e-commerce systems are very complex and multilayered from a technical point of view. By layers, I mean such system components as CMS, ERP, CRM, and the search engine, which should be integrated into one system and cooperate with each other.

Each layer may differentiate by their own implementation and technological stack. For example, CMS part written on Java or PHP, interacts with Oracle or MySQL database, with implementation of search through SOLR. Finally, this part of e-com CMS is integrated with some third party PIM, with SAP CRM and ERP. Technologically, to maintain such a system, a company should have an expert in each layer. Let’s talk about it later.

If we choose to use an enterprise platform, in most cases we are safe with new features, future updates, required level of performance, security and quality. Instead of implementation of specific features, we can use already existing modules, plugins, or extensions. API of those systems is very flexible and easily modified and reused. Such platforms as Hybris are well documented, and professional communities and forums with required information are widely available.

An additional benefit of platform use is that all of the layers are implemented on the same technological stack, all modules inside each layer are written in the same programming language, and stable and compatible frameworks are in use. So we are avoiding a mix of technologies and approaches on the project, which are incompatible with each other and potentially may cause big issues in future.

INTEGRATIONS

System integration – The process of creating a complex information system that may include designing or building a customized architecture or application, integrating it with new or existing hardware, packaged and custom software, and communications. Most enterprises rely on an external contractor for program management of most or all phases of system development. This external vendor generally also assumes a high degree of the project’s risks.

To allow systems to be integrated easily, the development of the system API should be planned from the very beginning. As we can see from the definition above, this is the most risky, difficult and unpredictable part of each enterprise system. Most of the platforms provide their API’s for integrations and default integration mechanisms. It reduces the potential level of risk somewhat, but still this is the most difficult phase of enterprise system development.

TEAM

The implementation of a custom solution requires mature, high-skilled people who are experienced in similar kinds of development. Finding the right person who will work efficiently as a team player can be very challenging. At this stage, any lack of coordination and organizational skills will slow down the development. Furthermore, the cost of disorganization and inability to work together can be very high. Thus, meeting a tight deadline is impossible. Please note, that I haven’t even mentioned any application design mistakes people may do unintentionally, which happen very often in enterprise system development.

For a platform customization, we need mature and qualified people as well, because developers have a lot of possibilities to implement the same functionalities and features in different ways in platforms like Hybris. But they need to choose the most appropriate one, which will fit the current solution and comply with requirements.

TIME

Time is something very difficult to estimate and it’s very important to do this estimation properly. For each enterprise solution, the scope may vary rapidly, and change requests happen very often. Adaptability for market changes plays a key role in business, and it is very important to be on time and faster than your competitors.

So, developing your own solution may be too risky to choose and extremely time consuming. When using a platform, go-live with basic functionality and a team of 7 people is possible in 3 months. By basic functionality, I mean product catalog, product variants, simple promotions and order placement.

BUDGET

If time is difficult to estimate, the case with budget estimation is even more difficult, because budget depends on development time and time is an unknown variable. And just imagine the time we need to design and test an enterprise e-commerce system! Collecting requirements, analysis and design, and testing may overrun the budget for the full project.

For a platform, we just need to customize it for the company business processes. That’s why calculation of the budget is much easier in this case. We need to take into account the license cost and estimate the development efforts for platform customization due to customer needs.

FUTURE CHANGES, TESTING, SCALABILITY AND PERFORMANCE

Let’s imagine that we are done with our own B2C system development, and after looking at the positive and increasing statistics of e-commerce sales, our company has decided to take the next step and extend the system for a few more countries. This is something we should probably do from the very beginning of the project, but in practice, we would need to start development of a new system, because the scope of changes will be equal to the whole previous development.

Furthermore, the count of end users of the system is very underestimated and it affects the general system performance in the near future. Is it possible to modify existing application architecture for increasing system performance later on? Yes, but the scope of changes is huge.

What about testing and continuous delivery? Testing is my favorite topic 🙂 And as we previously discussed, most projects are multilayered, and connect a big amount of integrations with third-party systems and existing legacy systems.

In the case of our own custom solution, we should do unit testing for each separate module, integration testing for validation of modules integration inside of each layer, system testing of each layer, and finally regression testing of subsystems cooperation and the system behaviour as a whole. Lack of testing may cause financial loss and loss of company reputation. So the company needs to do testing as quickly as possible and satisfy the required level of solution quality, or do not change anything.

Rapid market changes require on-time and direct actions, that’s why changes and modifications of e-commerce solutions quite often are the real-life case. As a result, we need to apply regression testing for all the stages mentioned above.

The main benefit from using a platform from the QA perspective is that we do not need a testing platform itself. We need to test only specific changes/modifications done by us to be sure the whole system works properly. That gives us better dynamics, stability and possibilities for quick changes and continuous delivery.

MAINTENANCE

Maintaining a system or any system layers is not an issue if we are a product company and we have all the required skillset on board. But what to do if we are a company which developed a system with external resources and switched from the development stage to maintenance?

From the business point of view, it is expensive and inefficient to utilize the whole team in the maintenance stage. Companies are trying to minimize maintenance costs by using only a few persons, or even switching to a third-party company. It will also require a wider set of skills and people to maintain the system if it was developed from scratch with different technologies.

With platform usage, it is much easier to maintain the system because the company just needs a person who has the experience in development or maintaining the specific platform.

As a conclusion, only a few companies in the world have succeeded with their own implementations, I mean such companies as Amazon and Rakuten. If a company needs to go to market fast with the lowest level of risk, I’d recommend to select a strategy of development using an e-commerce platform.

Some statistics regarding leaders in e-commerce platform development can be found by the following links:

2017 Gartner Magic Quadrant for Digital Commerce report

The Forrester Wave™: B2C commerce suites, Q1 2017 report

The Forrester Wave™: B2B commerce suites, Q1 2017 report

The Forrester Wave™: B2B commerce suites for midsize organizations, Q3 2017

 

If you are interested in e-commerce development, contact us for more details (Mariusz Papiernik tel. +48 690 540 522 or Volodymyr Rubych tel. +48 733 936 306)


30.04.2018 / Erkka Puusti

Some time back, I attended a Certified Agile Leadership course, facilitated by the excellent coaches from Agile42. During that training, we had plenty of discussions about different types of teams, team performance, motivation and self-organization.

After that training, I have spent a lot of time reflecting on what I learned, the team I am now working with, and also teams I have interacted with in the past.

How a team functions can make or break a project. A project which is set up in way that ensures a team has the capability to continuously improve and build synergy is much more likely to produce quality results than a project which just consumes resources.

A good team needs time

As we do project work, a new project basically always means a new team setup. With new clients, new environments and changing colleagues at some level, we always need to form the team to fit the engagement. This does not happen overnight.

Tuckman’s stages of group development is an excellent way of viewing how a team matures. It talks about different phases a team goes through when entering a new engagement: Forming, Storming, Norming and Performing. Sometimes we are able to go through these stages quite fast, sometimes it might take longer, and sometimes we might even get stuck on the way. Teams with a long history together tend to go through these phases multiple times.

We start with Forming, where we are mainly individuals working together and trying to learn to know each other. Our focus is on individual tasks and goals. To get to the next stage, we must first learn to discuss tougher problems and allow the risk for conflict.

During Storming, we start to identify our differences in ways of working and thinking, and start to really form our team. This is the phase where we are confident enough to voice contradicting opinions and allow conflict to happen. In order to move to the next stage, the team must find a way to resolve these possible conflicts.

During Norming, we really start to find our common goal as a team and start to take more responsibility on a team level instead of at an individual level. At this stage, we start to accept each member of the team as they are and find ways ways to align.

During Performing, we reach the level of a true self-organized team that is able to focus on the team goal, autonomously make decisions, and process conflicts on a healthy level.

Re-visiting the Agile manifesto

The Agile manifesto and some of its principles offer an excellent source to reflect on teamwork.

Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

The best thing a project leadership can do is to focus on creating a safe environment for a team to operate in. Every time I have worked with a high-performing team, the team has had high autonomy and has been able to decide what they focus on and how they do their work.

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

Nothing destroys good people like tight schedules with unrealistic scope. A team can’t really perform at an optimal level if they can’t have a say in the speed they deliver and how long the work actually takes.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

If a team can’t adjust the ways it works, it can have big effects on the quality the team delivers. The best teams are offered the possibility to continuously reflect on their ways of working and change them if needed.

Retrospectives are a common session in agile projects where the team comes together to inspect their current ways of working and to facilitate improvement continuously. Especially when combined with a sustainable pace, since then there is actually time to make the needed changes, not just think about them.

Conflict is healthy

As already the above Tuckman’s model suggests, an important element of a good team is the capability to tolerate conflict. If we can’t discuss our differences openly and without fear of retribution, then it is impossible to have a high-performing team. Irritation bubbling under the surface without the possibility to get out kills the possibility to improve and is toxic to transparency.

The Best Team

I recently participated in a retrospective where a colleague of mine wrote down on a sticky note: “Transparency”.

When we asked him what he meant by that, he said that one of the best things in our project is that we are able to be completely transparent about everything within the team. There is no fear about what can and what can’t be said, and we can do things just like we think is best. In other words, our team can focus on building quality.

It took us a while to get to this point, but it was surely worth the effort. Luckily, we are working in an organization that gives us the possibility to decide how we want to work, and luckily we are also working with a client who gave us the chance to do things in the right way and trusts that the team knows what they should be doing.


25.04.2018 / Markus Kuuranta

Jokainen metroa koskaan käyttänyt ja semmoiseen epätoivoisesti juossut henkilö pystyy varmasti tunnistamaan nykyisestä prosessista erinäisiä parannuskohteita. Niin mekin. Tässä BilotTV:n jaksossa Markus ja Matias purkavat tätä hyvin arkipäiväistä ilmiötä käyttökokemuksen näkökulmasta, ja kyllähän sieltä ratkaisuakin tarjotaan. HSL korvat hörölle!


23.04.2018 / Teemu Lainiola

Taloushallinnon rooli muuttuu

CFO:n ja taloushallinnon tehtävät ja vastuut ovat jatkuvassa murroksessa. Erityisesti pienissä ja keskisuurissa yrityksissä talousjohtajan alaisuuteen siirretään useita vastuualueita kuten tietohallinto, henkilöstöhallinto, laki- ja sopimusasiat. Lisääntyvä vastuu tarkoittaa myös yhä merkittävämpää roolia liiketoiminnassa sekä tarvetta tehostaa toimintaa.

Ketterä kaveri vai takapeiliin tuijottaja?

Organisaatiot muuttuvat myös jatkuvasti ketterämmiksi ja nopealiikkeisemmiksi. Tästä johtuen myös taloushallinnolta odotetaan joustavuutta ja kykyä reagoida liiketoiminnan tarpeisiin entistä nopeammin. Passiivinen jälkiraportointi ei yksinkertaisesti enää riitä, vaan liiketoiminta kaipaa ohjeita ja konkreettisia toimenpide-ehdotuksia jo ennen liiketoimintapäätösten tekemistä. Kuten tietohallinnon, myös taloushallinnon rooli on muuttunut tukitoiminnosta liiketoiminnan kumppaniksi, parhaimmillaan parhaaksi kaveriksi.

Tue päivittäistä tekemistä, auta oikeiden päätösten tekemistä

Kumppanuus on arjen elämistä, siis osallistumista päivittäiseen toimintaan. Jotta arki on toimivaa, tulee taloushallinnolla olla kyvykkyys ohjata toimintaa strategisen tason lisäksi myös taktisella ja operatiivisella tasolla. Tämä edellyttää uudenlaisen ajattelun lisäksi myös uudenlaisia yhteistyömalleja ja mahdollisesti myös uudenlaista teknologiaa. Analytiikka, liiketoiminta- ja talousosaaminen on voittava yhdistelmä, jonka hidasteeksi ei voi muodostua puutteet osaamisessa, prosesseissa tai työvälineissä.

Modernit raportointi- ja analytiikkavälineet tarjoavat ennennäkemättömiä mahdollisuuksia. Taloushallinnolla on valittavanaan useita tehokkaita työkaluja, joiden avulla tuottaa lisäarvoa, havaintoja ja suosituksia liiketoiminnan edustajille. Lisäksi helppokäyttöiset työkalut mahdollistavat lukujen analysoimista liiketoiminnan edustajien toimesta. Työkaluvyö ei kuitenkaan tee kenestäkään timpuria; on siis syytä varmistaa, että analytiikalle on osoitettu myös rakennusmestari – tarvittaessa organisaation ulkopuolelta.

Nopeus on valttia

Kumppanuus edellyttää yhteistä, laadukkasti käytettyä aikaa. SAP:in teettämässä tutkimuksessa todettiin, että mikäli taloushallinnon prosesseja saataisiin nopeutettua, käytettäisiin (todennäköisesti) säästynyt aika lisäämään osallisuutta liiketoiminnan osana sekä tekemällä korkean tuottavuuden työtehtäviä. Samassa tutkimuksessa merkittävä osa (75%) kyselyyn vastanneista totesi, että menestyminen tulevaisuudessa vaatii sitä, että yksiselitteiseen ja helposti ymmärrettävään talous- ja performanssidataan päästään käsiksi hetkissä.

Kumppanin kumppani yhteisellä matkalla

Törmäämme työssämme näihin ilmiöihin lähes päivittäin. Siksi asiakkaamme luottavatkin osaamiseemme raportoinnin, data-arkkitehtuurien ja analytiikan osa-alueilla. Autamme asiakkaitamme tuottamaan analyysien ja raporttien lisäksi liiketoimintaa ohjaavia, konkreettisia päätöksiä yhdistelmällä dataa, hyödyntämällä moderneja teknologioita ja prosesseja sekä tukemalla muutoksessa niin taloushallintoa kuin liiketoimintayksiköitä.

 

Olethan jo tehnyt päätöksesi, aiothan olla ketterä kaveri?

 


19.04.2018 / News Team

Suomalainen IT-asiantuntijapalveluyhtiö Bilot jatkaa kasvuaan ja vahvistaa hallitustaan. Hallitukseen on nimetty toimialan konkari Björn Mattsson (mm. BMC, Ericsson, Siili, Visma), jolla on laaja-alaista ja kansainvälistä kokemusta liiketoiminnan johtamisesta etenkin ohjelmistoalalla.

”Bilotilla on hienot meriitit yhteiskunnan ja elinkeinoelämän digitalisoinnissa. Lähden innoissani mukaan hallitukseen ja osallistumaan Bilotin menestystarinan kirjoittamiseen”, kertoo Mattsson.

Vuonna 2016 hallituksen ensimmäiseksi yhtiön ulkopuoliseksi puheenjohtajaksi valittiin hallitusammattilainen Petri Niemi, joka on pitkään teknologiakentässä toiminut ja hyvin tunnettu kasvuyhtiöiden kehittäjä (mm. Eniram, Fondia, Next Games, Siili, Vincit).

Tänä vuonna Bilot rekrytoi kymmeniä uusia asiantuntijoita, ja yrityksen liikevaihdon ennustetaan kasvavan reiluun 18 miljoonaan euroon. Yhtiö hakee voimakasta kasvua sekä kotimaasta että kansainvälisesti. Bilotilla on tällä hetkellä yhteensä 130 työntekijää Suomessa ja Puolassa. Muiden Pohjoismaiden osalta laajentuminen on myös jo käynnissä.

”Bilot elää parhaillaan todella kiinnostavaa kasvuvaihetta ja hallituksen vahvistaminen auttaa meitä kehittymään ja laajentumaan. Petri ja Björn tuovat uudenlaista vankkaa kokemusta ja verkostoja hallitukseen, ja he tuntevat erinomaisesti toimialan ja markkinan muutospaineen sekä kuinka siihen vastataan”, toteaa Bilotin toimitusjohtaja Mika Tanner.

Bilot on investoinut viime vuosina merkittävästi palvelu-, tuote- ja osaamisportfolionsa kehittämiseen ja kääntänyt katseensa tiiviisti myös ulkomaille.

Yhtiö tunnetaan asiakaskohtaisen ja ketterän ohjelmistokehityksen osaajana, alansa edelläkävijänä sekä etenkin suurten ja keskisuurten yritysten strategisena kumppanina verkkokauppojen, asiakkuudenhallinnan, markkinointiautomaation sekä kehittyneen analytiikan ja tiedolla johtamisen alueilla. Bilot on tähän asti keskittynyt etenkin valmistavan teollisuuden, prosessiteollisuuden, tukku- ja vähittäiskaupan, kuluttajatarvike- ja  palvelutoimialoihin.

Bilotin arvolupauksessa palvelumuotoilulla, kettärällä kehittämisellä ja järjestelmien ensiluokkaisella käyttäjkokemuksella on keskeinen rooli kehitettäessä asiakkaiden digitaalista kilpailuetua.

Bilotin ohjelmistoratkaisut ja projektitoteutukset perustuvat johtaviin ohjelmistoalustoihin (mm. SAP, Microsoft, Tableau, Magento, Astrada) sekä enenevässä määrin puhtaasti pilvipohjaiseen kehitykseen. Modernin analytiikan saralla koneoppimista ja tekoälyä hyödyntävä kehitys on jo integroitu osaksi kokonaistarjontaa.

 

Yhteystiedot:

Bilot Consulting Oy:

Mika Tanner, toimitusjohtaja, +358(0)40 544 0477

mika.tanner@bilot.fi

 

www.bilot.fi

www.facebook.com/bilotoy

www.instagram.com/bilotig

www.twitter.com/bilotoy

www.linkedin.com/company/67243/

 

Bilot on vuonna 2005 perustettu ohjelmistotalo ja kasvuyritys. Bilot toteuttaa asiakkailleen edistyksellisiä kokonaisratkaisuja ja ketteriä, asiakaslähtöisiä liiketoimintaympäristöjä. Bilot tunnetaan kyvystään tunnistaa toimialan merkittävimmät innovaatiot sekä kyvystään jalkauttaa ne käytännön liiketoimintaan laadusta tinkimättä. Yrityksen toimipisteet sijaitsevat Helsingin Ruoholahdessa sekä Puolan Poznańissa. Yrityksen liikevaihto (2017) on 15 miljoonaa euroa ja yhtiössä työskentelee noin 130 ammattilaista.


18.04.2018 / Markus Kuuranta

BilotTV:n YouTube-kanavalla starttasi taannoin uudenlainen videosarja. Jokaisessa jaksossa esitellään työntekijöidemme tekemiä löydöksiä käytettävyyden (User Experience eli UX) ihmeellisestä maailmasta, pääasiassa designereidemme toimesta, mutta myös vierailevilla tähdillä höystettynä.

Ensimmäisessä jaksossa Markus Kuuranta ja Jyrki Turunen keskustelevat hyvin pienestä, mutta silti hyvin hyödyllisestä parannuksesta niinkin arkisessa asiassa kuin… kahvikuppi.


17.04.2018 / Pekka Rajanen

The field of marketing has experienced various changes over the past decade. Digital marketing, social media presence and sponsored content are becoming increasingly important, but traditional channels retain their attractiveness to many organizations. Machine learning and better data availability will turn the game around for agile organizations with the courage to implement advanced analytics solutions.

Return on Marketing Investment

One of the most crucial aspects of marketing is effectivity. Therefore, associated financial outcomes should be evaluated and analyzed when marketing spending is decided. It is feasible to calculate return on marketing investment (ROMI) for each channel and marketing campaign.

Marketing resource allocation can be considered in the light of return evaluation. ROMI modelling also allows earnings forecasting in which marketing spending is used as an input. Simulations increase demand predictability and thus improve decision-making. The greatest financial benefits are typically realized in large B2C organizations.

Data Requirements

ROMI modelling requires revenue and margin data. Furthermore, organizations have to document marketing spending by channel, product and time stamp to utilize the approach. The quality of the results is largely dependent on data completeness, length and frequency. The picture below illustrates the sales of a product sensitive to national holidays with relatively sizable seasonal fluctuation.

Earnings Modelling

Earnings generation has to be modeled in order to obtain an estimate of ROMI for each marketing channel. The determinants of earnings vary according to product characteristics and operational environments. The resulting time series model can be deconstructed into smaller parts to obtain a quantitative estimate of each element with an effect on revenues.

It is often feasible to include a trend component when earnings modelling is carried out. The baseline of the model is built on observation history and endogenous behavior of the dependent sales series. Identification of relevant external factors is also essential to modelling success. Structural anomalies can be filtered out with a suitable statistical method often based on residual standard deviation.

Earnings generated by each marketing channel are displayed along with the rest of the model components. ROMI can be calculated based on these cash flows. The statistical model which inspired this blog post explained 94 % of the underlying variation in sales.

 


12.04.2018 / Guest Writer

Olen jo jonkin aikaa mietiskellyt, mitä tulevaisuudessa kannattaisi tehdä työkseen. Voisiko IT-firma olla itselleni kiinnostava työpaikka? Millaisia tyyppejä täällä Bilotilla oikein edes pyörii? Kun en tiedä, otan selvää…

Olen pohtinut, mitä haluaisin tehdä isona. Olisiko jo kauan kestänyt unelma arkkitehdin urasta toteuttamisen arvoinen, vai kannattaisiko siirtyä mieluummin kasvavan ja kiinnostavan IT-alan puolelle? Lukion ensimmäisenä vuonna järjestetylle tehoviikolle valitsin itselleni TET-kurssin, eli työelämään tutustumiskurssin. Muutaman päivän pituisen TET-jakson aikana sain mahdollisuuden tutustua IT-firmassa työskentelyyn.

Mikä firma tämä on? Bilot Consulting Oy on vuonna 2005 perustettu suomalainen asiantuntijapalveluja tarjoava kasvuyhtiö. Työntekijöitä on nyt noin 130, mutta koko ajan tulee uusia. Yhtiöllä on myös liiketoimintaa Puolassa.

Yksi työtehtävistäni oli muutaman työntekijän, ”bilotin” haastatteleminen. Minulle oli valittu kuusi bilottia, joiden joukossa oli mm. yhtiön perustaja ja myös ihan uusia junioritulokkaita. Joukossa oli devaajia, johtoryhmän jäsen, digimarkkinoija ja liidikonsultti.

Minun piti valmistella muutama avainkysymys, lähettää kutsut saatteineen Outlookissa ja pitää kirjaa siitä, mitä he kertoivat. Haastatteluissa sain eri työntekijöiden näkökulmia Bilotista ja reittejä, mitä kautta he olivat päätyneet juuri tähän firmaan ja heidän tehtäviinsä.

Haastateltujen bilottien unelma-ammatit lapsena ja nuorena olivat suurelta osin olleet luovia, kuten kirjailijan, rokkistaran, diplomaatin, lääkärin, tai arkkitehdin ammatteja. Yksi heistä halusi jopa päästä soittamaan KISS:iin! Työntekijöille IT-alalle päätyminen johtui kuitenkin usein aiemmista työkokemuksista ja niiden sisältämistä projekteista, esim. kesätöissä. Kesätöiden hankkiminen ja muut työharjoittelut muutenkin kasvattavat työkokemusta ja antavat hyviä ideoita työnhakuun ja uravalintaan.

Lukion tai ammattikoulun jälkeistä opiskelua varten kannattaa miettiä, millä aloilla on tulevaisuudessa paljon töitä. Kannattaa ottaa selvää mahdollisuuksista aika laajasti. Vaikka ensimmäisellä kerralla opiskeltu aihe ei tuotakaan tarpeeksi töitä, voi onneksi aina mennä uudestaan opiskelemaan. Opiskelun lisäksi omaa urapohdintaa tukee muun muassa kesätyöt ja työharjoittelut. Ne saattavat myös tuoda uusia ideoita ja ajatuksia työelämästä.

Ammatinvalintaa kun miettii, kannattaa rakentaa oma opiskelu-ura siten, että oma unelmatyö voisi oikeasti toteutua, olisi se sitten lukio tai ammattikoulu. Kannattaa opiskella sellaisia juttuja, jotka pitää mahdollisimman monta ”ovea auki” tulevaisuudessa. Jos on ihan varma siitä, mitä haluaa tehdä ”isona”, kannattaa siihen tarttua ja keskittyä siihen tosissaan.

Jos käy niin hyvin, että pääsee tekemään sellaista työtä mihin on intohimoa ja mitä rakastaa, se ei tunnu työltä. Silloin työ tuntuu enemmänkin mukavalta harrastukselta, mitä ei tahdo lopettaa. Myös työn ulkopuolella kannattaa tehdä asioita, jotka tekee iloiseksi.

IT-alalle ei ilmeisesti edellytetä mitään tiettyä tieteenalaa, mitä opiskella. IT-alalle voi päästä, vaikka on opiskellut kauppatieteitä tai bioprosessitekniikkaa, ei pelkästään tietojenkäsittelyä. Tälle alalle on siis monia ovia, joiden kautta voi päästä sisään.

Vinkiksi sain, että kannattaa tehdä sellaista työtä, josta ehdottomasti pitää. Ei kannata mennä jonnekin opiskelemaan vain siksi, että kaikki muut menevät sinne, sillä se voi myöhemmin kostautua. Koska samassa työssä pysytään todennäköisesti useita vuosia ja samassa ammatissa usein vuosikymmeniä, on tärkeää, että pitää työstään.

Harvemmin se oma peruskouluaikojen ajatus työelämästä lopulta onnistuu, mutta työstä kannattaa kuitenkin ”make the most of it”. Stressaaminenkin on turhaa, sillä tulevaisuuden työtehtävät ja nuorena valittu opiskelusuuntaus harvoin liittyvät tarkalleen toisiinsa.

Bilotilla bilottien mielestä parasta on vastuun ja vapauden tasapaino vaihtelevat ja monipuoliset työtehtävät, me-henki, matala organisaatio, hyvä ilmapiiri, pääseminen vaikuttamaan asioihin ja uusien juttujen oppiminen ja tekeminen. Omassa työssään he eniten arvostavat tiimiään ja muiden kollegoiden antamaa apua ja tukea. Uusilla, kuten kokeneillakin työntekijöillä tulee välillä mutkikkaita tilanteita, siksi on hyvä että muilta voi tarvittaessa pyytää apua ja heihin voi luottaa.

Bilotilla ei olla ystäviä vain toimistolla, eikä yritys rajoitu vaan neljän seinän sisäpuolelle. Bilotit usein viettävät aikaa yhdessä toimistonkin ulkopuolella ja kollegat ovat toisilleen kuin toinen perhe.

Yritän olla realistinen omien haaveiden toteutumisen suhteen. Harvoin ne omat kauankin kestäneet unelmat toteutuvat ja kun näkee muita mahdollisuuksia, uusia saattaa syntyä lisää. Vaikka arkkitehdin ura saattaa tällä hetkellä ollakin unelma-ammattini ja tulevaisuuden tähtäimessä, kuulostaa nyt IT-alakin hyvältä mahdolliselta toiselta vaihtoehdolta. Sekä arkkitehtialalla että IT-alalla voi käyttää hyödyksi omaa luovuuttaan ja voi toteuttaa itseään omalla tavalla.

Sain haastattelujen perusteella IT-alasta enemmän tietoa ja sen alan työntekijöiden mielipiteitä ja näkökulmia ja ala kuulostaa jopa enemmän houkuttelevalta kuin aikaisemmin. Osaisin hyvin kuvitella itseni työskentelevän Bilotin kaltaisessa firmassa, ellei jopa Bilotillakin. Jos arkkitehdin ala kuitenkin kiinnostaisi vielä vuosien päästä, voisi alat ehkä myös yhdistää. IT-alalla voisin esimerkiksi rakentaa arkkitehtien käyttämiä visualisointi-, sisustus- ja suunnitteluohjelmia.

Kokonaisuudessaan tämä oli tosi valaiseva TET-kokemus. Näin ja koin, mitä on olla IT-yhtiössä töissä, millainen tunnelma siellä on, mitä ihmiset tekee ja ainakin Bilotilla tuntui olevan hyvä tunnelma ja kivoja tyyppejä.

Kiitos vielä haastateltaville!

 

Kirjoittaja on Lotta Tanner, 16 v. Lotta opiskelee Otaniemessä Aalto-yliopiston kampuksella Haukilahden lukion ensimmäisellä luokalla.

 


11.04.2018 / Lasse Ruokolainen

 

Mika Laukkanen sivusi aiemmin blogikirjoituksessaan ylisovittamista (http://www.louhia.fi/2017/10/23/koneoppiminen-vaatii-osaamista/). Ajattelin että tästä aiheesta voisi kirjoittaa vähän laajemminkin, koska se on yksi isoimmista ennustavaan analytiikkaan liittyvistä haasteista.

 

Over-fitting vaanii joka nurkan takana

Ylisovittaminen eli over-fitting tarkoittaa yksinkertaisesti sitä, että malli sopii dataan liian hyvin. Joku voisi tässä kysyä, että miten niin liian hyvin? Eikö hyvä ”istuvuus” ole nimenomaan tavoite?

No kyllähän se on, mutta tässä pitää silti olla tarkkana. Ongelma on nimittäin se, että kun ennustemalli opetetaan historiadatalla, voi malli sopia täydellisesti dataan (eli ennustaa vasteen ilman virhettä), mutta ennustaa silti hyvin huonosti uusia havaintoja.

Mistä tämä sitten johtuu?
No siitä, että mallin opettamiseen käytetty data ei edusta kattavasti laajempaa havaintopopulaatiota. Tämä taas voi johtua joko datassa olevasta satunnaiskohinasta, aineiston suhteellisen pienestä koosta, tai siitä että eri luokkamuuttujien tasojen välisiä kombinaatioita on paljon, mikä pienentää efektiivistä otoskokoa.

Koska oikeassa datassa on aina epätarkkuuksia ja aineistojen koko sekä ominaisuudet taas voivat vaihdella melkoisesti tilanteesta riippuen, on analyytikon syytä olla aina varuillaan.

Se ketään ei vie väkisin, saa kukin valita

Vaikka ylisovittaminen on yleinen vaara, ei hätää, sen estämiseksi on hyviä standardiratkaisuja.

Holdout menetelmä
Analyytikolla pitäisi olla ihan selkärangassa, että kun lähdetään tekemään ennustemallia, data jaetaan (yleensä) satunnaisotannalla kahteen (tai useampaan) osaan.

Suurin osa datasta käytetään mallin opettamiseen ja lopulla havainnoilla testataan, kuinka hyvin malli pystyy yleistämään opetusdatan ulkopuolelle.

Käytän tässä esimerkkinä saksalaista luotonantoaineistoa (https://archive.ics.uci.edu/ml/datasets/statlog+(german+credit+data), joka käsittää taustatietoa 1000:sta velallisesta sekä tiedon siitä onko velan hoito laiminlyöty vai ei (default = vastemuuttuja).

Jaan aineiston satunnaisesti niin, että opetusdata kattaa 70% riveistä ja käytän tätä osadataa random forest luokittelijan opettamiseen (loput 30% säästetään mallin testaukseen).

Saadun luokittelijan tarkkuus on erinomainen; tarkkuus = 100 % ja AUC = 1.0. Toisin sanoen, malli pystyy täydellisesti erottelemaan ”huonot” luotonottajat ”hyvistä”.

Jos tilanne olisi se, että olisin käyttänyt koko aineiston mallin opettamiseen ja tyytyväisesti vienyt loistavan mallin tuotantoon — sehän osasi täydellisesti erotella ns. jyvät akanoista, olisin tehnyt pahan virheen. Nimittäin, kun mallia käytetään ennustamaan testidatan vastemuuttujaa, on tulos selvästi kehnompi: tarkkuus = 75%, AUC = 0.80.

Eli kun mallille näytetään dataa mitä se ei ole aiemmin ”nähnyt”, ei yksilöitä kyetäkään enää luokittelemaan yhtä tarkasti. Tämä on tyyppiesimerkki ylisovittamisesta.

Ristiin validointi
Vaikka yllä kuvattu menetelmä paljastaa ylisovittamisen, on riskinä kuitenkin iterointi testidataa vastaan — eli testataan jokaisen mallin hyvyys erikseen testidatalla, josta Mika aiemmin varoittikin.

Suositeltavampaa onkin, että opetusdata pilkotaan sisäisesti useaan eri opetus- ja testidataan ja toistetaan yllä kuvattu prosessi kullekin ositukselle. Tätä menetelmää kutsutaan ristiin validoinniksi (CV = cross validation).

Tekemällä kominkertaisen CV:n yllä käytetyllä opetusdatalla, saadaan opetusdatan ennustetarkkuudeksi 76% (AUC = 0.78). Tätä realistisempaa tarkkuutta (joka vastaa itse asiassa hyvin sitä mikä saatiin testidatalle) voidaankin sitten verrata eri mallien antamaan tarkkuuteen, ilman että opitaan samalla epäsuorasti testidatasta.

 

Kaidalla tiellä, poissa kiusauksista

Vaikka käyttämääni random forest luokittelijaa pidetäänkin yleisesti varsin vahvana menetelmänä, tässä kohtaa ongelmaksi nousee aineiston pienuus.

Liian pieni aineisto koituu helposti edistyneiden koneoppimisalgoritmien kohtaloksi juuri siksi että ne toimivat hyvin isoilla aineistoilla (esim. neuroverkko toimii kyseisellä aineistolla suurin piirtein yhtä huonosti).

Analyytikon ei siksi ole syytä ylenkatsoa yksinkertaisempia menetelmiä, joiden pitäisi oikeastaan muodostaa vertailukohta edistyneemmille menetelmille.

Esimerkiksi, naïvi Byes luokittelija (joka käytännössä laskee vain ehdollisia todennäköisyyksiä datasta) antaa koko opetusdatalle vähintäänkin yhtä hyvän ennustetarkkuuden kuin ristiin validoitu random forest (tarkkuus = 75%, AUC = 0.80) ja ylioppii varsin maltillisesti (testidatalla: tarkkuus = 71%, AUC = 0.73).

Jopa tavallinen logistinen regressio pärjää vertailussa varsin hyvin (opetusdata: tarkkuus = 75%, AUC = 0.77), eikä juurikaan yliopi (testidata: tarkkuus = 71%, AUC = 0.75). Näillekin menetelmille on toki todellisuudessa hyvä tehdä CV, varmuuden vuoksi. Eihän näiden mallien ennustetarkkuus toki päätä huimaa, mutta pessimisti ei tässäkään kohtaa pety; tuotannossa ylioptimistinen ennuste vasta korpeaakin.

Kolmen eri ennustemallin ROC-käyrät. Opetus- ja testidata on kuvattu eri väreillä. Katkoviiva kuvaa ennustetta, joka on yhtä hyvä kuin arvaaminen.

 

 

Pidä mieli avoinna ja paita puhtaana

Mitäkö opimme tästä harjoituksesta?
Ainakin kaksi asiaa:
(1) älä hätiköi ja (2) KISS (Keep It Simple Stupid).

Molemmat pointit ovat varsin oleellisia. Kun miettii tarkkaan mitä on tekemässä, eikä lähde tekemään jotain ongelmaan sopimatonta, välttyy helpommin aika monelta muultakin sudenkuopalta kuin ylisovittamiselta.

Joten ei muuta kuin Marko Haavistoa ja Poutahaukkoja hyräillen kohti uusia pettymyksiä.