Citati iz knjige “Okruženi idiotima – Thomas Erikson”

Prema autoru knjige i korištenoj DISC metodologiji ljudi svrstani u 4 kategorije. Svaki čitatelj se može pronaći u nekoj od boja ili više njih. Dobra knjiga koja može poslužiti kao uvod u detaljnije istraživanje sličnosti i razlika među ljudima i olakšati međusobnu komunikaciju i suradnju.

Razumijevanje ljudi uvijek će ostati ključan čimbenik u ostvarivanju životnih ciljeva sa što manje poteškoća, bez obzira na to o kakvim je ciljevima riječ.

Odmah bih na početku želio istaknuti da uvijek moramo biti oprezni kad govorimo o mladim ljudima, u ovom slučaju o tinejđeru. Oni još nisu kompletne ličnosti niti karakteri. Mladi još moraju mnogo naučiti o životu općenito. Svi dojmovi koje imaju nisu konačni.

Često se govori da moramo biti fleksibilni i prilagodljivi kako bismo se mogli nositi sa širokim spektrom situacija i kako bismo bili u stanju reagirati na mnogo različitih tipova ljudi. Postoji čak i ime za to – emocionalna inteligencija.

Crveni su nervozni tragači za rezultatima, Žuti su kreativni bonvivani, Plavi su perfekcionistički vitezovi tablica u Excelu, a Zeleni su najuravnoteženiji od svih boja.

Dakle, osnovno pravilo je da Crvenome odgovorite crvenim ponašanjem, Žutome žutim, Zelenome zelenim i, naposljetku, Plavome plavim.

Crveni (dominantni)

Crveni su brzi i, ako je potrebno, vrlo rado će uzeti uzde u svoje ruke. Oni će se pobrunit da se stvari obave. Međutim, kad se previše zalete, postanu opsjednuti kontrolom, pretjeraju u šefovanju i katkad su posve nesnosni. I redovito gaze po tuđim prstima.

Crvene pojedince ne zabrinjavaju rizici. Mnogi Crveni u aktivnoj su potrazi za riskantnim situacijama samo zbog uzbuđenja koje donose.

Trebali biste se odmah usprotiviti njegovu ponašanju. Ne dopustite nikakve prijestupe, nego recite jasno i glasno da nećete tolerirati ružne primjedbe, neugodnosti i ničim izazvane ispade. Zahtijevajte odraslo ponašanje, a ako Crveni izgubi živce, jednostavno izađite iz prostorije. Važno je nikad mu ne dopustiti da vikanjem dobije ono što želi.

Za davanje negativnih komentara Crvenima ne treba vam velika vještina. Treba vam jedino odijelo od azbesta i kosa otporna na vatru. Jer kako god da to učinite, temperatura u prostoriji sigurno će porasti. Ali ako se dobro pripremite, neće biti većih problema. Međutim, ako Crveni ne reagira na to što ste mu rekli, imate razloga za brigu.

Gradite odnose koliko god procjenite da je potrebno. Samo to ne činite s Crvenima. … Pravi Crveni bit će isprovocirani i čak će postati agresivni zapaze li da se netko pokušava sprijateljiti s njima.

Svaljuje krivnju na sve ostale. Crveni je često okružen idiotima, pa mu nije teško izdvojiti žrtvene janjce. I uvijek može preuveličati stvar kad nekoga želi dobrano iskritizirati jer je zabrljao. Pazite se! To je moj savjet jer ćete sigurno osjetiti peckanje kad on zamahne svojim bičem.

Žuti (druželjubivi i optimistični)

Žuti mogu biti zabavni, opušteni i popraviti atmosferu u svakome društvu u kojem se nađu. Međutim, kad dobiju neograničen prostor, isisat će sav kisik iz prostorije, neće nikome dati da dođe do riječi, a njihove će priče imati sve manje veze sa stvarnošću.

Stvar je u tome da je Žuti često nezainteresiran za ono što drugi govore jer bi on to mogao reći neizmjerno bolje od njih. Nije usredotočen, počne razmišljati i drugim stvarima i počne raditi druge stvari. Žuti ne želi slušati, on želi govoriti.

Žuti se boje sukoba. … Žuti može biti izrazito osjetljiv na to jesu li drugi dobro raspoloženi ili ne. Ako ljudi u grupi u kojoj se nalazi nisu dobre volje i agresivnost jednostavno pljušti, Žuti neće biti nimalo sretan.

Da sam dobio jedan dolar svaki put kad sam čuo Žutoga kako svoju totalno suludu odluku objašnjava argumentom da je imao dobar osjećaj, mogao bih jesti u Esplanadi.

Žutome novo znači uzbudljvio. Žuti su tzv. rani usvajači ili, drugim riječima, obično će prvi isprobati nešto novo.

Priče im najčešće počinju riječju ja. Ja želim, ja mislim, ja mogu, ja znam, ja ću… To je za njih prirodno. Dragi su im ljudi, ali postoji nešto što im je još draže: oni sami.

Žuti više govore nego što rade. Rado će pričati o svemu što bi trebali obaviti umjesto da se prihvate posla i obave ga.

Žutom ćete prijatelju pomoći tako da se pobrinete da zabije lopatu u zemlju i počne kopati. Pogurajte ga, ali učinite to vrlo nježno. Odnosite se prema njemu kao što biste se odnosili prema djetetu. Budite ljubazni, ali nedvosmisleni. Zamijeti li da mu pokušavate biti menadžer, stvar bi se mogla prilično zakomplicirati. Žuti mrze osjećaj da ih se nadzire. Nema sumnje da su oni boja koja treba najviše pomoći da se pokrene, ali to im se nimalo ne sviđa. Žuti su slobodne duše i ne slušaju nikoga osim sebe.

Žuti su odlični u mnogim stvarima. Jedna od njih je da vole mijenjati stvari. Po mogućnosti stalno.

Kad je riječ o promjenama, Žuti su nesumnjivo njihovi zagovornici, ali trik je u tome da prijedlog za promjenu mora doći od njih samih. Povratne informacije izvana ne padaju uvijek na plodno tlo.

Možda to ne biste očekivali, ali Žute je zapravo najteže promijeniti – zbog njihove fleksibilnosti i kreativnosti. Ne slušaju vas i provest će samo one promjene koji su se sami dosjetili. Najbolji pristup je da im što više masirate ego i da im stavljate riječi u usta. Isplati se zapamtiti da se njhova loša memorija odnosi i na ljutnju. Premda se osjećaju grozno kad ih netko kritizira, čak i to vrlo brzo padne u zaborav.

Prije nego što vam padne na pamet dati negativne povratne informacije Plavome – za Boga miloga, pobrinite se da znate o čemu govorite. Dopustite da vas podsjetim da Plavo točno zna što je učinio i ima mnogo bolje oko za detalje od vas. Zato se pobrinite da imate spremne sve činjenice prije nego što uopće dođete na tu pomisao.

Plavi (organizirani i analitični)

Katkad je moguće da se Plavi posve suzdrži od ulaska u bilo što jer ne može procijeniti rizike.

Malo je onih koji mogu beskonačan broj puta ponoviti iste radne aktivnosti, svaki put na posve identičan način, kao što to Plavi mogu. Krasi ih jedinstvena sposobnost kategoričkog pridržavanja uputa od slova do slova bez propitivanja – pod uvjetom da su ih razumjeli i da su ih od početka smatrali dobrima.

Mnogi Plavi koje sam u životu upoznao ne kažu ni jednu nepotrebnu riječ. Jednostavno su takvi. Znači li to da nemaju što reći? Ili da nemaju mišljenje o različitim stvarima? Ne, ne znači ništa od toga. Samo su vrlo, vrlo introvertirani. Plavi su mirni i vrlo stabilni ljudi. … Koji je razlog njihove šutljivosti? Jedan od njih je što oni, za razliku od Žutih, ne osjećaju potrebu da ih se čuje. Nije im nikakav problem sjediti u kutu gdje ih nitko ne čuje i ne vidi.

Analitički su Plavi smireni, staloženi i uvijek dobro promisle prije nego što progovore. Sposobnost da zadrže hladnu glavu nesumnjivo je zavidna osobina za sve koji to ne mogu. Međutim, njihovo se kritičko razmišljanje lako može pretvoriti u sumnjičavost i preispitivanje ljudi oko njih.

Plavoga ne zanima čavrljanje. Lako će ostaviti dojam da ga nije briga za druge jer s drugima ne njeguje odnose. Zapravo mu je stalo, ali su njegove potrebe na drugačijoj razini u odnosu na potrebe ostalih. Voli biti sam sa sobom i s najužom obitelji i to je to. Posljedice su očite za sve oko njega: smatraju ga bezosjećajnim i distanciranim. Njegova je zona posve očita i može biti vrlo hladna, osobito za Žute i Zelene.

Dopustite mi da vas ponovno podsjetim da je Plavi introvert, a to znači da je većina njegovih emocija ispod površine.

Plavi će se vrlo studiozno pripremiti. Ako ste se dogovorili naći na određenome mjestu u određeno vrijeme, budite sigurni da će se pojaviti. Plavi će proučiti materijal od početka do kraja, proanalizirat će sve do najmanjega detalja i bit će spreman za razgovor o svemu u okviru zadatka. Imat će alternativan plan kao i plan za slučaj nepredviđenih okolnosti.

Plave mušterije ne postavljaju pitanja da nešto doznaju, nego da potvrde ono što su već provjerili.

Podsjetite se da će Plavi rijetko ili čak nikad pitati što ima novoga ili pokazati zanimanje za vaše osobne probleme. Ni vi njega ne pitajte kako mu ide na osobnome planu. … S vremenom će se otvoriti, bude li htio. Nije riječ o tome da mu se ne sviđate, samo ponajprije želi raditi.

Detalji su važni, ako ne i ključni. Želite li doista doprijeti do Plavoga, morate se pobrinuti da budete vrlo precizni. Aljkavost, odnosno napraćenje detalja, nikad neće naići na njegovo odobravanje.

No stvar je u tome da kad introvertirani Plavi počne govoriti, nikad ne prestaje. Sve mora opisati. I što posebno izluđuje, čini se da se sjeća… baš svega.

Plavi pod stresom dodatno uspore tempo jer se nema vremena ni za kakve pogreške. Bolje je biti vrlo pažljiv kako bi se izbjegli popravci koji gutaju vrijeme.

Plavi nema ego koji treba napuhivati i odmah će prozreti vaše pokušajte da upakirate kritiku koju mu zapravo želite uputiti. Zato se držite činjenica.

Usto morate zapamtiti i da će Plavi, premda je jako teško uspjeti u tome da povratne informacije dopru do njega i da ih prihvati, istodobno spremno kritizirati druge. Sjetite se da on vidi sve pogreške koje drugi rade i može vam ukazati na vaše pogreške kad to najmanje očekujete. Ne zato što je otvoreno osvetoljubiv, nego zato što ste jednostavno zabrljali.

Raširena je zabluda da Plavi nisu u stanju donositi odluke, jer to zapravo nije točno. .. U načelu su iznimno oprezni i sigurnost im je često na prvom mjestu. Dok bi Crveni ili Žuti bez problema riskirali, Plavi će uvijek pričekati i o svemu još jednom razmisliti.

Metaforički rečeno, Plavi imaju jednako veliku bačvu za pivo kao i Zeleni, ali među njima je jedna presudna razlika. Na dno bačve postavljena je praktična mala slavina koja Plavome služi kao ventil kroz koji može ispustiti dio sadržaja. A ako želi, može i regulirati tlak. … Nezadovoljstvo koje Plavi osjeća iz njega izlazi u obliku sitnoga gunđanja.

Zeleni (opušteni i prijateljski nastrojeni)

Ljubazni su Zeleni ugodno društvo jer su opušteni i vedri. Nažalost, mogu biti pretjerano neodlučni i nejasni. S osobom koja nikad ne zauzima stav naposljetku postane vrlo teško jer s njima nikad ne znate na čemu ste. Neodlučnost ubija energiju u drugim ljudima.

Ostanete li kod kuće, malo što može poći po zlu, zar ne? No Zeleni ne razumiju da mnogi drugi žele nešto raditi. Zelenome se podrazumijeva da svi razmišljaju poput njega i ne diže se s kauča. Zadovoljan je time da ne radi ništa. Sve što ugrožava to gledište postaje prijetnja. A rezultat? Rezultat je još više pasivnosti.

To je paradoks Zelenoga što su planovi veći, njegova je predanost manja. Želi samo mir i tišinu i ništa više od toga.

To je još jedna vještina koja krasi Zelene – držati frustriranost u sebi i osjećati se grozno tako da svi to vide.

Kad se moraju osloboditi pritiska, Zeleni će govoriti o vama iza vaših leđa. … Sve dok misle da mogu umaknuti vašem pogledu, ogovarat će vas iza leđa onako kako nikad ne biste očekivali od Zelenoga.

Sigurnost će uvijek biti važna. Zeleni se doista brine oko svega što bi se moglo dogoditi. Nesigurnost mu se nimalo ne sviđa.

Zeleni ne želi biti nigdje gdje je previše nesigurno. Teži isključivo stabilnosti i ne želi znati ništa o ludom kockanju.

Zeleni koje sam tijekom godina upoznao u svojoj ulozi trenera rekli su mi da ih sve te potencijalne opasnosti u većoj ili manjoj mjeri paraliziraju. Ne uspijevaju pronaći izlaz iz svojih kaotičnih razmišljanja o rizicima i grozotama. Kao da posve izgube moć djelovanja. A budući da nemaju potrebu smišljati stvari koje će raditi, mnogo je lakše jednostavno ostati kod kuće. Kod kuće kraj ognjišta gdje je lijepo i sigurno.

Oni koji su prije više od stotinu godina emigrirali u Ameriku sigurno nisu bili Zeleni. Zeleni se nikad ne bi ukrcali u brod jer tko zna što bi se moglo dogiditi na putu? A čak i ako prežive putovanje na drugu stranu svijeta, tko može sa sigurnošću reći da će vas ondje dočekati mjesto pogodno za život? … Zamislite da dođete tamo i budete još očajniji nego što ste bili kod kuće? Kod kuće barem znate što imate, a nemate pojma što biste mogli dobiti ako odete.

Ništa nije preveliko da se ne bi moglo ignorirati. Proaktivnost i motiviranost te aktivan stil života – sve te stvari narušavaju mir. I Zeleni time neće biti oduševljen. Neće biti nimalo sretan ako stalno smišljate nove aktivnosti.

Ne sviđaju im se vikendi s prenatrpanim rasporedom. Posjetiti punicu, organizirati piknik, odvesti sina na nogometni trening, očistiti garažu, pozvati susjede na večeru – Zelenome sve postaje teret, a naposljetku često završi tako da ne obavi ništa od onoga što je planirao. Zeleni sklizne ispod radara i posve nestane. Trebaju mu mir i tišina da bi bio u stanju raditi ono u čemu je najbolji. Od mira i tišine osjeća se dobro.

Stabilnost i predvidljivost su za Zelenoga iznimno vrijedni sastojci.

Čim se rasplamsa rasprava ili se namrštite u pogrešnome trenutku, Zeleni se odmah povlači. Sve bi moglo biti potencijalni sukob, a za Zelene je to vrlo loše stanje. Zatvore se u sebe, utihnu i postanu pasivni.

Kritiziranje Zelenoga može biti okrutno. Osjećat će se loše i neće više htjeti sudjelovati ni u čemu. U načelu imaju slabiji ego koji je često i vrlo samokritičan.

Mnogi Zeleni tumaraju kroz život sa željom da su brojne stvari drugačije. Ali rijetko imaju motivaciju učiniti nešto glede toga. I samo nastave biti nezadovoljni.

Zeleni bih temperament usporedio sa 400-litrenom pivskom bačvom. … Većina Zelenih funkcionira upravo tako. Primaju i prihvaćaju i nikad se ne bune. … Znači li to da nemaju mišljenje? Nikako. Zeleni imaju mišljenje o svemu i svačemu, baš kao i svi ostali. Samo ne govore o njemu. A to je često problem. Pune tu bačvu. Iz tjedna u tjedan Zeleni prihvaća jednu zamijećenu nepravdu za drugom – obratite pozornost na to da sam rekao zamijećenu. Može potrajati i nekoliko godina dok se bačva ne napuni.

Postane vrlo rezerviran i gotovo bezosjećajan. Govor tijela postane mu krut i zatvoren, a ako ste vi uzrok njegova stresa, jasno će vam pokazati da ne želi imati ništa s vama. Ima čak i Zelenih koji pokazuju snažnu apatiju. Postanu hladni i nezainteresirani, čak i prema ljudima do kojih im je u normalnim okolnostima jako stalo.

Knjige koje sam pročitao tijekom 2022. godine [2/n]

U ovom ću blog postu kronološki navesti knjige koje sam pročitao tijekom 2022. godine. Isto sam napravio 2015., 2017., 2018. i 2021.

1.) Peer Reviews in Software: A Practical Guide – Karl Wiegers [4/5]

Vrlo zanimljiva knjiga koja može poslužiti kao smjernica za uvođenje peer review programa u proces razvoja softvera. Kako navodi autor, dalje sve ovisi o specifičnim potrebama organizacije koja uvodi novi proces.

Kao i kod drugih vrsta promjena stvara se otpor, a ova knjiga na praktičan način donosi potencijalna rješenja kako taj otpor savladati. Niti od najboljeg procesa neće biti koristi ako ljudi koji bi to trebali provoditi nisu spremni na promjenu ili joj se aktivno protive.

Keep in mind that the ROI will be zero if poorly executed reviews don’t find bugs, if the bugs they do reveal aren’t corrected, or if your team doesn’t actually hold reviews after you invest in peer review training and process development.

2.) Okruženi idiotima – Thomas Erikson [4/5]

Prema autoru knjige i korištenoj DISC metodologiji ljudi svrstani u 4 kategorije. Svaki čitatelj se može pronaći u nekoj od boja ili više njih. Dobra knjiga koja može poslužiti kao uvod u detaljnije istraživanje sličnosti i razlika među ljudima i olakšati međusobnu komunikaciju i suradnju.

Svi moramo poraditi na svojoj fleksibilnosti i biti u stanju mijenjati svoj stil komuniciranja, prilagođavati ga u razgovoru ljudima koji su drugačiji od nas. … Ponašanje je poput mjenjača u automobilu. Potrebni su svi tipovi. Jer kao i mjenjač, brzina može katkad biti dobra, a katkad pogrešna.

Autor naslovne slike: congerdesign

Citati iz knjige “Peer Reviews in Software – Karl E. Wiegers”

Vrlo zanimljiva knjiga koja može poslužiti kao smjernica za uvođenje peer review programa u proces razvoja softvera. Kako navodi autor, dalje sve ovisi o specifičnim potrebama organizacije koja uvodi novi proces.

Kao i kod drugih vrsta promjena stvara se otpor, a ova knjiga na praktičan način donosi potencijalna rješenja kako taj otpor savladati. Niti od najboljeg procesa neće biti koristi ako ljudi koji bi to trebali provoditi nisu spremni na promjenu ili joj se aktivno protive.

Code review je definitivno dobra praksa i svi iz toga mogu samo naučiti.

Ovo je samo jedna od knjiga koju sam pročitao tijekom 2022. godine.

[1] The Quality Challenge

Often you are too close to your own work to spot errors you’ve made.

You need a fresh perspective -a pair of eyes that hasn’t seen the code before and a brain that thinks in a different way.

Looking Over the Shoulder

The term ‘peer review’ is sometimes misinterpreted to mean that people are evaluating a coworker’s performance. Not so – the point of any peer review is to critique a work product, not the individual who created it.

Quality Isn’t Quite Free

Reviews don’t slow the project – defects do.

Reviews are waste of time only if your work products do not contain defects the reviews could find.

The defects are there whether you look for them or not; it’s just a question of how much it will cost to fix them when they finally raise their ugly heads.

It is cheaper to prevent defects than to remove them after you have completed implementation or shipped the product.

If the cost of establishing and sustaining a review program, training your team, and holding reviews (the investment) is less than what you save through reduced rework and enhanced customer satisfaction (the return), you come out ahead.

A common perception is that peer reviews are a luxury that schedule-driven projects cannot afford. Yes, reviews take time, but whether they take too much time is a business issue.

‘Good enough’ quality means the product must be good enough for the customer to willingly use it more than once.

[2] A Little Help from Your Friends

If you’re going to hold successful peer reviews, you have to overcome this natural resistance to outside critique of your work.

Scratch Each Other’s Back

Egoless programming addresses the fact that people tie much of their perception of self-worth to their work. You can interpret a fault someone finds in an item you created as a shortcoming in yourself as a software developer – and perhaps even as a human being.

Reviews and Team Culture

Reviews can result in two undesirable attitudes… Some people become lax in their work because they’re relying on someone else to find their mistakes, just as some programmers expect testers to catch their errors. The other extreme to avoid is the temptation to perfect the product before you allow another pair of eyes to see it.

Reviewers should thoughtfully select the words they use to raise an issue, focusing on what they observed about the product.

To accelerate this culture change, managers should encourage and reward those who initially participate in reviews, regardless of the review outcome.

The attitude and behavior that managers exhibit towards reviews affect how well the reviews will work in an organization.

If reviews aren’t planned, they won’t happen.

Without visible and sustained commitment to peer reviews from managers, only those practitioners who believe reviews are important will perform them.

A dangerous situation arises when a manager wishes to use data collected from peer reviews to assess the performance of the authors.

Software metrics must never be used to reward or penalize individuals.

Factors that contribute to the underuse of reviews include lack of knowledge about reviews, cultural issues, and simple resistance to change, often masquerading as excuses.

People who don’t want to do reviews will expend considerable energy trying to explain why reviews don’t fit their culture, needs, or time constraints.

Four cultural paradigms found in software organizations: closed, open, synchronous, and random.

Guiding Principles for Reviews

All peer reviews should follow several basic principles:
– check your egos at the door
– keep the review team small
– find problems during reviews, but don’t try to solve them
– limit review meetings to about two hours
– require advance preparation

[3] Peer Review Formality Spectrum

Several kinds of peer reviews that span a range of formality and rigor.

The Formality Spectrum

I recommend that you begin performing inspections at the outset to gain experience so you can judge when a less formal review approach is appropriate and when it is not.

An inspection is the most systematic and rigorous type of review.

Inspection has been identified as a software industry best practice.

An important aspect of an inspection is that participants other than the work product’s author lead the meeting.

Inspections are especially important for high-risk products that must be as free of defects as possible.

Team reviews are a type of ‘inspection-lite’, being planned and structured but less formal and less rigorous than inspection. … The author might lead a team review, whereas in an inspection the author is not permitted to serve as the moderator.

A walkthrough is an informal review in which the author of a work product describes the product to a group of peers and solicits comments.

Walkthroughs are informal because they typically do not follow a defined procedure, do not specify exit criteria, require no management reporting, and generate no metrics.

Authors can use walkthroughs to test their ideas, brainstorm alternative solutions, and stimulate the creative aspects of the development process.

In pair programming, two developers work on the same program simultaneously at a single workstation.

Pair programming is not specifically a review technique. Instead, it is a software development strategy that relies on the synergy of two focused minds to create products superior in design, execution, and quality.

Peer desk check – infrequent compilations to find errors in the hope of ensuring a clean execution.

A desk check is a kind of self-review, not a peer review.

In a peer desk check (also known as a buddy check and pair reviewing), only one person besides the author examines the work product.

A peer desk check depends entirely on the single reviewer’s knowledge, skill, and self-discipline, so expect wide variability in results.

The peer desk check is the cheapest review approach.

A passaround or distribution is a multiple, concurrent peer desk check. Instead of asking just one colleague for input, the author delivers a copy of the product to several people and collates their feedback.

Ad hoc reviews are the most informal type of review, having little impact beyond solving the immediate problem.

One way to select the most appropriate review method for a given situation is to consider risk: the likelihood that a work product contains defects and the potential for damage if it does.

[4] The Inspection Process

Inspector Roles

The most obvious role is that of the author, also called the producer or owner. The author usually created the work product being inspected, although he might be maintaining a product that someone else created.

The moderator works with the author to plan the inspection, keeps the meetings on track, and leads the inspection team to a successful outcome.

The reader (also known as the presenter) describes to the other participants the material being inspected during the inspection meeting. Logging the defects, issues, and comments raised during the meeting is the job of the recorder or scribe.

A fundamental characteristic of inspection is that the author is not permitted to serve as the moderator, reader, or recorder.

Although the author knows more about the product than anyone else does, he is too close to it to be objective. It’s hard for the author to remain egoless if he is controlling the inspection meeting or presenting the material to the other participants.

The reader typically paraphrases the work product, stating his interpretation in his own words.

The reader’s interpretation often reveals ambiguities, hidden assumptions, inadequate documentation, style problems that hamper communication, or outright errors.

Reading also gives at least one other inspector – the reader – a good understanding of the author’s work.

Rotate the reader role among your team members from one inspection to the next to share the burden of preparing for this challenging function.

Inspection Team Size

Keep your inspection teams small, between three and seven participants in most situations.

If the team is too large, distracting side discussions are likely to erupt.

The more people involved, the harder it is to schedule a meeting.

Inspection Process Stages

The author initiates planning by announcing that a deliverable will be soon ready for inspection.

The moderator is responsible for inviting the other participants.

The overview is typically conducted through an informal meeting in which the author describes the important features, assumptions, background, and context of the work product.

Defect detection begins during the individual preparation stage.

During the meeting, the reader describes the work product to the rest of the inspection team, one small portion at a time.

Issue log is the primary deliverable from the inspection meeting.

The next step is for the author to address each item on the issue log. The moderator might assign certain issues that arise during the meeting to people other than the author for resolution.

Typically, the moderator or another designed individual (the verifier) meets with the author to ensure that all issues and defects were resolved appropriately.

As with the other inspection activities, casual analysis is intended to explore shortcomings in the software development processes the team is using, not in the performance of individual team members.

Variations on the Inspection Theme

Measurement is a critical element of their inspection technique because it aids in determining and maximizing the return on investment from inspection.

Defect prevention is the ultimate reward from an inspection program.

Properly practiced, any inspection technique will give your team substantial improvements in quality, productivity, and knowledge exchange.

[5] Planning the Inspection

The first issue is to decide whether you really need an inspection.

When to Hold Inspections

Plan to inspect a work product when it reaches a completion milestone and is ready to be passed on to the next development step.

One company that began inspecting requirements specifications found that many inspection issues were questions of scope: does a specific requirement even belong in the product? If you resolve scope issues early in the project, people won’t waste time implementing unnecessary requirements.

The inspection Moderator

All of your team members should become comfortable with performing the roles of inspector, author, recorder, and reader. The moderator role, however, is more specialized.

The moderator plays a vital role in an effective inspection.

Avoid using nontechnical meeting facilitators to moderate inspections.

Also, do not allow anyone in the author’s management chain to moderate an inspection.

Selecting the Material

During the planning stage, the author and moderator decide whether to examine the entire deliverable or just selected portions.

Guidelines for choosing the artifacts to inspect:
– Fundamental and early-stage documents, such as requirements specifications and prototypes
– Documents on which critical decisions are based, such as architectural models that define the interfaces between major system components
– The parts you aren’t sure how to do, such as modules that implement unfamiliar or complex algorithms or enforce complicated business rules and other areas in which the developers lack experience or knowledge
– Components that will be used repeatedly

Inspection Entry Criteria

Entry criteria state the conditions that must be satisfied before you can execute a process with confidence of success.

One general entry criterion is that all participants have been trained in the inspection process.

For a reinspection, all issues from the previous inspection must have been resolved.

Assembling the Cast

Because inspections encompass both technical and social aspects, the success of an inspection depends heavily on who participates.

If you’re going to establish a successful inspection program in your organization, every team member must participate.

Consider whether interpersonal issues might inhibit the ability of certain individuals to inspect a particular author’s work.

The conventional wisdom is that managers may not inspect deliverables created by people who report to them. The rationale behind this restriction is that managers will be tempted to evaluate authors, even subconsciously, based on defects identified during the inspection.

Limit the presence of observers who do not actively contribute to the inspection. Observers increase the inspection’s cost while adding no value to the product.

The Inspection Package

The author should freeze the work product so it doesn’t change prior to the inspection meeting.

Inspection Rates

The more material the team covered in an hour, the fewer defects were discovered per page.

A single inspection meeting should not last more than about two hours.

Schedulig Inspection Events

Rather than using a fixed inspection schedule, allocate a portion of each week’s planned effort for inspections on an average basis, recognizing that some weeks will be busier than others.

[6] Examining the Work Product

The Overview Stage

The overview stage brings all inspection participants up to speed on the scope, purpose, context, history, and rationale of the initial deliverable.

The overview often is conducted as a meeting of 30 to 60 minutes in duration, which the author leads.

The primary goal of the overview is education.

The Preparation Stage

During preparation, all inspectors first read through the deliverable to make sure they understand it.

Preparation is especially critical for the reader and the recorder.

Preparation Approaches

The moderator can assign certain preparation objectives to specific inspectors to exploit their specialized technical knowledge or to ensure that all checklist items are addressed.

You don’t want everyone to look closely at the first one-third of a large work product, a few to get to the middle third, and just one stalwart inspector to flip through the final portion.

One disadvantage of having inspectors prepare in different ways is that you must rely on all of them to prepare effectively because there is no redundancy on which to fall back.

Checklists that identify typical defects found in various software work products are an important part of an organization’s inspection infrastructure.

Checklists are usually written in the form of questions for the inspector to ask about the deliverable he is examining, grouped into logical categories.

Rule sets provide an objective way for an inspector to judge whether a work product is correct and complete. Rule violations are defects.

Selecting appropriate analysis techniques from a palette of options is more powerful than always using checklist or just reading through the work product.

Evaluating requirements for testability reveals incomplete, ambiguous, and inconsistent requirements.

Perspective-based reading (PBR) defines steps that inspectors can follow when reading a specific type of document to improve their understanding of it and look for problems.

Scenarios are procedures that help inspectors find specific types of defects, such as missing requirements, inconsistencies, ambiguities, or incorrect functionality.

Missing requirements are among the most difficult requirement problems to detect.

An inspection that identifies unnecessary requirements pays for itself by reducing the project’s development effort.

Inspections can be applied to screenshots, prototypes, paper prototypes, and user interface architecture dedigns such as dialog maps.

Rather than reading sequentially through the code listing, inspectors traverse the hierarchical structure of the code, following function calls down the call tree as they are encountered.

[7] Putting Your Heads Together

The Moderator’s Role

The moderator leads the inspection meeting and plays a major part in a successful inspection.

Launching the Meeting

If the moderator judges that some participants are not properly prepared, he has the authority – and the responsibility – to reschedule the meeting.

The moderator should follow up with inspectors who did not submit any defects. If those inspectors didn’t prepare, either they do not attend the inspection meeting or the moderator reschedules the meeting for a later date.

Conducting the Meeting

Inspection meetings are draining and stressful, even when performed professionally by experienced participants.

During preparation, the reader chooses the most effective sequence and technique for presenting the material being inspected.

The moderator should watch the participant’s body language. A furrowed brow suggests that an inspector is confused or is contemplating making a comment.

Check the body language to see if the inspectors seem to be tuning out, tapping their feet in irritation, or displaying that „come on, let’s move along!“ facial expression.

Most commonly, the reader pauses briefly after presenting each section of material to permit inspectors to offer comments.

An alternative is to use a round-robin approach, asking each inspector in turn for his observation after the reader has presented each section.

[8] Bringing Closure

The Rework Stage

The author must address every issue on the inspection issue log and typo lists received from the inspectors.

The Follow-Up Stage

One purpose of follow-up is to verify that the author resolved all open issues from the inspection meeting appropriately.

Tracking inspection issues to closure is a characteristic of a mature inspection process.

A second objective of follow-up is to determine that the changes made in the initial deliverable were made correctly, without introducing secondary defects.

Inspection Exit Criteria

When you reach this point of stability in your inspections and your development processes, you can predict approximately how much material you can inspect per hour and how many defects you are likely to find.

[9] Analyzing Inspection Data

Why Collect Data?

Data answers important questions, provides quantifiable insights and historical perspective, and lets you base decisions on facts instead of perceptions or memories.

Don’t make your measurement process so elaborate that it inhibits the inspections themselves. Establishing a peer review culture and finding bugs is more important than meticulously recording masses of data.

Some Measurement Caveats

The first time a practitioner is punished for some data he reported is the last time the manager will get accurate data. Word of such misuse of the data spreads quickly among the other team members.

Beware the phenomenon known as measurement dysfunction. Measurement dysfunction arises when the measurement process or the ways in which managers use the data lead to counterproductive behaviors by the people providing the data.

Measuring the Impact of Inspections

A general heuristic is that each major defect that is not found by inspection requires an average of about nine to ten hours to correct later on.

[10] Installing a Peer Review Program

Simply knowing the mechanics of inspections and other types of peer review doesn’t guarantee that everyone will perform them routinely or effectively.

The Peer Review Process Owner

Look for a manager who strongly believes in reviews and is willing to devote energy to making the program succeed.

If no one has responsibility for adjusting the process, improvements won’t be made when the early adopters encounter problems.

Prepairing the Organization

Expect to hear, „We’re already too busy; we don’t have time for reviews,“ both as a genuine concern and as a sign of resistance.

Don’t waste a lot of energy trying to convert people who aren’t going to be willing review participants no matter what you say or do. The train is coming through; they can get on board or get out of the way.

Establishing and sustaining a new process in a software organization. First, you need a documented process.

If you’re serious about incorporating reviews into routine use, issue a written review policy.

A policy without accountability is merely a suggestion.

A meaningful policy demands management commitment at all levels. If your project manager isn’t interested in reviews despite the organizational policy, you’ll conduct reviews only if they are personally important to you.

The bottom line from any process improvement effort is that the team members apply the new practices routinely, not just when it is convenient or when someone reminds them.

Process Assets

Don’t expect your team members to perform peer reviews effectively unless they have a written process description and supporting work aids, collectively termed process assets.

At a minimum, start with one review procedure and the basic review forms.

Rather than trying to devise the ultimate review process right out of the gate, start with a non-intimidating process that provides a solid foundation on which your review program can grow.

The Peer Review Coordinator

Organizations should identify an individual to coordinate the program on a day-to-day basis.

The ideal peer review coordinator is an experienced inspector and moderator who thoroughly understands the technical and social aspects of reviews.

Moderators give him the size, time, effort, and defect data from their inspections, and he generates summary reports and analyzes the metrics. Based on this data analyzis, the coordinator offers process improvement suggestions.

Peer Review Training

It’s demoralizing for developers to walk out of a seminar motivated to use new software practices, only to face resistance from a manager who doesn’t understand or value the new techniques.

Piloting the Review Process

New processes that look good on paper often require adjustment in practice.

[11] Making Peer Reviews Work for You

Weaving peer reviews into the cultural fabric of an organization takes time.

Critical Success Factors

The people involved and their attitude toward quality are the greatest contributions to a review program’s success.

Even motivated team members will struggle to perform reviews if you don’t obtain management commitment.

Critical elements:
– Train reviewers and review leaders
– Allocate time in the project plan for reviews and rework
– Set goals for the review program
– Identify a review champion
– Review early and often, formally and informally
– Analyze your early reviews

Review Traps to Avoid

Participants don’t understand the review process.

The review process isn’t followed.

The right people do not participate.

Review meetings drift into problem-solving.

Reviewers focus on style, not substance.

Troubleshooting Review Problems

People who strongly oppose the review program can damage it, but don’t be held captive by the most recalcitrant members of your organization. If managers and opinion leaders instill pride of craftsmanship and an appreciation of software engineering best practices in the organization, most team members will give reviews a try.

[12] Special Review Challenges

Large Work Products

To get the greatest return from your review investment, use risk analysis to identify the components in which undetected errors could cause the greatest future problems.

Sampling portions of a large work product provides an indication of its overall quality and helps you judge whether it’s worth looking carefully at more than just a few pages.

Generated and Nonprocedural Code

There is little point in manually reviewing code generated by graphical user interface builders, visual development tools, and the like.

Too Many Participants

Sometimes people invite themselves to inspections for political or managerial, not technical reasons.

12 knjiga koje sam pročitao tijekom 2021. godine

U ovom ću blog postu kronološki navesti knjige koje sam pročitao tijekom 2021. godine. Isto sam napravio 2015., 2017. i 2018.

Prošle i pretprošle godine nažalost nisam pročitao onoliko knjiga koliko sam htio pa nisam niti objavio blog post s popisom. Da se to opet ne bi dogodilo odlučio sam svaki dan, bez iznimke, čitati knjigu barem 15 minuta. Neke imam u fizičkom obliku, a druge su digitalne na Kindleu. 15 minuta je dovoljno kratko ako mi se nekada baš ne bude dalo čitati, a dovoljno dugo da me neka zanimljiva knjiga privuče pa produžim čitanje na X * 15 minuta.

Popis ću nadopunjavati kako pročitam neku knjigu.

1.) Slonica koja je izgubila sreću – Ajahn Brahm [5/5]

Knjiga se sastoji od 108 inspirativnih priča budističkog redovnika. U njima se svatko može pronaći i uvijek im se vratiti. Ovo je nastavak knjige “Krava koja je plakala” koju ću tek pročitati i već vidim da ću uživati.

#1 – Stvar s bananama nije ni izdaleka tako banalna. Toliko su prisutne u svakodnevnici da mislimo kako znamo sve o njima. A zapravo ne znamo ni kako ih oguliti! Većina ljudi započinje guliti bananu od stabljike. Međutim, majmuni koji su stručnjaci po pitanju banana, uvijek drže bananu za stabljiku i gule je sa suprotnog kraja. Pokušajte i uvjerite se. Vidjet ćete da je to mnogo lakše “majmunskom metodom”.
Isto tako, budistički redovnici i redovnice stručnjaci su u odvajanju uma od teškoća koje ga okružuju. Pozivam vas da slijedite “redovničku metodu” suočavanja sa životnim problemima. Poput guljenja banane, život će vam postati jednostavniji.

2.) Krava koja je plakala – Ajahn Brahm [5/5]

Ovo je prva knjiga iz serijala o budustičkim pričama. Sadržajno je jednaka gornjoj knjizi koja je zapravo nastavak ove knjige.

#1 – Zašto smo uvjereni da najprije moramo naporno raditi i steći bogatstvo, a tek onda pronaći zadovoljstvo u životu?

#2 – Svako mjesto na kojem ne želite biti, bez obzira na udobnost, za vas je zatvor. Ako radite posao koji ne želite raditi, tada ste u zatvoru. Ako ste u vezi u kojoj ne želite biti isto tako ste u zatvoru. Sloboda znači biti zadovoljan tamo gdje jesi. Zatvor znači željeti biti negdje drugdje.

#3 – Ako mislite da ćete biti sretni kada postanete netko drugi, tada se varate. Postati netko drugi samo znači zamijeniti jednu vrstu patnje drugom. No, ako ste zadovoljni onim što ste i tko ste sada, mlad ili star, oženjen ili samac, bogat ili siromašan, tada ste oslobođeni patnje.

3.) Trump 101: The Way to Success – Donald J. Trump, Meredith McIver [4/5]

Trump mi je postao zanimljiv još od prve sezone showaThe Apprentice“. Zapravo, prije nisam niti znao za njega. Bilo mi je zanimljivo čitati o njegovom projektu “Trump University” o kojemu, ako sada “guglate”, možete pronaći neke vrlo “škakljive” informacije. Puno projekata je pokrenuo i ovaj mu nije prošao. Siguran sam da je iz toga nešto naučio.

Knjige daje uvid u njegov način razmišljanja, a sastoji se od kratkih poglavlja od kojih svako nosi vrlo konkretnu poruku. Sve ono što je Trump naučio kroz život i posao sažeto je u ovoj knjizi. Nije to ništa revolucionarno i zapravo je sve vrlo logično, ali je lijepo sve vidjeti na jednom mjestu i povremeno ‘prelistati’.

#1 – Understand that difficulties, mistakes, and setbacks are inevitable part of business and life. No matter how well you plan and how hard you work, things always change and require you to react.

#2 – You also have to learn when to quit and when to move forward. Since everyone makes mistakes, try to be understanding when other people fail. Don’t immediately give up on them; you wouldn’t want others to write you off without a fair chance.

#3 – Courage isn’t the absence of fear; it’s the conquering of fear. Just because people appear confident doesn’t mean that they are not afraid.

#4 – When things go wrong, look at yourself first. Don’t instinctively blame others of the circumstances.

#5 – A fine line exists between bravery and stupidity. Check out the tides, test the water, and know what you’re getting into before you dive in.

36 – Positive thinking isn’t always enough. In addition to being positive, you must be persistent.

#7 – Many people are afraid to fail, so they don’t try. They may dream, talk, and even plan, but they don’t take that critical step of putting their money and their effort on the line. To succeed in business, you must take risk. Even if you fail, that’s how you learn.

4.) The Cash Machine – Dave Mason, Chana Mason [3/5]

Ovo nije klasična knjiga o financijama, ali može biti odličan početak na putu učenja. U noveli se prati život dvoje glavnih likova kroz čije je priče moguće pokupiti smjernice za izgradnju dobre financijske budućnosti.

#1 – Without a goal, how can you possibly know if you’re moving toward it or not?

#2 – How you deal with money doesn’t change with how much you make.

#3 – The first thing to know with fishing, as with life, is what game you’re going after. Only then can you choose the right location and bait.

#4 – I shouldn’t ask what I’d do when I retire. I ought to ask myself what I’d do if I knew I could never retire.

#5 – There are literally millions of paths regarding money, and each of us can choose the one that appeals to us most. But to make responsible choices, we need financial literacy and education.

#6 – This book is not a blueprint for achieving wealth—it’s more like a treasure map. You’ll no doubt need more research before implementing these strategies, but I hope I’ve shown you where to dig.

5.) The Richest Man in Babylon – George S. Clason [4/5]

Ovu knjigu bi nazvao Biblijom financija i dijelom opće financijske kulture. Sastoji se od priča koje su univerzalne.

Sadržaj knjige temelji se na tzv. pet zakona zlata:
1.) Štedjeti 10% od svih primanja.
2.) Omogućiti novcu da se množi.
3.) Čuvati novac od gubitka.
4.) Ulagati samo u ono što nam je poznato.
5.) Ne pouzdati se da će netko drugi bolje upravljati našim novcem od nas.

#1 – The spirit of procrastination is within all men. We desire riches; yet, how often when opportunity doth appears before us, that spirit of procrastination from within doth urge various delays in out acceptance.

#2 – Opportunities came to all these men. Some grasped theirs and moved steadily to the gratification of their deepest desires, but the majority hesitated, faltered and fell behind.

#4 – Good luck can be enticed by accepting opportunity.

#5 – Wealth that comes quickly goeth the same way.

#6 – If you desire to help thy friend, do so in a way that will not bring thy friend’s burdens upon thyselfs.

#7 – But help must be given wisely, lest, like the farmer’s ass, in our desire to help we but take upon ourselves the burden that belongs to another.

#8 – Three years I have labored each day except fast days, from morning unitl night, and I have denied myself many things that my heart craved. For each year of labor and self-denial I have to show one piece of gold. …. Therefore, I will no longer lend any of it where I am not confident that it is safe and will be returned to me. Neither will I lend it where I am not convinced that its earnings will be promptly paid to me.

#9 – In the day, behind the impregnable walls of insurance, savings accounts and dependable investments, we can guard ourselves against the unexpected tragedies that may enter any door and seat themselves before any fireside.

#10 – The hunger one becomes, the clearer one’s mind works.

#11 – Ill fortune! Wouldst blame the gods for thine own weakness. Ill fortune pursues every man who thinks more of borrowing than of repaying.

#12 -We found the trail to Babylon because the soul of a free man looks at life as a series of problems to be solved and solves them, while the soul of a slave whines, “What can I do who am but a slave?”

#13 – Where the determination is, the way can be found.

#14 – I like to work and I like to do good work, for work is the best friend I’ve ever known. It has brought me all the good things I’ve had, my farm and cows and crops, everything.

#15 – …how valuable work would be to me in the future: Some men hate it. They make it their enemy. Better to treat it like a friend, make yourself like it. Don’t mind because it is hard. … Remember, work, well-done, does good to the man who does it. It makes him a better man.

6.) 12 pravila za život: protuotrov kaosu – Jordan B. Peterson [5/5]

Odlična knjiga koju bi svima preporučio. Pravila koja ćete u njoj pronaći nisu magično rješenje svakodnevnih životnih problema, ali mogu dati dobre smjernice i što je najvažnije – mogu vam na nov način objasniti neke od univerzalnih životnih izazova. U posebnom blog postu donosim više citata.

Ostavio sam iza sebe dobar dio svoje prošlosti. U malenu mjestu svatko zna tko si. Vučeš za sobom svoje godine poput psa koji trči s limenkama zavezanima za rep. Ne možeš umaći onome što si bio.

7.) Željko Malnar: Put Aleksandra Velikog – Hassan Haidar Diab [3/5]

Sa tek 64 stranice ovo je više priča nego knjiga. Moram priznati da me razočara sve što ima ispod 200 stranica kvalitetnog sadržaja. Ipak, za sve koje zanima lik i djelo Željka Malnara ova knjižica biti će dobar uvid u jedno od njegovih putovanja. Cijelu knjigu njezin autor je prepričao gostujući u Podcast Inkubatoru.

Trenutno mi prigovaraju da sam jugoslavenski orijentiran, ali ja to nisam, ja sam Hrvat, rođeni Zagrepčanin i to ću uvijek biti. Osim toga, ja sam svjetski čovjek i želim učiniti nešto za Hrvatsku što će je uvesti u svjetsku kulturu. To će biti najveća ekspedicija na svijetu. Radit ću u ime svoje filozofije i za svoju zemlju. Bit ću ambasador koji će na svojem putu tumačiti svijetu situaciju u Hrvatskoj. Ovaj put može biti moj neki budući kraj, no ja želim postati vječnost.

8.) Izvan reda: još 12 pravila za život – Jordan B. Peterson [3/5]

Ova me se knjiga definitivno nije dojmila kao prva. Nisam se u njoj toliko pronašao niti sam imao osjećaj da se obraća meni. Ocjena koju sam dao ocjenjuje knjigu, a ne autora jer bi u suprotnom vjerovatno dao veću ocjenu. Neke ideje su reciklirane iz prve knjige na način koji mi nije toliko “sjeo”. Više citata iz knige u posebnom blog postu.

Zadajte si nekakav cilj. Izaberite ono najbolje što trenutno možete zamisliti. Bezglavo se tome posvetite. Putem uočavajte svoje pogreške i zablude, suočavajte se s njima i ispravljajte ih.

9.) Pojedi tu žabu – Brian Tracy [2/5]

Knjiga je definitivno mogla biti svedena na nekoliko Power Point slajdova. Naći ćete u njoj 21 natuknicu o načinima kako postići maksimalnu produktivnost, ali postoje puno bolje i detaljnije knjige o toj temi.

Ključ ostvarivanja visokih rezultata poslovanja i produktivnosti jeste stjecanje doživotne navike da se svakog jutra prvo uhvatite izvršenja najvažnije obaveze koju imate. Morate da naučite da rutinski “pojedete svoju žabu” prije no što napravite bilo što drugo i ne trošeći suviše vremena na razmišljanje o tome.

10.) The Millionaire Next Door – Thomas J. Stanley, William D. Danko [4/5]

Ova mi je knjiga dala nešto drugo od onoga što sam očekivao. Definitivno sam imao drugačiji pogled na tipičnog milijanaša. Svidjelo mi se kako autori kroz cijelu knjigu povlače paralelu između nekoga tko se samo prikazuje kao milijunaš od onoga tko to stvarno je.

Zanimljivo je koliko zapravo roditelji mogu odmoći svojoj, odrasloj, djeci ako ih nastave godinama financijski pokrivati. I onda jednom kada roditeljski priljev novca presuši dođe do problema jer se “djeca” nisu naučila brinuti sama o sebi i svojim obiteljima.

#1 – Wealth is not the same as income. If you make a good income each year and spend it all, you are not getting wealthier. You are just living high. Wealth is what you accumulate, not what you spend.

#2 – Most of us want to be wealthy, but most of us do not spend the time, energy, and money required to enhance our chances of realizing this goal.

#3 – Gift receivers … the adult children of the affluent feel that their parent’s wealth/capital is their income. … income to be spent.

#4 – Adult children who receive cash gifts are more likely than other adult children to live in anticipation of the sizable inheritance eventually coming their way.

#5 – People often attempt to shelter their children from the economic realities of life. But such shelter often produce adults who are in constant fear of tomorrow.

11.) Priče za razmišljanje – Jorge Bucay, Željka Somun [2/5]

Znao sam kakav sadržaj mogu očekivati i izgleda da sam imao prevelika očekivanja. Godinu sam htio završiti s knjigom koja će biti “pitka” za čitanje i u kojoj ću uživati tijekom blagdana i godišnjeg odmora. Nakon ove knjige počeo sam čitati i drugu knjigu istog autora pa ćemo vidjeti što će biti.

#1 – Samome sebi rado kažem kako je cijena koju valja platiti, kad konačno uzmognemo reći ne, prilika da ugledamo dosad neviđene vizure naših prijatelja: potiljak, leđa i sve one dijelove koji se vide saom kad netko odlazi.

#2 – Tragač je onaj koji traži, ne nužno onaj koji i nalazi.

12.) Ispričat ću ti priču – Jorge Bucay, Silvana Roglić [4/5]

Super knjiga za završetak kalendarske godine. Jednostavna za čitanje. Vrlo je slična kao prve dvije knjige koje sam pročitao početkom godine. Sastoji se od priča u kojima se svatko može pronaći.

#1 – Kako bi poletio, moraš početi prihvaćati rizik. Ako to ne želiš, najbolje bi bilo predati se i nastaviti hodati zauvijek.

#2 – Sada je napokon znao da je sam, da je to oduvijek bio, da ima samo sebe i sada se mogao smijati ili plakati. .. Ali zbog sebe, a ne zbog drugih. Sada je napokon znao: Njegovo postojanje ne ovisi o drugima. Otkrio je da je morao ostati sam kako bi se mogao suočiti sa samim sobom.

#3 – Gluhi uvijek misle da su oni koji plešu ludi.

Autor naslovne slike: Mystic Art Design

Implementacija CorvusPay kartičnog plaćanja koristeći Node.js, Express.js i Angular

U ovom blog postu možete saznati kako implementirati CorvusPay kartično plaćanje koristeći Node.js tj. Express.js i Angular Framework.

Kartično plaćanje provodi se kroz Corvus Form Service što znači da korisnik nakon odabira artikala bude preusmjeren na URL za autorizaciju kreditne kartice. Na tom URL-u ispunjava se obrazac s potrebnim podacima o kreditnoj kartici nakon čega korisnik ponovno bude preusmjeren na web shop gdje se najčešće prikazuje poruka o ne/uspješnoj kupovini.

Tijek transakcije kroz CorvusPay sustav odvija se na sljedeći način:

  • Kupac u web trgovini odabire proizvod ili uslugu koju želi platiti karticom.
  • Kupac se preusmjerava sa stranice trgovca na CorvusPay platnu formu (stranicu) gdje unosi podatke potrebne za realizaciju kartične transakcije.
  • CorvusPay šalje banci zahtjev za autorizacijom.
  • Banka šalje odgovor na zahtjev za autorizacijom na CorvusPay.
  • CorvusPay preusmjerava kupca na cancel ili success url kojeg definira trgovac ovisno o ishodu transakcije.

Moguća je i integracija tog obrasca unutar web shopa, ali u tom slučaju trgovac mora imati PCI DSS certifikat.

Tijek implementacije

Proces se istovremeno odvija u dva smjera. Prvi se tiče administrativnih poslova u kojima Corvus od trgovca prikuplja potrebnu dokumentaciju za pokretanje procesa aktivacije kartičnog plaćanje koju prosljeđuje prema bankama/kartičnim kućama.

Paralelno trgovac (web shop) postavlja obavezan sadržaj na web trgovinu (uvjeti korištenja i plaćanja, logo CorvusPaya,…), vrši implementaciju prema dostupnim uputama i testira sustav pomoću razvojnog certifikata. Nakon obavljenih testova postavlja se produkcijski certifikat čime se proces implementacije završava.

Uvod

Komunikacija između trgovca i usluge CorvusPay vrši se putem HTTPS POST web zahtjeva.

Svaki web zahtjev prema Corvusu treba obavezno sadržavati tri parametra, a to su:

Store ID
Secret Key
Client Certificate (.p12).

Dobiju se dva seta ovih podataka. Jedan set za testiranje, a drugi za produkciju.

Obavezni CorvusPay parametri

Obavezni parametri su: version, store_id, order_number, language, currency, amount, cart, signature i require_complete.

U slučaju greške pri kreiranju parametara prikazat će se sljedeći ekran:

CorvusPay greška
Vaš zahtjev ne može biti obrađen – CorvusPay

order_number mora biti jedinstven jer sustav će provjeriti i odbiti svaki upit na Corvus API ako narudžba s istim brojem narudžbe već postoji.

signature se kreira koristeći HMAC-SHA256. On se sastoji od svih obaveznih i opcionalnih vrijednosti (key-value field pairs), poredanih abecedno i spojenih bez razmaka.

To onda izgleda ovako:

na osnovu čega se dobije signature

signature = HMAC-256(key, key-value field pairs)

~ ključ: UNV3-i2otJw0rUWzA2lpcNRqTOYRWdAeTw
~ parametri:
– version : 1.3
– store_id : 2029
– order_number : 1537270065109
– amount : 10.00
– currency : HRK
– cart : kindle paperwhite
– require_complete : false
– language : hr

CorvusPay HTTPS POST
CorvusPay Integration Manual v5.1.0

Neobavezni CorvusPay parametri

Osim obaveznih parametara moguće je koristiti i neobavezne. U ovom slučaju to će biti parametri vezani uz plaćanje na rate.

Tri su načina pokretanja transakcije na rate:
• Fiksni broj rata
• Fleksibilan broj rata
• Samostalan odabir rata za određenu karticu

Napomene:
• Ako se za određenu platnu karticu ne pošalje parametar payment_brandName kartica neće biti dostupna za odabir
• Prvi znak parametra payment_ trebao bi biti jednak N ili Y jer to označava je li dozvoljeno jednokratno plaćanje ili ne
• Posljednja četiri znaka određuju raspon broja rata. Kupac može odabrati broj rata u rasponu između prvog dvoznamenkastog broja i drugog dvoznamenkastog broja

CorvusPay plaćanje na rate
CorvusPay Integration Manual v5.1.0

Web aplikacija (Angular)

Unutar forme pomoću POST metode poziva se API za pokretanje kartičnog plaćanja.

Sve navedene vrijednosti su promjenjive tako da ih prilikom svake promjene unutar .ts datoteke treba osvježiti i unutar forme </form>.

Parametri signature i payment_ mogu se kreirati na frontendu i backendu. U ovom slučaju oni će se kreirati na frontendu i prosljeđivati kroz formu na API.

Za potrebu kreiranja HmacSHA256 potpisa koristi se crypto-js. Uz to, unutar environment varijable nalaze se razvojni i produkcijski parametri secretKey i storeId.

Glavna razlika u ovom dijelu tiče se ukupne cijene tj. ovisno o tome prelazi li iznos od 500kn plaćanje na rate biti će odobreno ili onemogućeno. U oba slučaja kreira se različit signature.

Za ukupan iznos veći ili jednak 500kn koristi se sljedeće:

CorvusPay - plaćanje na rate

Dok se za iznose manje od 500kn koristi:

CorvusPay - jednokratno plaćanje

Backend API (Express.js)

Backend logika nalazit će se u server.js datoteci. Kako ju kreirati možete se vidjeti u blog postu “Izrada RESTful API-ja koristeći Node.js i Express.js“. Razlika između primjera iz tog blog posta i ovoga sada je što više nije potrebno koristiti body-parser.

Ova će se datoteka sastojati od tri krajnje točke (API endpoints).

Prva krajnja točka, '/corvusPay', preusmjerit će korisnika na formu za plaćanje.

Nakon unosa i obrade podataka o kartici

CorvusPay - obrada u tijeku
CorvusPay – obrada u tijeku

korisnik je preusmjeren na dodatnu sigurnosnu autentifikaciju kartice.

CorvusPay - sigurnosna autentifikacija kartice
CorvusPay – sigurnosna autentifikacija kartice

Ako je sve prošlo uspješno korisniku će se prikazati obavijest

CorvusPay - transakcija-uspjela
CorvusPay – transakcija uspjela

i na e-mail će dobiti obavijest o uspješnoj narudžbi.

CorvusPay - obavijest o uspješnoj narudžbi
CorvusPay – obavijest o uspješnoj narudžbi

Druga krajnja točka, '/corvusPaySuccess' , prihvaća odgovor od Corvusa kada je plaćanje uspješno provedeno.

CorvusPay - uspješno plaćanje

Treća krajnja točka, '/corvusPayCancel' , prihvaća odgovor od Corvusa kada je plaćanje neuspješno ili otkazano.

CorvusPay - neuspjelo plaćanje