ofbiz-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre Smits <pierre.sm...@gmail.com>
Subject Re: [Discussion] Shifting our OFBiz culture to enable innovation
Date Sat, 16 Jul 2016 13:44:15 GMT
Hi Taher,

Nice posting. Something to ponder about.

Best regards,

Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Sat, Jul 16, 2016 at 3:38 PM, Taher Alkhateeb <slidingfilaments@gmail.com
> wrote:

> Hello Everyone,
>
> As you already know, we have been doing major work in terms of improving
> and refactoring the framework. We are buzzing and making changes everywhere
> and people are getting excited about helping out. This is fantastic! and I
> hope we can continue in this new direction.
>
> However, before we started the refactoring work, I kept wondering why did
> we get here in the first place? We do we have lots of bad and messy code in
> the code base? Why are we at point where we are shifting all energies to
> cleaning up?
>
> So as I started working with people on the refactoring project and the
> answers to the above questions started to slowly appear. I list below my
> perception of the problems and recommendations for avoiding repeating these
> problems of bad code.
>
> Problem: We are very conservative
> ----------------------------------------------
>
> How many times did you hear this: "Don't remove that, somebody might need
> it" or "Oh no, you just made a regression in trunk" or "No keep it, _one_
> person X objected".
>
> You know ... making software is difficult. It involves taking many
> decisions, some of these decisions might not appeal to every person but
> they are necessary for the health of the project.
>
> So here is where I observed conservative behavior:
>
> - We are too sensitive to objections that even _one_ person might stop an
> initiative. In a way we might be a little too nice.
> - We treat trunk like it is almost a stable branch, and for any serious
> change we immediately prefer to create branches.
> - We _rarely_ remove anything, and when we suggest removing things big
> resistance happens. We suffer from "code hoarding"
> - We are shy about changing other people's code. Shy not because we don't
> know what to do, but we are concerned about making those who wrote the
> software displeased.
> - We treat code written by others like it is holy and difficult and we
> cannot repeat, when in fact many times we can make it actually _better_!
>
> The above observations in my opinion are the main reasons why we have bad
> code. We just pile up and we are so afraid of change. We don't change
> anything and the code as a result suffers and deteriorates. We just pile
> things on top of other things and do not revisit the design and try to make
> it better and cleaner. Sometimes revisiting the design involves _DELETING_
> which is a strange word in our community :)
>
> Recommendation: Shifting our mindset
> ---------------------------------------------------
>
> At a high level, we can say our problem is fear! How do we reduce and
> control fear? How do we gain confidence about making change without too
> much pain? Luckily many smart people already thought about these things and
> came up with wonderful solutions. I list hear recommendations which are
> inspired by these thinkers:
>
> - First we must be aware that we are conservative and accept it. We should
> be conscious of how apprehensive we are about change
> - We should have a very strong test coverage of our code and we should
> exercise Test Driver Development as a core philosophy in our programming
> methodology. Having very well tested code gives you confidence. Confidence
> gives you courage to change.
> - We should accept trunk as an _unstable software_. It is a place where all
> the brain storming and thinking and innovation is happening.
> - We should be open in expressing our opinions. Being correct is better
> than being nice. Mind you I'm not encouraging conflict! I am instead
> encouraging good technical discussions that lead to useful outcomes. It is
> only when people challenge your technical opinion that you really expand
> your horizons and learn something
> - For me personally, I think most importantly, we should accept _REMOVING_
> and _DELETING_ things. This is a natural phenomenon in all software
> systems. Sometimes we create something and realize later that it was a bad
> idea. Just Delete it!! Don't keep it hanging forever.
>
> In conclusion
> -----------------
>
> So OFBiz has a wonderful community and great people. However we are overly
> conservative, and we need to be a little more brave and willing to embrace
> change. Yes this will lead to some friction and at times feeling lost, but
> the long-term benefits far far outweigh the losses in my opinion.
>
> What do you think? I would love to hear everyone's opinion on this, and
> thank you again for being such supportive and wonderful people.
>
> Cheers :)
>
> Taher Alkhateeb
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message