Open Side Menu Go to the Top

08-06-2014 , 09:21 AM
Quote:
Originally Posted by kazana
I completely agree with this.

I'm pretty much in the same spot. I have the suspicion that after this you're encouraged to be a project manager. Just to adhere to the Peter principle.
Speaking of peter principle, has anyone felt like the peter principle works at the organizational level too? Every company feels dysfunctional because well-managed companies tend to succeed in the marketplace and keep growing headcount until they cannot be managed any more. This seems even more inevitable than at the individual level because growth is much more inevitable for a successful company than promotion is for a successful employee.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
08-06-2014 , 09:40 AM
Quote:
Originally Posted by candybar
Speaking of peter principle, has anyone felt like the peter principle works at the organizational level too? Every company feels dysfunctional because well-managed companies tend to succeed in the marketplace and keep growing headcount until they cannot be managed any more. This seems even more inevitable than at the individual level because growth is much more inevitable for a successful company than promotion is for a successful employee.
Not sure I agree with the last sentence. Depends a lot on what pool you are talking about when you say successful employee. All successful employees in all companies? A successful employee in a large one?

Apart from that, talking of the Peter Principle on an organizational level, I think there are more ways to remedy the problem.
A change in management philosophy when hitting the ceiling can have a better impact on overall performance, if chosen carefully, and therefore seems more feasible to me than expecting an individual to be able to put himself in a position/mindset to excel at a task that isn't tailored towards his/her strengths that the person has honed for the past x years.

Companies stall at different sizes, so you cannot say style A will take you to 10k employees no problem. It depends so much on other factors, too. By that I am thinking of industry-related factors, typical mentality in that field/sector/country, etc.

Having said all that, I am in no way qualified to make statements or even directly exposed to those dynamics, just talking about my gut-feeling.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-06-2014 , 11:02 AM
1) I could see myself asking a couple of those questions. "What would happen if you ate a tomato right now" would probably the first thing that I'd be curious about.
2) I'm very happy that all of my allergies mysteriously vanished (had a ton as a kid, none now)
3) My dad is very allergic to apples but somehow the ones from our garden don't affect him at all. It's really strange because he's also allergic to other "bio apples" so it's not some "toxins from mass market apples" conspiracy. Truly baffling tbh (maybe some supersized placebo effect but I doubt it since he's very aware of the situation)
---

@candybar: I think it can't apply because I'm currently rereading Neuromancer and your idea would invalidate the megacorps

---
Quote:
I can write the **** out of a method like the fizzbuzz test but feel like i'd be a waste of space as a programmer in the field.
It actually shows you a decent bit about the person you are about to hire. I like it as the first question. Let them write it however they want. Will they TDD it without being told to do so? Will the code be hacked together or take into account future changes (DRY but also YAGNI can be discussed here)? What if I wat to print "LolPwned" instead of "FizzBuzz", what if I want to change %5 to %32 etc.
[the actual solving of the problem is fairly irrelevant it's more of a how do they get there, how do they think about it. If they can't solve it...obviously a nice idiot filter]

Last edited by clowntable; 08-06-2014 at 11:13 AM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-06-2014 , 02:00 PM
Quote:
Originally Posted by kazana
Not sure I agree with the last sentence. Depends a lot on what pool you are talking about when you say successful employee. All successful employees in all companies? A successful employee in a large one?
Are you saying promotion is inevitable for a successful employee in some organizations? This is not true outside of entry-level at any organization. Whereas successful companies by definition will have opportunities to expand.

Quote:
Apart from that, talking of the Peter Principle on an organizational level, I think there are more ways to remedy the problem.
A change in management philosophy when hitting the ceiling can have a better impact on overall performance, if chosen carefully, and therefore seems more feasible to me than expecting an individual to be able to put himself in a position/mindset to excel at a task that isn't tailored towards his/her strengths that the person has honed for the past x years.
If you overcome the ceiling by changing something, that wasn't your ceiling in the first place and you will continue to grow until you hit a real ceiling that you can't or won't overcome. This means most companies end up getting stuck at a point where they are poorly managed. The point of the generalized peter principle is that this kind of maneuvering doesn't matter - the only preconditions are that success be rewarded with more responsibility. And successful companies are rewarded by being given more money to expand.

As an aside, organizations are much harder to change than individuals - google institutional inertia.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-06-2014 , 08:47 PM
Quote:
Originally Posted by kazana
I am considered an "expert"* in three fields. I still cannot confidently say I'll crush a technical interview. It just depends on what they chose to throw at you.

Apart from that, from all the technical interviews I have taken and passed so far, the only topically relevant tests were from companies who knew exactly how, why and what for they were going to utilize me.
In all other cases (read: easily 80+%) real tasks and topics covered had negligible overlap.

Example 1: For my current project, I had a technical interview with a massive focus on design patterns. Primarily a combination of polymorphism, factory and decorator patterns. A wee bit of delegation pattern, too, and a smidgeon of test-driven development principles.
Now, having been on the project for a month, for the most part, I need to somehow figure out how some bunch of code works that has been programmed in embedded C between the mid 80s til early 90s and modify or extend the functionality thereof...
Overlap pretty close to 0%. Having said that, this is the most dramatic mismatch between interview and day-to-day stuff I have ever witnessed.

Example 2: For my very first job, the technical interview was based around polymorphism, pure virtual classes, class inheritance, and in addition other potentially tricky parts of floating point operations. In that case, I used the principles tested all the time.


* expert in quotes because from the project/program managers' perspective I know just about all there is to know but from my (and other "experts'") perspective I am somewhere at 7/10 max.
Good post and basically agree with your points. The hiring process is pretty bad really. Situations like example 1 happen more than we would like them to. Since in example 1 the code is written in C for an embedded application (?) I guess your options are limited to perhaps just introducing C++. Just curious.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-06-2014 , 08:52 PM
Quote:
Originally Posted by candybar
Are you saying promotion is inevitable for a successful employee in some organizations? This is not true outside of entry-level at any organization. Whereas successful companies by definition will have opportunities to expand.



If you overcome the ceiling by changing something, that wasn't your ceiling in the first place and you will continue to grow until you hit a real ceiling that you can't or won't overcome. This means most companies end up getting stuck at a point where they are poorly managed. The point of the generalized peter principle is that this kind of maneuvering doesn't matter - the only preconditions are that success be rewarded with more responsibility. And successful companies are rewarded by being given more money to expand.

As an aside, organizations are much harder to change than individuals - google institutional inertia.
Some would say that this is a pretty apt description of the situation at the biggest software company in the world.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-06-2014 , 11:33 PM
Quote:
Originally Posted by adios
Since in example 1 the code is written in C for an embedded application (?) I guess your options are limited to perhaps just introducing C++. Just curious.
Introducing C++ in the existing code base of hunderedish files won't help any future dev's work. I think it would make a bad base even worse.

But if management insists I will do so. In fact, that would be in line with other decisions made so far but going into more detail here would bust this discussion.

Also, previous devs seem to have tried to do so already. Result being, as far as I can tell, that it is 99% C code in .cpp files. Alrighty then.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 12:14 AM
TIL "individual contributors" is a thing.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 05:43 AM
Quote:
Originally Posted by candybar
Are you saying promotion is inevitable for a successful employee in some organizations? This is not true outside of entry-level at any organization. Whereas successful companies by definition will have opportunities to expand.
Good point.
My mindset just can't grasp the being stuck in a role thing and not doing anything about it. So I obviously do not even take that into account.

Quote:
Originally Posted by candybar
As an aside, organizations are much harder to change than individuals - google institutional inertia.
Without making me read through all that, is that observation based on all aspects of inertia (mindset, culture, processes etc) or just certain ones?
I found many people to be incredibly stuck in their way of doing things.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 07:04 AM
Here's a question to those of you who actually work with TDD.

I want to start building a small game that has been floating around in my head for about 5ish years. And since I haven't had any projects whatsoever based on TDD, I thought that would be a good opportunity to practice it.
Instinctively, I want to flesh it out bottom-up as I am not 100% sure which avenues I want to use for user interaction just yet but do know fairly well how I want the core engine to look like. UI could be in part browser based, other parts application driven. All I do know is that I will need extensive APIs.

So, the question to the TDD experts is this: Would you think a bottom-up (or inside-out or whatever it is called) is a good way to go or are there compelling reasons to rather take the top-down (outside-in / enter equivalent terminologies here) be more feasible?

Do keep in mind that I have effectively no hands on experience with TDD - if that is a factor in the decision.

And as a bonus question (potentially based on the direction) which books or resources in general would you recommend to read for this?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 08:55 AM
Quote:
Originally Posted by kazana
Introducing C++ in the existing code base of hunderedish files won't help any future dev's work. I think it would make a bad base even worse.

But if management insists I will do so. In fact, that would be in line with other decisions made so far but going into more detail here would bust this discussion.

Also, previous devs seem to have tried to do so already. Result being, as far as I can tell, that it is 99% C code in .cpp files. Alrighty then.
Rewrite the software time .
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 09:14 AM
Quote:
Originally Posted by kazana
Here's a question to those of you who actually work with TDD.

I want to start building a small game that has been floating around in my head for about 5ish years. And since I haven't had any projects whatsoever based on TDD, I thought that would be a good opportunity to practice it.
Instinctively, I want to flesh it out bottom-up as I am not 100% sure which avenues I want to use for user interaction just yet but do know fairly well how I want the core engine to look like. UI could be in part browser based, other parts application driven. All I do know is that I will need extensive APIs.

So, the question to the TDD experts is this: Would you think a bottom-up (or inside-out or whatever it is called) is a good way to go or are there compelling reasons to rather take the top-down (outside-in / enter equivalent terminologies here) be more feasible?

Do keep in mind that I have effectively no hands on experience with TDD - if that is a factor in the decision.

And as a bonus question (potentially based on the direction) which books or resources in general would you recommend to read for this?
I would think working back end to front end is less likely to result in a discovery that drastically affects the rest of code or drives you in a direction you are unhappy with to support a front end decision.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 10:56 AM
Quote:
Originally Posted by kazana
Here's a question to those of you who actually work with TDD.

I want to start building a small game that has been floating around in my head for about 5ish years. And since I haven't had any projects whatsoever based on TDD, I thought that would be a good opportunity to practice it.
Instinctively, I want to flesh it out bottom-up as I am not 100% sure which avenues I want to use for user interaction just yet but do know fairly well how I want the core engine to look like. UI could be in part browser based, other parts application driven. All I do know is that I will need extensive APIs.

So, the question to the TDD experts is this: Would you think a bottom-up (or inside-out or whatever it is called) is a good way to go or are there compelling reasons to rather take the top-down (outside-in / enter equivalent terminologies here) be more feasible?

Do keep in mind that I have effectively no hands on experience with TDD - if that is a factor in the decision.

And as a bonus question (potentially based on the direction) which books or resources in general would you recommend to read for this?
I have a sneaking suspicion that the ratio of development teams who actually use TDD versus those who have used it a little, or want to use it, or used it for a while then gave up – is very very high. I base this on the immaturity of all the tools out there, and the lack of answers for very simple problems that we seem to run into – like incredible slowness of running the tests.

But I could be very very wrong. Obviously I know open source projects have to use it. But those are usually frameworks or one-feature components, with little UI or concrete feature–level requirements. I wonder how many other projects - where the end result is a fully functional app with complex, constantly changing UI/UX - actually use it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 11:54 AM
I don't really get the need for testing most of the stuff that a lot of TDD enthusiasts will test.

For example, a year+ ago I did a testing course with thoughtbot (basically the best rails consulting shop in the world, and big proponents of TDD) hoping to learn more about testing. We were using TDD to write a basic todo list app or some ****. We wanted to update the signed in user's last activity or something. We ended up with this

Code:
  # current_user is the signed in user in rails
  # touch updates the time stamp to Time.now
  # last_activity_at is a Datetime field in the Users table

  def update_last_activity
    current_user.touch :last_activity_at
  end
So it's a very basic method that as far as I can tell has 0 edge cases. We got the behavior to pass on the feature test we were writing (end to end test we wrote first), but still had to write a test for this very basic method. I still don't get it, and will never write a test for this method.

Using rspec, the test would look something like this:

Code:
  context "methods" do 

    context "update_last_activity" do 

      it "updates the last_activity_at timestamp to be current time" do 
        user = create(:user, last_activity_at: 2.hours.ago)

        user.update_last_activity
        expect { user.last_activity_at }.to eq Time.now
      end

    end

  end
I don't even think this test would pass, because Time.now would be different by a small fraction of time. In comes a tool like https://github.com/travisjeffery/timecop

Then someone can get on my case for not mocking or stubbing or some **** to make the unit test faster. My solution is to not write this test. Don't get me started on how much time I've wasted debugging tools like capybara, especially on heavy JS applications.

I have slipped on testing on my latest project... but it hasn't hurt me at all in terms of development time (has definitely made it way faster). I'm also a lone wolf building a big project. I am very fast at this point at diagnosing errors and not making simple ones.

I have about 50 unit tests which cover all of the vital functionality. Something needs to work and has edge cases? I'm gonna write tests. TDD or tests after, doesn't matter to me, just needs to work. I can't imagine the complexity of trying to get a ton of people to TDD or CI a huge code base.

Seems like 2-8 developers would be a good case for TDD... but I really don't know. My plan is to finish up with this beta I'm working on and start adding some tests before refactoring. Nothing crazy though.


Meh, my random thoughts. I'm still relatively new to the world of development, so take it with a grain of salt.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 02:25 PM
Quote:
Originally Posted by adios
Rewrite the software time .
"But it works! Therefore, we should be able to build upon that."™
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-07-2014 , 02:31 PM
Quote:
Originally Posted by kerowo
I would think working back end to front end is less likely to result in a discovery that drastically affects the rest of code or drives you in a direction you are unhappy with to support a front end decision.
Thanks for the feedback. That's exactly what I am thinking so far.
Not sure if there be dragons with that approach I cannot see until it is too late.

Quote:
Originally Posted by suzzer99
I have a sneaking suspicion that the ratio of development teams who actually use TDD versus those who have used it a little, or want to use it, or used it for a while then gave up – is very very high. I base this on the immaturity of all the tools out there, and the lack of answers for very simple problems that we seem to run into – like incredible slowness of running the tests.

But I could be very very wrong. Obviously I know open source projects have to use it. But those are usually frameworks or one-feature components, with little UI or concrete feature–level requirements. I wonder how many other projects - where the end result is a fully functional app with complex, constantly changing UI/UX - actually use it.
That's interesting. I have no realistic idea of the ratios other than that what I've seen in my professional career. And no one there has been doing it consistently.
Might be a result of the fields I have worked in?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 03:15 AM
Quote:
Originally Posted by Alobar
If I actually were good enough to get a job somehwere coding, I would prolly be equal parts shocked and appalled by how easy it is to get such a job and by how bad lots of professionals must be.
i've been employed in the industry for 8 years and i get imposter syndrome all the time. i can spend like 4 hours on a problem that ends up being a 3 line fix and i'm thinking like, 'wow, I'm really a senior programmer?'
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 07:07 AM
Quote:
Originally Posted by waffle
i've been employed in the industry for 8 years and i get imposter syndrome all the time. i can spend like 4 hours on a problem that ends up being a 3 line fix and i'm thinking like, 'wow, I'm really a senior programmer?'
Quote:
A company’s machine breaks down. The company’s owner, an old school friend of Niels Bohr, calls in the physicist to help fix it.

Bohr examines the machine. He draws an X on the side and says, "Hit it right here with a hammer."

The company’s mechanic hits the machine with a hammer. It springs into action. The company’s owner thanks Niels Bohr profusely and sends him on his way.

A few days later, the owner receives an invoice from Bohr for $10,000 and gets on the phone with him immediately: "Niels! What’s this $10,000 invoice? You were only here for 10 minutes! Send me a detailed invoice."

A few days later, the company’s owner receives this from Bohr:

INVOICE

Drawing X on the side of your machine $1 

Knowing where to put the X $9,999

Total $10,000
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 07:33 AM
Quote:
Originally Posted by waffle
i've been employed in the industry for 8 years and i get imposter syndrome all the time. i can spend like 4 hours on a problem that ends up being a 3 line fix and i'm thinking like, 'wow, I'm really a senior programmer?'
Standard.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 11:45 AM
Quote:
Originally Posted by waffle
i've been employed in the industry for 8 years and i get imposter syndrome all the time. i can spend like 4 hours on a problem that ends up being a 3 line fix and i'm thinking like, 'wow, I'm really a senior programmer?'
I have 2.5 years experience (after 4 years of poker) and was promoted to Engineer Sr. right as I was leaving to accept a job at another big company as a Sr. Engineer. No matter how hard I try, in seven years I'm still not going to be able to provide the "Minimum of 10 years experience engineering" under the "Required Skills" of the job description.

There are far more jobs than qualified people, so lots of opportunities to succeed at a higher level. Sort of like being an officer during WW2.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 12:40 PM
You get over your impostor syndrome pretty quick the first time you work along actual impostors.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 05:28 PM
I haven't looked for a job for around 10 years, what are the good sites to look these days?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 08:14 PM
What I find most disturbing is that, while I'd love to telecommute (even part-time), I've been unable to find any of those jobs/contracts.
One would think programming lends itself to it.

Wrt job boards: Most suck and primarily serve as DB filler gateways for recruiters.
On the bright side, there are excellent recruiters out there. Eg. I've landed almost every contract during my time in Europe through one specific recruiter.
Haven't found "the one" in Australia, yet. Sucks.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 08:43 PM
I thought job boards are the domain of recruiter spam or companies with high attrition rates because they only hire unicorns.

Perhaps there are thousands of applicants with PhD's in deep learning from a top 10 school with 7 1/2 years of Swift experience and a love for learning x86 / Haskell that are interested in building the next-generation enterprise PHP w/ hand-coded JavaScript and HTML3, 4, 5 website.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-10-2014 , 08:43 PM
Most people I know that telecommute worked in person at first. While the job lends itself relatively well to it, its still requires some additional skills/work ethic and its nice to work in person first to ensure it will work out.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

      
m