Hi Ian,

I’m not sure that there is any solid research out there on this kind of
thing. Much of the information seems to be anecdotal or wisdom earned from
experience.

I’m not sure exactly what your role is there, but I am guessing you are
responsible for how the development gets done; lead dev, engineering
manager, or some such? If that is the case, then the bigger problem is why
you should need to have this kind of conversation at all. If your founder
feels it is necessary to micro-manage the engineering process but yet has
no understanding of how codebases can quickly deteriorate then I suspect
you have a bigger problems than just finding articles to back up an
approach you want to try.

I suggest getting some decent static code analysis tools onto your codebase
and showing your founder the decline. Once you have a baseline to work with
you should be free to try different ways of working and observe your agreed
measures to see what approaches have a positive effect. There is nothing
like a few objective measures for taking the opinion out of an argument.

You should probably further have a conversation with your founder about who
is responsible for what. There is nothing more frustrating than being
responsible for code quality and speed of features to market but not having
the autonomy to implement approaches that you believe will allow you to be
successful.

Cheers,

Adam



On 23 August 2016 at 12:47:33 PM, Andrew Harvey (and...@mootpointer.com)
wrote:

Hey Ian,

I can't bring to mind any articles that would support you here, but I agree
with your sentiments (and Glenn & Rufus').

Firstly and as you mentioned, the codebase gets messier. Juniors given
small tasks aren't pushed to understand them as part as a bigger system, so
what you end up with is small pieces of micro-complexity being added
without refactoring where a senior (knowing more about how the whole thing
works and how software tends to evolve) might avoid the accrual of
technical debt by refactoring earlier, rather than layering on a "minor"
feature. While none of these changes may be terrible on their own, the sum
of them is an increase in surface area

Secondly, you end up stunting the growth of your team and limiting
knowledge sharing. Juniors don't learn when to refactor, or about the
broader system, because the deep knowledge of the app has been siloed away
from them. Seniors don't learn how to mentor and communicate. They lose an
opportunity to become mentors and leaders, instead get their superiority
complex re-enforced by working on "big features".

You might attempt to ameliorate this by having the seniors do code review.
The problem is, code review tends to end up being a rubber-stamp process
where the senior might pick on some style issues (so there are some
changes), but rarely will they address the substance, because that will
require them to get involved in a minor change which are beneath them, and
 will steal time from them working on "big features".

But you already knew all that :)

I'm not sure how you can really sell this. Founders might feel like they're
"wasting" senior engineers by having them work with juniors or on "easy
stuff". I can imagine it's pretty hard to convince them otherwise.

There's only so many times you can go around yelling "false economies"
while waving your arms in the air. All I can add is "good luck".

A.

On Mon, Aug 22, 2016 at 3:02 PM Ian Tinsley <itins...@gmail.com> wrote:

> Hi,
>
> I need to explain to a founder how having senior engineers work on 'big
> features' and junior engineers working relatively unsupervised in a
> separate team on 'bugs and small tasks' has been a major factor in
> destroying the codebase.
>
> I was going to write up some examples of what clean well-factored code
> looks like and how it turns ugly given inexperience and inadequate
> supervision but i'm hoping there is a well written post already out there
> which says it so much better than I could?
>
> Anyone seen anything like this?
>
> cheers
>
>
> Ian
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby or Rails Oceania" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rails-oceania+unsubscr...@googlegroups.com.
> To post to this group, send email to rails-oceania@googlegroups.com.
> Visit this group at https://groups.google.com/group/rails-oceania.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Ruby or Rails Oceania" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to rails-oceania+unsubscr...@googlegroups.com.
To post to this group, send email to rails-oceania@googlegroups.com.
Visit this group at https://groups.google.com/group/rails-oceania.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rails-oceania+unsubscr...@googlegroups.com.
To post to this group, send email to rails-oceania@googlegroups.com.
Visit this group at https://groups.google.com/group/rails-oceania.
For more options, visit https://groups.google.com/d/optout.

Reply via email to