Thursday, June 30, 2016

Leadership 101

I can't remember when i had my a-ha on this, but if you want someone to behave in a certain way, you yourself, have to do it first - also known as the one line t-shirt quote: "lead by example"

Preachers won't last long.



To prove this, i won't give you an example, instead I'll ask you to think of a leader that you appreciated, that you look up to, and one in the opposite corner, the leader you don't want to be. Now, take the phrase i wrote above and see if it matches.

What is leadership for me? It's not giving orders, directions, overviewing or being responsible for the overall project. It's inspiring the team, keeping them focused on the same thing you are, having the same joys on success and ambition on failures.



Joys on success. If you don't enjoy the wins with the team, you'll become an ivory tower leader. To put it simple, when there's a go-out, chances are you won't get invited. (I myself still work on making time to enjoy the wins.. i'll deny the hypocrisy here, and say that i'm a recovering preacher on this one). I'll quote what i've learned on a leadership training as well: people tend to remember the spikes in a relationship. Make sure as a leader you don't let the good ones pass by.

Ambition on failure. I think the easiest game to play is the blame game. It's a natural human behavior to escape punishment at all costs. I think this is when a leader really has to step up.
Bad sprint, under delivering, upset client, production bug, application went down for a whole day, and the list can continue. Sure we need to ensure this won't happen in the future, but it's critical that in the hard times, the team feels they have a leader to steer. During hard times, things can easily go south. The common ground the whole team should be on, is: we can recover!
Not who's to blame, not my job, not my fault, i saw this comming etc. No! We'll recover and we'll make it better.
If you manage to sell this ambition in the team, i think you'll be that inspiring leader to look up to.



A good way to keep the team working together is to have the vision, transparent. A phrase, an icon, a set of values that are emphasized etc.



I'll quote a lead i've read once (might have not been the same word for word): make sure the project's end result is what we all work for!

So i've worked on a large project once, a financial product, massive product. The company did follow these rules, they had a phrase they were using to keep the goal common, but they felt empty (at least to me):

The end result for that project was to deliver a high quality service to the customers, and to provide them with relevant information.
(i've rephrased it not to give away sensitive info)

Did i lose you ? are you asleep already? :))

For the average developer of course this is massive bull crap.

Business: Yo, developer! Do we build quality in our products!?
 Developer: Hell yeah sir!
Business: Yo developer! Do we promote innovation and continuously improve?
Developer: Why every day i may say!
Business: Yo developer! Do we provide the most relevant information on our product??
Developer: Only the best!

:)

These questions are like, if you answer them different than the above, you'll probably get fired! :))

If you've worked on a project, any project IT or other, you know, that each project has it's own challenges! And some are not so easy to fix. Setting silly project goals like that will just promote a religion in the company of never challenging the leadership.

What if i were to rephrase this goal to click better and get the people to literally work WITH the business to achieve the SAME goal, felt be everyone?

I'll give it a shot, and bare with me, it's not about the words or how marketing or business phrased it:

Our project's goal, what we will try to do here, is to improve our code, that may or may not be perfect. To try and build the best user stories we can, considering the business requirement and our existing platform. And let's try to refactor as much as we can as we go, just so that future work will fit better and we will still be in synch with the latest technologies, trends and patterns.

It's almost as i were giving a tour of the project to a new developer that has joined the company.

Business: Yo, developer! If we were to invest more time, do you think we can improve our product?
Developer: Actually, it will require a lot of time! Maybe we can rewrite some ?

Business: Yo, developer! How often do we revisit our frameworks to see if they are obsolete or not?
Developer: Well, not that often.
Business: And how would you see this going further?
Developer: Maybe twice a year on criticals?

Business: How hard was it to deliver the business requirements in your past sprints? Was the platform fit for purpose, or you had to put in crazy hours?
Developer: ... [dev's response irrelevant for my point here]

Do you see the difference in these two examples?

The point is, i can claim we are a team, and that we share our goal via a slide, but it's a totally different thing when you include the people that are in the same team as you, in decisions which frankly are theirs to take!

All of a sudden they'll be more than happy to chip in, as opposed to building features in a product and blaming legacy for any problems that may show.



Ok, different angle now.



So we got the team to work on the same goal, all's good now what?

I tell you something i told every person i've worked with: No matter what field you're working on, anyone can do it! EASY! It's when the going gets tough, that you can actually tell the best of the best!

In terms of leadership, this is critical. If your leader is angry, the team will be angry. If your leader is pushy your team will be pushy (well probably will take the #notmyjob attitude) and so on. It's these hard times that you as a leader have to take a stance and LEAD!

This means both when you as a team are in trouble or when you personally are.

This is what i meant via "joys on success" and "ambition on failures". It's only natural to fail every now and then. The difference is how to handle it. And this goes both for wins! If you never celebrate success, the overall feel will be "well the project was.. ok i guess. but we messed up a few times!".

I'll give you an example that happened to me a while back, for the sake of not diving too deep in the case study, i'll keep this vague. I basically made a decision for the team, that was wrong! It was so wrong that it was escalated to our management and we basically got told off.

Now.. as a leader, as the leader that made the choice, what do i do? It was the whole team that got told off, not just me. Do i push back, and side with the team? Do i side with the business and betray the team?

No.

I showed what else can you do in situations like these, lead by example. It was a mistake I made, but in the name of the whole team. So once I understood why it was a mistake, and how my decision and an impact on our project, I admitted the mistake and made sure I've shared my thoughts with the team also, and why it was wrong. We've all agreed that we'll do things better next time, and how we'll mitigate the challenge next time! (ambition on failures).

Naturally it was not pleasant, and the need to blame someone else was there and probably for everyone in the team (we've had plenty of justifications to play the blame game: "other teams do it!", "it's not that big of a deal", "there wasn't a big impact on the project! (or so we thought)" and so on).

It's your job as a LEADER to mitigate this, and keep the team focused on the same goal, and not fight the business but understand the reasons, and improve.

In our team, we've all learnt to be honest about the wins and the f...-ups. This transparency will lead to a real team effort to mitigate anything, instead of playing a blame game or doing just the required work for a task.

To my surprise what happened next, baffled me. This is the end game prize when talking about leadership material.
I really loved that team, and i know I've given this example before in other presentations I held, but here goes:

It was during the delivery of one of our projects, when i personally had a major challenge to tackle on the project (something that only one person could do), that i saw the team-work this team did. They all stood with me up till 9PM and just trying to help however they could (deploys, regression, etc), even if the actual work was a one man job. No overtime was requested, nobody even considered walking away and I never asked for their help. Yet, we were a team, that had a challenge, and we all did our best.

I was so deeply impressed by their reaction that i always present this example when i talk about leadership! Good job again guys! Excellent team that was!



I honestly believe in this one line t-shirt quote: "be the change". Whenever i tried to change something (let's not say improve, because there are so many way you can do a good job..) and each time it worked, was when i was doing it, or i believed in it so bad, that my passion for that change spread.

You want the team to be transparent? Make sure you don't punish mistakes but praise the lesson learnt!
Lead by example!
You want the team to exceed the quality output? Make sure you praise the behavior of going that extra mile for quality!
Lead by example!
You want to end a conflict? Don't engage in conflicts yourself!
Lead by example!

Happy "trial and error"-ing!



Friday, June 17, 2016

The meaning of life...


I won't make you read 1000 words to give you what you came here for: it's happiness.

That's it.

And i won't babble only on why it's happiness, but also how to do it (from my narrow 33 years old experience point of view - can't wait to see myself reading my blog when im 70)

If you think about it, it's obvious isn't it? You can shed any light you want over it, but in the end it comes down to having a happy life. Now, and tomorrow. With my family and friends. Healthy and full of experiences. With no worries or fears. Or other things that make YOU happy.

Whatever you think you're living for, in the end it's a matter of being happy.


The secret is to always remember, that this is why you live, to be happy.

So, apply a filter to every decision you make: will this make me happy? (not in a selfish way of course, because sometimes your happiness is your family happiness, or your company, or your motorcycle purring :)

And not in a short term win way (like: "smoking makes me happy", but more like if i quit smoking i'll be healthier later and more energetic and less likely to get sick - but hey, maybe for you, smoking is what makes you happy, SO SMOKE! :).

Like gym pain is actually pleasant right? (well.. not for me.. at least not so far.. ) It may be pleasant to some, as it proves you've done a hell of a workout! If that's what matters to you.


Did someone cut in line of your car? Will honking/cursing/fighting make your life any better? If the answer is no, move (your thoughts) along.

It's that moment when you react to a situation (car honk) because "he disrespected me" that you no longer abide to the "happiness goal" (oh and i'm no saint on this one, but i'm working on it :) )

There will be moments, when you feel that you're talking to a wall when expressing a frustration or a change you need to happen. BUT at times, you really shouldn't talk to a wall man.. you see, some people.. are just not worth your time.

Think of it as trying to argue with a group of 10 year old kids, that Superman is better than Batman (i mean of course he is.. if you think otherwise please go away, you and your kryptonite), it's just not worth :)

So if we take another real life example, if you really hate how someone is treating you at work, what do you do? Do you treat them bad as well? Does that make you happy? Will your life be better? How about if you ignore it, it may be an option, like just don't mind the remarks, mind your life, and the things that matter to you. It may work. If even that makes you unhappy, then, maybe this is a trigger to change something. I don't necessarily mean quitting, but taking that attitude to change things to make things better. Notice, i didn't say to hurt the other person, but to change the situation. Remember, your goal is to be happy. This may mean to find a balance somewhere, and make it work.

Let's take another example: maybe you work hard to have money to buy things. Is this "a bad type of happiness"?

NO! We are different, i don't expect my values to be share by others, yet i am trying to see the common ground on all: happiness.

So work hard, and buy those things and enjoy them.


I've met people that were genuine happy. And the values that made them happy, were really far away from mine. And they were fine. They didn't have things which i might have wanted in my life, and they didn't crave them either.



What i really hated is when i saw my parents work really hard, to get money, to be able to buy a better car, a place for us, pay the uni tuition (and i was a bad student.. my tuition was huge.. ) and all for what? I was really watching them struggle every day, and i just couldn't understand why they were doing it.

Well.. for them this was all for us (me and my sis). This is what made them happy, and it still is.

So if you take all your one line t-shirt quotes: "follow your dreams" "carpe diem" "dance like noone is watching" what's the A-HA behind it all?

Be happy.

Don't compromise for one second. You don't buy tomorrow's happiness with it, you sacrifice today's.

Whatever you do, make sure it's what you want, or at least it has a meaning, a higher purpose for you!

If you accept your bad job, your bad salary, your lonely life, your bad habits as a "given of your life", then, my friend, you are your own enemy.

Fix it! Filter things through this lens: happiness.



The simple A-HA i want you to take from this, is that whenever times are rough, or you have to make a tough decision, or others, just balance this out: "is this what will make me happy?".

Maybe helping your family will make you happy, maybe giving to the community, maybe tidying up your desk, maybe playing the guitar, it's not a one size fits all.

But if you find yourself: tired at home,hate your job, "don't have time to do the things you'd like to do (aka make you happy)" then make a change!

It's always your decisions that got you where you are now, not a higher power, it's all YOU!

Life's really short. One line t-shirt quotes won't fix your happiness and neither will this article!



Go fix it! NOW!

PS: I hope you like my images, i'm really struggling to make this blog look better and find the right images to add for the context and feel. My design skills ... well.. let's just say i'm still looking for them :)

Peace!
D

Tuesday, June 7, 2016

You can't cut corners

It's ok to fail

It's ok to be insecure

It's ok to have complexes

It's ok to be rude

IT's ok to get a reaction from those around you

THATS HOW YOU LEARN!

Like the A-HA, you wont do shit if you don't really understand the problem. If someone will say "Man, you always overreact! Stop it!" - is he right? am i overreacting? i didn't feel i am, why should i listen to him?

If you do listento them,  and most of us do, you'll just be super self aware of situations and context, consciously working on your behaviour, was oposed to a natural subconscious apporach to the same situation. (most likely oyu know charismatic people that are really in their element when you are actively/consciously working on that element)

You can't cut corners in life. Sometimes the way to learn is to actually make that mistake you feel comming.

I'll give an example:
Somebody tells you need to be more efficient in your work, better technical overview. Is that true? What about your other strong points that lead you there? Why pursue a path suggested by otherss..

We live our lives lately guided by one page quotes, best practices and 7 step programs to guide us somewhere. But it won't stick, because we don't get the A-HA, because we try to be "more confident" by actively being aware, but in reality you'll cover 10% of it by reading (and this is if you consciously follow directions)

How about, don't be confident. How about go to that meeting and be yourself. You'll mess it up! You'll get bad feedback like: "man you didn't prepare at all, don't you write your notes on paper??", oh, notes on paper, got it, there's my a-ha. If i read a reader's digest version of how to prep for a conference, i'd have 100 things i need to be aware of and won't ever be able to follow them.And most likely i'll forget about the "write your notes on paper advice". But when my feedback came, in a hursh manner, boy i tell you, i'll remember that, subcosnciously!

Nevertheless, advice is good. In terms that it point you to leads you have to connect yourself.

I'll give an example: grandma sais,smoking is bad. Is it bad? No! i fucking love smoking, i miss everydayof it. Yet, i've quit. Why? Is it because grandma told me? No. Becaus ei realised it on my own, but then i clicked my reasons with what i've been told and all of a sudden their points make sense, and their experience matter and you get to listen more actively to "your elders" or whatever you want to call it. It's the moment when you've matched the leads you've been given around you to the experience and your own a-ha's and that my friend, is a lesson learnt!I guess it's that moment in time when you realise you say the same things as adults say: "maaaan.. kids these days.. " :)

I'll give another example. I always wanted to stick to the gym. I wanted those abs and healthy body. I started by saying, i'll go to the gym when i quit smoking. I didn't quit, so i never went. Then i read about suplements and all that jazz, so i bought 100$ worth of powders to get fit, which of course were thrown out the window. Then i actually went to the gym once. I gave up the next day. Then i went again and i had an accident. Then i read the "how to stick to the gym" article, bla bla, i wont bore you but it's the usual jazz you always hear. Make a schedule, reward yourself, set minor goals etc. It doesn't work for me!?!? i'm lazy as fuck, i don't have a schedule for my life and work you think i'll do it for the gym? Sure maybe the first day, then i've probably lost the schedule all together.

Then i had my first lead - not the thing that made me do it but a lead i clicked later - It was Elliot from youtube, some guy asked him what keeps him motivated to go to the gym and he said (long story short) : "i don't have motivation man, this is WHAT I DO! monday wednesday thursday, i go to the gym... like you have to go to work, that's whati do! I go to the gym! Can you come have a drink with us on Wednesday? Sure! After i comeback from the gym, it's ME not a thing i do to share on facebook ".. And i clicked the fact that every gym guy i know.. just does it, no questions, no motivation, they don't give speeches on how to stick to the gym (at best they give you sarcastic feedback when you give up).. so i reflected why can they do it and i cannot.. humm...

Anyway.. In a different article i read i found another lead: "whatever you attempt to do, keep trying.. you'll get better" so i tried that on purpose. Mechanically, i didn't believe iin it but i gave it a chance.

So i went again to the gym, this time with a personal instructor. I managed to go 3 months in a row! Never missed a session. Results were visible. My whole view has changed, i understood how important "GOING" is, as opposed to one time, giving up etc. I understood why having a good posture helps oyu not injure yourself.

I gave up again due to reaosns i don't deserve explaning, let's just say i failed again. But, deep down, now i KNOW, how i can get those abs. I'm back in the gym now, and i hope it will last, I have become indeed one of those i only read about before that looked forward to going to the gym.

If i fail, i'll do it again. Better!

Point being, im not telling you how to go to the gym. I'm telling you that all your advices are just leads. You and you alone have to connect the dots. Either by doing and clicking, or by failing. Whenever you fail you automatically do a retrospective, and you see what you've done wrong. Don't expect you'll cut corners in life by reading this article!

Go out there and be yourself, make mistakes, don't stop making mistakes because other people tell you to, stop making mistakes because you understand them!

If you keep at it, you'll make less and less mistakes! In the end... you'll do it!

Peace out!
D

Wednesday, April 13, 2016

Your everyday A-HA !!!

Brief
Challenge everything, don't take any information for granted, look for the core substance the author is trying to sell and build from that on. If you don't click you'll learn mechanically and wont help you in the long run.

Most trainings and courses rely on what i call the "triangle method". Where you get a really nice image that exposes a theory via visuals. That is because once you got the A-HA behind it, it's really easy to derive and to find alternative ways of sharing that idea (via visuals, rhymes, analogies etc). But to your audience, initially they'll just see a triangle, and will have to backtrack your steps to get finally to the A-HA!. Wouldn't it be easier if we had the core up front and then waltz together to the final triangle?

Think about it, if you were to explain the field you are an expert in to someone, could you do it? Do you need to re-study? Most likely not. Why not? Because you got the core A-HA from it, which makes it candy to pass on.

Core
I want to touch a couple of examples and concepts, see below:

  • Agile/SCRUM
  • Leadership training
  • Design Patterns
  • Good trainer, Bad trainer
  • Recipe learning, real learning
  • Complex domains


Agile/SCRUM

I've worked agile for a while now, and i've seen it work. Still, i've also seen it fail. By analysing the failure, i couldn't stop thinking: "well.. it failed because they didn't do that and that". I was always wondering, where is that point when you fail. I mean, in each situation it seemed obvious what went wrong when you backtrack it.. so why did it go wrong. Following the principles, surely you could fix it no? 

The reason it went wrong, is because it was applied as a recipe and not as a principle. The agile methodology is quite simple: you adapt to your environment as you progress. If someone sais "well you are doing it wrong because you have too many meetings", by all means, don't have so many. Tweak what works for you. 

There are some guidelines that were proven to work in some contexts, but don't take them literally. I've had teams that did two daily stand-ups, that skipped retrospectives that had little to no planning. And that is fine, the core value is to adapt and keep the value coming to the client. Of course each decision was justified in some way, so that you don't lose key values that those ceremonies added, instead you get the value by other means. 

Example: two dailies allowed the progress to be accurately shared with the client, whilst keeping the day to day goal tracking off their scope. Point is, you adapt. You're agile. Why force a rule?

Here are some online criticism i've found (Dark Manifesto), and let's see why is that happening

We are uncovering better the only ways of developing

Does this smell like recipe approach? Who enforced a single way of developing? There are some guidelines, but you can write your own. 

I won't dwell too much on this subject, the point is: if you learned via a recipe versus a core a-ha behind it, you're going to have a bad time. 

To make this clear, an agile approach on a project may even state: "Agile is not for me in this project!" See the Cynefin Framework.

Leadership training

Our company has grown quite a lot. To keep up with the growth a new approach to leadership had to happen. One that could scale. So, we've received training on the matter. Ranging from emotional training to managing different types of people to bringing out the best in people to career paths and so on.

It all sounds excellent, however, it assumed the fact that the new methodology would be embraced equally by everyone. Now, before i go any further, i have to say that these trainings are reaching out to your core principles and values. How you tackle a tough situation how you react and how you express your views. So this was not like a technical training, but actually it changed the way we think. I am doing my best here to move away from the "brain wash" phrase, but bare with me. 

There are two aspects i'd like to explain to you on this. 

One aspect would be the challenge i had to make on the approach. Like, why should i change the way i think, and why to this particular implementation. There are several others out there. Why this one? It's more than learning C# over Java.

The other aspect was around the fact that we were given "tools" to apply this. These "tools" were presented in the form of "triangles" (yeah.. i know) and 4 quadrant diagrams, and graphs and so on. To enable us to easily access and implement the flow. 

I have to say, i have a problem with "triangles". I've started this whole blog to try and share my "a-ha"s by moving as far away from them as possible. Nevertheless, these guys (the trainers) had a history behind them, so you have to admit that maybe, just maybe there is some truth behind it. 

So i started research, on how other companies scale, and what are their means, and what is their framework, and specifically why is it ours different. 

This is where i got my first A-HA. They all more or less say the same. Ok, so the approach we were given was not in terms of substance, but on how we chose to apply it. Think of it in terms of flavors. For example, every leadership approach out there states that "yes, there are different types of people", it's just that our approach chose to adopt a particular vocabulary versus another when describing them. 

Ok. Got it. So the material is good. It's been proven out there. It helps me be a better man, regardless of what i do. So sure, i have the buy-in on them now. 

Then i began reading a bit more into the approach, on the best way to pass feedback, good and bad. On how to help grow each person whilst helping the company. How to actually build that win-win relationship. 

Once i got that. Boy did the "triangle" made sense. 

On the flip side, i attended another training, held by a different company, which was not so good. To give you a better contrast on why not i'll state my concern: 

The training was around feedback, specifically the bad type. A long "triangle" based presentation happened, at the end of which we were given cards, which stated "steps" on how to give feedback. (you can imagine the excitement i had when i saw them... )
So i challenged the trainer. "I am a line manager for 5 years now, and from what i know, i gave my feedback pretty good. Can i try without looking at the card, to pass the feedback (it was an excercise we had to do)? And then we can compare"

Which i did. The feedback came as "your approach sounds good also, can you now try the recpie?". For the sake of the excercise i did. It was something similar to trying to get a mechanical engineer out of his shop on the double, and set him up to hold a speech to a large audience and win votes. Horrific, clumsy, it had that certain feel of ... fake.

The problem was,  i was following their advice: "use the card!" (aka don't think/feel). So i applied a recipe, which i didn't believe in, a blind approach to a real problem. It was not the best training i attended.

I do accept that it may have some science behind those steps written on the card. But as long as you don't share your insight, your a-ha, it will NEVER work. 

If i were to give that training, i would have went for "what is it, that I use, when providing feedback, to maximize the results". Why am i doing certain things over others, not how, but why. Once that clicked, the card would have been a redundant material.

Design patterns 

I promised myself to keep this side of the blog non technical, so i'll do my best to abstract away the details.Of this story.

There's a certain way to structure your code, to have certain benefits. Whenever i hold an interview, i never ask: "can you explain the repository pattern", instead i leave the candidate to walk me through a few design patterns he chooses. I need to understand not how the pattern works, but how did he understand it. Because from his baseline understanding, he will derive his explanation. If it's a really good a-ha of a pattern, his explanation will be brief, and will be able to answer any question, adjustments, disadvantages, examples etc. If the understanding is around the code, he will walk me through the code syntax (not so good). If his understanding is of "the reason why i'd use this", well, from here we'll discuss the why and when not the how.


When you learn a design pattern, don't look at the code. Look at the principle, what are you really doing with it. Think of a real scenario where it would help. Then think (or do) a flow through it. Then i expect the UML will make more sense. From there, the code should be obvious, and you can have a reference code in terms of best practices, rather than the core principles. 

Good trainer, Bad trainer

I'm sure you've all attended trainigns/presentations that left you amazed and with a nice lesson. On the flip side, i'm also sure you've also attended boring trainings/presentations/articles (hopefully not mine :D). What is it that made one session better than the other?

My epiphany came when i analysed the way the session was "sold". The content of a course usually follows some best practices (intro, examples, workshops etc), so i doubt it's the material to blame. However, the way this material is sold, what key elements are emphasized makes a difference.

Like in my previous example, in one training i was given the end result. The recipe i had to work from, as opposed to understanding the principles.

Same goes when applying to a job, and preparing your self for it. You can read the material, see the code etc. Or, you can try to understand the concepts. Specifically on the design patterns, why is this an interview question in the first place? What are they after? Start from there. Then you can see that in certain domains, certain patterns help (because of reasons you'll have to understand on your own - aka find their a-ha). And then you'll have a better view.

Recepie learning, real learning
The trainer and the trainee chose how they'll teach/learn. You can recipe learn, and in some cases this works excellent (environments which have to follow complex protocols and routines that guarantee a certain outcomes - building a computer from parts) but when the work requires you to be "creative", that's when a recipe learning will fail you.

For example, in the software industry we refer at times as "over engineering" to some implementations. When people follow a certain complex pattern, which covers a lot of areas, but is not needed in the context. The approach most probably cost more, and was applied blindly. Instead of building what's needed for a client. This is where "you have to think". And your experience list of "a-ha"s will make the difference.

I personally try to move away as possible from any recipe. I challenge everything when it's presented to me. Yes, but why? Until i understand the concept and reason behind, i will always challenge it. (Oh and trust me, at times this lead to tough conversations). However, once i have the buy-in on a certain design approach, or value shared etc. it's no longer a service providing activity, but more of a team effort to achieve the common goal.

Complex domains
So, the question still remains: but how do you tackle complex domains? Where you can't just really go: "Ok, so if i want to study C#, what's the underlying A-HA i need to kick off from?".

In complex domains, i see it as a divide et impera approach. Any piece of software (or any other complex context for that matter) is usually composed of several bits. Each bit, having it's own sub bits and so on (if it were easy, everyone would be doing it and it would be cheap). So you'll need to break it down to a level you have an understanding of the "a-ha" that will allow you to derive the context. And move to another area.

This is why, no matter how smart you are, experience is sometimes ireplaceable.

There are several ways of approaching a complex domain.

Bottom up: as in, take small key concepts and break them down until you got their "a-ha", then move to others, up until you get the "component"'s bigger picture and so on.

Or, there's the top down, where you get the final complex domain, and create a map of what you need to understand to be able t deliver. Not every bit has to be understood end-to-end. For example when i'm building a website, i don't really need to understand how my data layer's internal mechanics manages the information. I just know, to a certain level, that it provides me with certain features and certain limitations, has it's strong points and it's weak points.
I personally prefer this approach especially when dealing with large projects.

So if you were to build ebay from scratch, what would you need?

  • marketing knowledge
  • coding knowledge
  • etc.
And dig deeper. 


But if you were to pass on a project (of any nature) you've worked on, a complex project, how would you go about to pass it on? I'm 100% sure you own it, and you can talk about it for days, but to actually make it stick, you'll have to focus on the key "a-ha"s to shorten the time needed for the trainee to get up to speed.


The A-HA of this post
Each lesson/article/blog/presentation is based on some previous research. The form it's displayed is a concentration of information to make it "easier to remember" not necessarily "easier to understand". To understand a concept you need to understand the core, the a-ha of it. Once you have that, the course materials will be just confirming and providing analogies for the concept.

When learning, look for the underlying a-ha. When passing it on, focus on the a-has and work your way to the "triangle" not vice-versa.