My experience with refactoring the framework

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

My experience with refactoring the framework

taher
Hello Folks,

Over the past couple of months I was working heavily on refactoring the
start component of the framework and we changed almost every single line of
code in it.

I learned a lot and I would like to share some of the experiences and
findings:

The good
--------------
- OFBiz works, the code executes and runs.
- There is an insane amount of functionality.
- Lots of great ideas and initiatives.
- People love and care for OFBiz.

The Bad
------------
- The code _barely_ works (very brittle), break one thing and the whole
thing goes down.
- Dependency nightmares and spaghetti code.
- Remember that spaghetti code? They poured cement on it and built even
more spaghetti code!
- Many abandoned and half-cooked ideas in the code base.

Some conclusions
---------------------------
- Without a shred of doubt, I believe OFBiz needs code cleaning more than
anything else.
- We should probably not add more features or functionality. For at least a
year we should just clean and clean and clean and clean and clean and clean
and clean.
- If refactoring is done right, OFBiz can be much faster, much smaller, and
much much more robust.
- We need help from people; we can within a year's time create something
amazing if people pitch in.

ideas for refactoring
----------------------------
- The base component needs to be completely refactored with fundamental
design changes.
- The system containers require heavy, heavy refactoring.
- Replace manual multi-threading with the executors framework from
java.util.concurrent
- Many libraries are sitting there and unused. We need to delete those.
- OSGi can transform OFBiz into a different beast, with many of the
"component" problems resolved
- Many functionalities are much better implemented with 3rd party libraries
that did not exist back in 2001
- libraries should not ship with OFBiz, but downloaded through the build
script (which only declares dependencies). This would make the size of
OFBiz MUCH smaller
- ANT, Maven and Ivy need to go away, and replaced with Gradle and the
plethora of build scripts all replaced with just one.
- if we implement gradle, probably the /tools folder would go away as well.
- SVN should probably be replaced with Git. Git was the tool that I used to
do the refactoring and I cannot imagine doing the refactoring exercise
without it.

Sorry for the long post, but I needed to get this out of my head, and maybe
help trigger thoughts for other people.

Cheers!

Taher Alkhateeb
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Shrenik
Thanks Taher. Insightful indeed.

-
Shrenik

-----Original Message-----
From: Taher Alkhateeb <[hidden email]>
To: OFBIZ Development Mailing List <[hidden email]>
Sent: Sun, 05 Jun 2016 20:08
Subject: My experience with refactoring the framework

Hello Folks,

Over the past couple of months I was working heavily on refactoring the
start component of the framework and we changed almost every single line of
code in it.

I learned a lot and I would like to share some of the experiences and
findings:

The good
--------------
- OFBiz works, the code executes and runs.
- There is an insane amount of functionality.
- Lots of great ideas and initiatives.
- People love and care for OFBiz.

The Bad
------------
- The code _barely_ works (very brittle), break one thing and the whole
thing goes down.
- Dependency nightmares and spaghetti code.
- Remember that spaghetti code? They poured cement on it and built even
more spaghetti code!
- Many abandoned and half-cooked ideas in the code base.

Some conclusions
---------------------------
- Without a shred of doubt, I believe OFBiz needs code cleaning more than
anything else.
- We should probably not add more features or functionality. For at least a
year we should just clean and clean and clean and clean and clean and clean
and clean.
- If refactoring is done right, OFBiz can be much faster, much smaller, and
much much more robust.
- We need help from people; we can within a year's time create something
amazing if people pitch in.

ideas for refactoring
----------------------------
- The base component needs to be completely refactored with fundamental
design changes.
- The system containers require heavy, heavy refactoring.
- Replace manual multi-threading with the executors framework from
java.util.concurrent
- Many libraries are sitting there and unused. We need to delete those.
- OSGi can transform OFBiz into a different beast, with many of the
"component" problems resolved
- Many functionalities are much better implemented with 3rd party libraries
that did not exist back in 2001
- libraries should not ship with OFBiz, but downloaded through the build
script (which only declares dependencies). This would make the size of
OFBiz MUCH smaller
- ANT, Maven and Ivy need to go away, and replaced with Gradle and the
plethora of build scripts all replaced with just one.
- if we implement gradle, probably the /tools folder would go away as well.
- SVN should probably be replaced with Git. Git was the tool that I used to
do the refactoring and I cannot imagine doing the refactoring exercise
without it.

Sorry for the long post, but I needed to get this out of my head, and maybe
help trigger thoughts for other people.

Cheers!

Taher Alkhateeb
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Divesh Dutta-2
In reply to this post by taher
Thanks Taher for sharing your experience and thoughts. I am up for the help
where ever possible.

Regards
--
Divesh Dutta.

On Sun, Jun 5, 2016 at 8:06 PM, Taher Alkhateeb <[hidden email]>
wrote:

> Hello Folks,
>
> Over the past couple of months I was working heavily on refactoring the
> start component of the framework and we changed almost every single line of
> code in it.
>
> I learned a lot and I would like to share some of the experiences and
> findings:
>
> The good
> --------------
> - OFBiz works, the code executes and runs.
> - There is an insane amount of functionality.
> - Lots of great ideas and initiatives.
> - People love and care for OFBiz.
>
> The Bad
> ------------
> - The code _barely_ works (very brittle), break one thing and the whole
> thing goes down.
> - Dependency nightmares and spaghetti code.
> - Remember that spaghetti code? They poured cement on it and built even
> more spaghetti code!
> - Many abandoned and half-cooked ideas in the code base.
>
> Some conclusions
> ---------------------------
> - Without a shred of doubt, I believe OFBiz needs code cleaning more than
> anything else.
> - We should probably not add more features or functionality. For at least a
> year we should just clean and clean and clean and clean and clean and clean
> and clean.
> - If refactoring is done right, OFBiz can be much faster, much smaller, and
> much much more robust.
> - We need help from people; we can within a year's time create something
> amazing if people pitch in.
>
> ideas for refactoring
> ----------------------------
> - The base component needs to be completely refactored with fundamental
> design changes.
> - The system containers require heavy, heavy refactoring.
> - Replace manual multi-threading with the executors framework from
> java.util.concurrent
> - Many libraries are sitting there and unused. We need to delete those.
> - OSGi can transform OFBiz into a different beast, with many of the
> "component" problems resolved
> - Many functionalities are much better implemented with 3rd party libraries
> that did not exist back in 2001
> - libraries should not ship with OFBiz, but downloaded through the build
> script (which only declares dependencies). This would make the size of
> OFBiz MUCH smaller
> - ANT, Maven and Ivy need to go away, and replaced with Gradle and the
> plethora of build scripts all replaced with just one.
> - if we implement gradle, probably the /tools folder would go away as well.
> - SVN should probably be replaced with Git. Git was the tool that I used to
> do the refactoring and I cannot imagine doing the refactoring exercise
> without it.
>
> Sorry for the long post, but I needed to get this out of my head, and maybe
> help trigger thoughts for other people.
>
> Cheers!
>
> Taher Alkhateeb
>
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Sharan-F
In reply to this post by taher
Hi Taher

Thanks for sharing your experience as I think it contains some real insights and also re-confirms an important task – we need to tidy up our code. And the one crucial message I hear loud and clear in your email is that we need everyone to help out too.

(BTW I've seen the amount of work that you have done on the start.java which is looking very elegant now :-)

Your list re-factoring ideas touch on a lot of areas that I'm sure will generate discussion and I hope that we don't get too caught up in the discussion that we don't act. We need to stay active by continually doing something that improves OFBiz.

I agree that we should look at holding off adding new features or improvements now and just clean. I've seen the huge amount of activity that is happening at the moment so let's see if we can maybe focus some of that energy into tidying up our code and getting rid of our ' historic technical debt' (as mentioned by Jacques).

It sounds like you have already a list of tasks to replenish our Current Re-Factor To Do list so let's do that and get the message out to the community about what they can do to help. I noticed that if we have a list of tasks that people can pick up easily, then they will.

Going forward we may need to have a bit more co-ordination and also work together in small groups focussing on particular areas so things dont get broken, especially once the applications start being affected.

I'm happy to help so just let me know how I can.

Thanks
Sharan
Reply | Threaded
Open this post in threaded view
|

RE: My experience with refactoring the framework

taher
Hi Sharan,

It's really good to have you on board in this project, thank you for the positive energy :) I compile below my ideas based on your feedback:

First of all, the ideas I listed in this thread are just ideas that are subject to change. The important thing is moving forward and getting things done. So I ask everyone not to worry too much about the choice of technology or tool to use here or there. I'm sure whatever we decide to go with eventually is okay. In the end, these are tools, what matters is people and process.

Second I noticed a problem that maybe you Sharan can help with. I observed multiple times from some community members that they actually _want_ to help but are overwhelmed with the complexity of this process and are not sure how to help.

The hesitation for others to engage is because collaboration over the Wiki Page, Mailing List and JIRA is definitely not enough. Why?

- Slow (feedback on progress, hints, guidance)
- Not very friendly for beginners
- Intimidating: some might be reluctant to ask basic questions on architecture or programming or so.
- Overwhelming: We are discussing very technical matters and some people would freak out at the complexity. They need to understand that there are different tasks at different levels of complexity and that there are senior out there who are willing to help. The tools we are using for collaboration makes it difficult to convey this fact.
- Impersonal and we cannot get people engaged. Things like conversations, brainstorming, assigning tasks, discussing, coaching, teaching and encouraging are difficult to do. These personal elements are crucial for knowledge transfer and support.

In short, I think there are members in the society who are willing to help, but not sure how. It's really unfortunate not to engage these individuals because of communication barriers.

My 2 cents!

Taher Alkhateeb

-----Original Message-----
From: Sharan-F [mailto:[hidden email]]
Sent: 06 June 2016 10:57
To: [hidden email]
Subject: Re: My experience with refactoring the framework

Hi Taher

Thanks for sharing your experience as I think it contains some real insights and also re-confirms an important task – we need to tidy up our code. And the one crucial message I hear loud and clear in your email is that we need everyone to help out too.

(BTW I've seen the amount of work that you have done on the start.java which is looking very elegant now :-)

Your list re-factoring ideas touch on a lot of areas that I'm sure will generate discussion and I hope that we don't get too caught up in the discussion that we don't act. We need to stay active by continually doing something that improves OFBiz.

I agree that we should look at holding off adding new features or improvements now and just clean. I've seen the huge amount of activity that is happening at the moment so let's see if we can maybe focus some of that energy into tidying up our code and getting rid of our ' historic technical debt' (as mentioned by Jacques).

It sounds like you have already a list of tasks to replenish our Current Re-Factor To Do list so let's do that and get the message out to the community about what they can do to help. I noticed that if we have a list of tasks that people can pick up easily, then they will.

Going forward we may need to have a bit more co-ordination and also work together in small groups focussing on particular areas so things dont get broken, especially once the applications start being affected.

I'm happy to help so just let me know how I can.

Thanks
Sharan



--
View this message in context: http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
Sent from the OFBiz - Dev mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Divesh Dutta-2
Taher,

Please let us know how can others help you here. I am sure there are many
members who are willing to participate here and help you in refactoring.
But all might not know what you have exactly in your mind.

If you can start with some portions of framework and start describing the
problem you see in current implementation , solution you propose with
design notes or implementation notes or some thing to start with for other
developers, I am sure it will be good start for others to collaborate. And
we can also create road map of the refactoring work so that all knows what
is coming up.


As you are leading this effort, I will request you to take further
initiative and we all are here to help you .


Thanks
--
Divesh Dutta.



On Mon, Jun 6, 2016 at 3:35 PM, Taher Alkhateeb <[hidden email]>
wrote:

> Hi Sharan,
>
> It's really good to have you on board in this project, thank you for the
> positive energy :) I compile below my ideas based on your feedback:
>
> First of all, the ideas I listed in this thread are just ideas that are
> subject to change. The important thing is moving forward and getting things
> done. So I ask everyone not to worry too much about the choice of
> technology or tool to use here or there. I'm sure whatever we decide to go
> with eventually is okay. In the end, these are tools, what matters is
> people and process.
>
> Second I noticed a problem that maybe you Sharan can help with. I observed
> multiple times from some community members that they actually _want_ to
> help but are overwhelmed with the complexity of this process and are not
> sure how to help.
>
> The hesitation for others to engage is because collaboration over the Wiki
> Page, Mailing List and JIRA is definitely not enough. Why?
>
> - Slow (feedback on progress, hints, guidance)
> - Not very friendly for beginners
> - Intimidating: some might be reluctant to ask basic questions on
> architecture or programming or so.
> - Overwhelming: We are discussing very technical matters and some people
> would freak out at the complexity. They need to understand that there are
> different tasks at different levels of complexity and that there are senior
> out there who are willing to help. The tools we are using for collaboration
> makes it difficult to convey this fact.
> - Impersonal and we cannot get people engaged. Things like conversations,
> brainstorming, assigning tasks, discussing, coaching, teaching and
> encouraging are difficult to do. These personal elements are crucial for
> knowledge transfer and support.
>
> In short, I think there are members in the society who are willing to
> help, but not sure how. It's really unfortunate not to engage these
> individuals because of communication barriers.
>
> My 2 cents!
>
> Taher Alkhateeb
>
> -----Original Message-----
> From: Sharan-F [mailto:[hidden email]]
> Sent: 06 June 2016 10:57
> To: [hidden email]
> Subject: Re: My experience with refactoring the framework
>
> Hi Taher
>
> Thanks for sharing your experience as I think it contains some real
> insights and also re-confirms an important task – we need to tidy up our
> code. And the one crucial message I hear loud and clear in your email is
> that we need everyone to help out too.
>
> (BTW I've seen the amount of work that you have done on the start.java
> which is looking very elegant now :-)
>
> Your list re-factoring ideas touch on a lot of areas that I'm sure will
> generate discussion and I hope that we don't get too caught up in the
> discussion that we don't act. We need to stay active by continually doing
> something that improves OFBiz.
>
> I agree that we should look at holding off adding new features or
> improvements now and just clean. I've seen the huge amount of activity that
> is happening at the moment so let's see if we can maybe focus some of that
> energy into tidying up our code and getting rid of our ' historic technical
> debt' (as mentioned by Jacques).
>
> It sounds like you have already a list of tasks to replenish our Current
> Re-Factor To Do list so let's do that and get the message out to the
> community about what they can do to help. I noticed that if we have a list
> of tasks that people can pick up easily, then they will.
>
> Going forward we may need to have a bit more co-ordination and also work
> together in small groups focussing on particular areas so things dont get
> broken, especially once the applications start being affected.
>
> I'm happy to help so just let me know how I can.
>
> Thanks
> Sharan
>
>
>
> --
> View this message in context:
> http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
> Sent from the OFBiz - Dev mailing list archive at Nabble.com.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

taher
Hi Divesh,

This initiative is already going and I invite to jump in:
here ->
https://cwiki.apache.org/confluence/display/OFBIZ/Re-Factor+To-Do+List
and here ->
https://cwiki.apache.org/confluence/display/OFBIZ/Coding+Practices

I will work on more tasks and more ideas for people to jump in. However, I
think the problem right now is that of communication and reaching out to
interested members who perhaps are intimidated by the process. That's why
it was a great gesture from Sharan to invite mentors and I will wait for
Sharan or others to come up with some clever solution for us to collaborate
more effectively.

So to give you some clarity on the vision for the refactoring project:
- Code should be clean
- Things should be modular and isolated
- Lower level things should not depend on higher level things

That's it, that's the plan! If we stick to it completely and religiously
and continue doing this for say 12 months or more, then the code would
reach a level of clarity that ALLOWS YOU TO THINK of new ideas and ways to
improve. You cannot think in a mess!

I hope you can join and help out. Take a look at the wiki.

Taher Alkhateeb

On Tue, Jun 7, 2016 at 9:57 AM, Divesh Dutta <[hidden email]
> wrote:

> Taher,
>
> Please let us know how can others help you here. I am sure there are many
> members who are willing to participate here and help you in refactoring.
> But all might not know what you have exactly in your mind.
>
> If you can start with some portions of framework and start describing the
> problem you see in current implementation , solution you propose with
> design notes or implementation notes or some thing to start with for other
> developers, I am sure it will be good start for others to collaborate. And
> we can also create road map of the refactoring work so that all knows what
> is coming up.
>
>
> As you are leading this effort, I will request you to take further
> initiative and we all are here to help you .
>
>
> Thanks
> --
> Divesh Dutta.
>
>
>
> On Mon, Jun 6, 2016 at 3:35 PM, Taher Alkhateeb <
> [hidden email]>
> wrote:
>
> > Hi Sharan,
> >
> > It's really good to have you on board in this project, thank you for the
> > positive energy :) I compile below my ideas based on your feedback:
> >
> > First of all, the ideas I listed in this thread are just ideas that are
> > subject to change. The important thing is moving forward and getting
> things
> > done. So I ask everyone not to worry too much about the choice of
> > technology or tool to use here or there. I'm sure whatever we decide to
> go
> > with eventually is okay. In the end, these are tools, what matters is
> > people and process.
> >
> > Second I noticed a problem that maybe you Sharan can help with. I
> observed
> > multiple times from some community members that they actually _want_ to
> > help but are overwhelmed with the complexity of this process and are not
> > sure how to help.
> >
> > The hesitation for others to engage is because collaboration over the
> Wiki
> > Page, Mailing List and JIRA is definitely not enough. Why?
> >
> > - Slow (feedback on progress, hints, guidance)
> > - Not very friendly for beginners
> > - Intimidating: some might be reluctant to ask basic questions on
> > architecture or programming or so.
> > - Overwhelming: We are discussing very technical matters and some people
> > would freak out at the complexity. They need to understand that there are
> > different tasks at different levels of complexity and that there are
> senior
> > out there who are willing to help. The tools we are using for
> collaboration
> > makes it difficult to convey this fact.
> > - Impersonal and we cannot get people engaged. Things like conversations,
> > brainstorming, assigning tasks, discussing, coaching, teaching and
> > encouraging are difficult to do. These personal elements are crucial for
> > knowledge transfer and support.
> >
> > In short, I think there are members in the society who are willing to
> > help, but not sure how. It's really unfortunate not to engage these
> > individuals because of communication barriers.
> >
> > My 2 cents!
> >
> > Taher Alkhateeb
> >
> > -----Original Message-----
> > From: Sharan-F [mailto:[hidden email]]
> > Sent: 06 June 2016 10:57
> > To: [hidden email]
> > Subject: Re: My experience with refactoring the framework
> >
> > Hi Taher
> >
> > Thanks for sharing your experience as I think it contains some real
> > insights and also re-confirms an important task – we need to tidy up our
> > code. And the one crucial message I hear loud and clear in your email is
> > that we need everyone to help out too.
> >
> > (BTW I've seen the amount of work that you have done on the start.java
> > which is looking very elegant now :-)
> >
> > Your list re-factoring ideas touch on a lot of areas that I'm sure will
> > generate discussion and I hope that we don't get too caught up in the
> > discussion that we don't act. We need to stay active by continually doing
> > something that improves OFBiz.
> >
> > I agree that we should look at holding off adding new features or
> > improvements now and just clean. I've seen the huge amount of activity
> that
> > is happening at the moment so let's see if we can maybe focus some of
> that
> > energy into tidying up our code and getting rid of our ' historic
> technical
> > debt' (as mentioned by Jacques).
> >
> > It sounds like you have already a list of tasks to replenish our Current
> > Re-Factor To Do list so let's do that and get the message out to the
> > community about what they can do to help. I noticed that if we have a
> list
> > of tasks that people can pick up easily, then they will.
> >
> > Going forward we may need to have a bit more co-ordination and also work
> > together in small groups focussing on particular areas so things dont get
> > broken, especially once the applications start being affected.
> >
> > I'm happy to help so just let me know how I can.
> >
> > Thanks
> > Sharan
> >
> >
> >
> > --
> > View this message in context:
> >
> http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
> > Sent from the OFBiz - Dev mailing list archive at Nabble.com.
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Divesh Dutta-2
Thanks Taher for the links. Me , Mridul and Pranay have picked some items
from the list. We will keep discussing on these items.

Also as you said it will be great once we come up with some clever solution
to collaborate on these items so that we discuss and make progress on
refactoring effort.

Thanks
--
Divesh Dutta.

On Tue, Jun 7, 2016 at 1:23 PM, Taher Alkhateeb <[hidden email]>
wrote:

> Hi Divesh,
>
> This initiative is already going and I invite to jump in:
> here ->
> https://cwiki.apache.org/confluence/display/OFBIZ/Re-Factor+To-Do+List
> and here ->
> https://cwiki.apache.org/confluence/display/OFBIZ/Coding+Practices
>
> I will work on more tasks and more ideas for people to jump in. However, I
> think the problem right now is that of communication and reaching out to
> interested members who perhaps are intimidated by the process. That's why
> it was a great gesture from Sharan to invite mentors and I will wait for
> Sharan or others to come up with some clever solution for us to collaborate
> more effectively.
>
> So to give you some clarity on the vision for the refactoring project:
> - Code should be clean
> - Things should be modular and isolated
> - Lower level things should not depend on higher level things
>
> That's it, that's the plan! If we stick to it completely and religiously
> and continue doing this for say 12 months or more, then the code would
> reach a level of clarity that ALLOWS YOU TO THINK of new ideas and ways to
> improve. You cannot think in a mess!
>
> I hope you can join and help out. Take a look at the wiki.
>
> Taher Alkhateeb
>
> On Tue, Jun 7, 2016 at 9:57 AM, Divesh Dutta <
> [hidden email]
> > wrote:
>
> > Taher,
> >
> > Please let us know how can others help you here. I am sure there are many
> > members who are willing to participate here and help you in refactoring.
> > But all might not know what you have exactly in your mind.
> >
> > If you can start with some portions of framework and start describing the
> > problem you see in current implementation , solution you propose with
> > design notes or implementation notes or some thing to start with for
> other
> > developers, I am sure it will be good start for others to collaborate.
> And
> > we can also create road map of the refactoring work so that all knows
> what
> > is coming up.
> >
> >
> > As you are leading this effort, I will request you to take further
> > initiative and we all are here to help you .
> >
> >
> > Thanks
> > --
> > Divesh Dutta.
> >
> >
> >
> > On Mon, Jun 6, 2016 at 3:35 PM, Taher Alkhateeb <
> > [hidden email]>
> > wrote:
> >
> > > Hi Sharan,
> > >
> > > It's really good to have you on board in this project, thank you for
> the
> > > positive energy :) I compile below my ideas based on your feedback:
> > >
> > > First of all, the ideas I listed in this thread are just ideas that are
> > > subject to change. The important thing is moving forward and getting
> > things
> > > done. So I ask everyone not to worry too much about the choice of
> > > technology or tool to use here or there. I'm sure whatever we decide to
> > go
> > > with eventually is okay. In the end, these are tools, what matters is
> > > people and process.
> > >
> > > Second I noticed a problem that maybe you Sharan can help with. I
> > observed
> > > multiple times from some community members that they actually _want_ to
> > > help but are overwhelmed with the complexity of this process and are
> not
> > > sure how to help.
> > >
> > > The hesitation for others to engage is because collaboration over the
> > Wiki
> > > Page, Mailing List and JIRA is definitely not enough. Why?
> > >
> > > - Slow (feedback on progress, hints, guidance)
> > > - Not very friendly for beginners
> > > - Intimidating: some might be reluctant to ask basic questions on
> > > architecture or programming or so.
> > > - Overwhelming: We are discussing very technical matters and some
> people
> > > would freak out at the complexity. They need to understand that there
> are
> > > different tasks at different levels of complexity and that there are
> > senior
> > > out there who are willing to help. The tools we are using for
> > collaboration
> > > makes it difficult to convey this fact.
> > > - Impersonal and we cannot get people engaged. Things like
> conversations,
> > > brainstorming, assigning tasks, discussing, coaching, teaching and
> > > encouraging are difficult to do. These personal elements are crucial
> for
> > > knowledge transfer and support.
> > >
> > > In short, I think there are members in the society who are willing to
> > > help, but not sure how. It's really unfortunate not to engage these
> > > individuals because of communication barriers.
> > >
> > > My 2 cents!
> > >
> > > Taher Alkhateeb
> > >
> > > -----Original Message-----
> > > From: Sharan-F [mailto:[hidden email]]
> > > Sent: 06 June 2016 10:57
> > > To: [hidden email]
> > > Subject: Re: My experience with refactoring the framework
> > >
> > > Hi Taher
> > >
> > > Thanks for sharing your experience as I think it contains some real
> > > insights and also re-confirms an important task – we need to tidy up
> our
> > > code. And the one crucial message I hear loud and clear in your email
> is
> > > that we need everyone to help out too.
> > >
> > > (BTW I've seen the amount of work that you have done on the start.java
> > > which is looking very elegant now :-)
> > >
> > > Your list re-factoring ideas touch on a lot of areas that I'm sure will
> > > generate discussion and I hope that we don't get too caught up in the
> > > discussion that we don't act. We need to stay active by continually
> doing
> > > something that improves OFBiz.
> > >
> > > I agree that we should look at holding off adding new features or
> > > improvements now and just clean. I've seen the huge amount of activity
> > that
> > > is happening at the moment so let's see if we can maybe focus some of
> > that
> > > energy into tidying up our code and getting rid of our ' historic
> > technical
> > > debt' (as mentioned by Jacques).
> > >
> > > It sounds like you have already a list of tasks to replenish our
> Current
> > > Re-Factor To Do list so let's do that and get the message out to the
> > > community about what they can do to help. I noticed that if we have a
> > list
> > > of tasks that people can pick up easily, then they will.
> > >
> > > Going forward we may need to have a bit more co-ordination and also
> work
> > > together in small groups focussing on particular areas so things dont
> get
> > > broken, especially once the applications start being affected.
> > >
> > > I'm happy to help so just let me know how I can.
> > >
> > > Thanks
> > > Sharan
> > >
> > >
> > >
> > > --
> > > View this message in context:
> > >
> >
> http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
> > > Sent from the OFBiz - Dev mailing list archive at Nabble.com.
> > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

Ron Wheeler
In an open source project, there is a lot of responsibility placed on
the people doing the commits.

They have to ensure that code that they accept is high quality and not
commit code contributions that do not meet quality standards.

- Code must follow generally accepted practices and design patterns as
well as the project's conventions.
- Test coverage must be adequate and updated to reflect the changes made.
- Code must be documented adequately - JavaDocs should pass validation
tests at a minimum and the description accurate even if it is short.

Taher's comments may reflect past coding practices but if crappy code is
updated without being fixed so it is no longer deficient, it is just a
waste of time.
The major quality problems may not be the result of the current update
but it should be fixed before being resubmitted unless the fix is very
small and an important bug fix.

Enhancements should not be committed in code that is not cleaned up.

In a proprietary project, the QA process will be enforced as an
important part of the development effort.
An open source project has to find a way to do this as well if it is
going to produce a high quality product that works and is easy to maintain.

Ron


On 07/06/2016 8:14 AM, Divesh Dutta wrote:

> Thanks Taher for the links. Me , Mridul and Pranay have picked some items
> from the list. We will keep discussing on these items.
>
> Also as you said it will be great once we come up with some clever solution
> to collaborate on these items so that we discuss and make progress on
> refactoring effort.
>
> Thanks
> --
> Divesh Dutta.
>
> On Tue, Jun 7, 2016 at 1:23 PM, Taher Alkhateeb <[hidden email]>
> wrote:
>
>> Hi Divesh,
>>
>> This initiative is already going and I invite to jump in:
>> here ->
>> https://cwiki.apache.org/confluence/display/OFBIZ/Re-Factor+To-Do+List
>> and here ->
>> https://cwiki.apache.org/confluence/display/OFBIZ/Coding+Practices
>>
>> I will work on more tasks and more ideas for people to jump in. However, I
>> think the problem right now is that of communication and reaching out to
>> interested members who perhaps are intimidated by the process. That's why
>> it was a great gesture from Sharan to invite mentors and I will wait for
>> Sharan or others to come up with some clever solution for us to collaborate
>> more effectively.
>>
>> So to give you some clarity on the vision for the refactoring project:
>> - Code should be clean
>> - Things should be modular and isolated
>> - Lower level things should not depend on higher level things
>>
>> That's it, that's the plan! If we stick to it completely and religiously
>> and continue doing this for say 12 months or more, then the code would
>> reach a level of clarity that ALLOWS YOU TO THINK of new ideas and ways to
>> improve. You cannot think in a mess!
>>
>> I hope you can join and help out. Take a look at the wiki.
>>
>> Taher Alkhateeb
>>
>> On Tue, Jun 7, 2016 at 9:57 AM, Divesh Dutta <
>> [hidden email]
>>> wrote:
>>> Taher,
>>>
>>> Please let us know how can others help you here. I am sure there are many
>>> members who are willing to participate here and help you in refactoring.
>>> But all might not know what you have exactly in your mind.
>>>
>>> If you can start with some portions of framework and start describing the
>>> problem you see in current implementation , solution you propose with
>>> design notes or implementation notes or some thing to start with for
>> other
>>> developers, I am sure it will be good start for others to collaborate.
>> And
>>> we can also create road map of the refactoring work so that all knows
>> what
>>> is coming up.
>>>
>>>
>>> As you are leading this effort, I will request you to take further
>>> initiative and we all are here to help you .
>>>
>>>
>>> Thanks
>>> --
>>> Divesh Dutta.
>>>
>>>
>>>
>>> On Mon, Jun 6, 2016 at 3:35 PM, Taher Alkhateeb <
>>> [hidden email]>
>>> wrote:
>>>
>>>> Hi Sharan,
>>>>
>>>> It's really good to have you on board in this project, thank you for
>> the
>>>> positive energy :) I compile below my ideas based on your feedback:
>>>>
>>>> First of all, the ideas I listed in this thread are just ideas that are
>>>> subject to change. The important thing is moving forward and getting
>>> things
>>>> done. So I ask everyone not to worry too much about the choice of
>>>> technology or tool to use here or there. I'm sure whatever we decide to
>>> go
>>>> with eventually is okay. In the end, these are tools, what matters is
>>>> people and process.
>>>>
>>>> Second I noticed a problem that maybe you Sharan can help with. I
>>> observed
>>>> multiple times from some community members that they actually _want_ to
>>>> help but are overwhelmed with the complexity of this process and are
>> not
>>>> sure how to help.
>>>>
>>>> The hesitation for others to engage is because collaboration over the
>>> Wiki
>>>> Page, Mailing List and JIRA is definitely not enough. Why?
>>>>
>>>> - Slow (feedback on progress, hints, guidance)
>>>> - Not very friendly for beginners
>>>> - Intimidating: some might be reluctant to ask basic questions on
>>>> architecture or programming or so.
>>>> - Overwhelming: We are discussing very technical matters and some
>> people
>>>> would freak out at the complexity. They need to understand that there
>> are
>>>> different tasks at different levels of complexity and that there are
>>> senior
>>>> out there who are willing to help. The tools we are using for
>>> collaboration
>>>> makes it difficult to convey this fact.
>>>> - Impersonal and we cannot get people engaged. Things like
>> conversations,
>>>> brainstorming, assigning tasks, discussing, coaching, teaching and
>>>> encouraging are difficult to do. These personal elements are crucial
>> for
>>>> knowledge transfer and support.
>>>>
>>>> In short, I think there are members in the society who are willing to
>>>> help, but not sure how. It's really unfortunate not to engage these
>>>> individuals because of communication barriers.
>>>>
>>>> My 2 cents!
>>>>
>>>> Taher Alkhateeb
>>>>
>>>> -----Original Message-----
>>>> From: Sharan-F [mailto:[hidden email]]
>>>> Sent: 06 June 2016 10:57
>>>> To: [hidden email]
>>>> Subject: Re: My experience with refactoring the framework
>>>>
>>>> Hi Taher
>>>>
>>>> Thanks for sharing your experience as I think it contains some real
>>>> insights and also re-confirms an important task – we need to tidy up
>> our
>>>> code. And the one crucial message I hear loud and clear in your email
>> is
>>>> that we need everyone to help out too.
>>>>
>>>> (BTW I've seen the amount of work that you have done on the start.java
>>>> which is looking very elegant now :-)
>>>>
>>>> Your list re-factoring ideas touch on a lot of areas that I'm sure will
>>>> generate discussion and I hope that we don't get too caught up in the
>>>> discussion that we don't act. We need to stay active by continually
>> doing
>>>> something that improves OFBiz.
>>>>
>>>> I agree that we should look at holding off adding new features or
>>>> improvements now and just clean. I've seen the huge amount of activity
>>> that
>>>> is happening at the moment so let's see if we can maybe focus some of
>>> that
>>>> energy into tidying up our code and getting rid of our ' historic
>>> technical
>>>> debt' (as mentioned by Jacques).
>>>>
>>>> It sounds like you have already a list of tasks to replenish our
>> Current
>>>> Re-Factor To Do list so let's do that and get the message out to the
>>>> community about what they can do to help. I noticed that if we have a
>>> list
>>>> of tasks that people can pick up easily, then they will.
>>>>
>>>> Going forward we may need to have a bit more co-ordination and also
>> work
>>>> together in small groups focussing on particular areas so things dont
>> get
>>>> broken, especially once the applications start being affected.
>>>>
>>>> I'm happy to help so just let me know how I can.
>>>>
>>>> Thanks
>>>> Sharan
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>>
>> http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
>>>> Sent from the OFBiz - Dev mailing list archive at Nabble.com.
>>>>
>>>>


--
Ron Wheeler
President
Artifact Software Inc
email: [hidden email]
skype: ronaldmwheeler
phone: 866-970-2435, ext 102

Reply | Threaded
Open this post in threaded view
|

Re: My experience with refactoring the framework

taher
In reply to this post by Divesh Dutta-2
Hi Divesh,

Fantastic! Thank you very much for joining. Feel free to contact me
directly if you need anything.

Cheers,

Taher Alkhateeb

On Tue, Jun 7, 2016 at 3:14 PM, Divesh Dutta <[hidden email]
> wrote:

> Thanks Taher for the links. Me , Mridul and Pranay have picked some items
> from the list. We will keep discussing on these items.
>
> Also as you said it will be great once we come up with some clever solution
> to collaborate on these items so that we discuss and make progress on
> refactoring effort.
>
> Thanks
> --
> Divesh Dutta.
>
> On Tue, Jun 7, 2016 at 1:23 PM, Taher Alkhateeb <
> [hidden email]>
> wrote:
>
> > Hi Divesh,
> >
> > This initiative is already going and I invite to jump in:
> > here ->
> > https://cwiki.apache.org/confluence/display/OFBIZ/Re-Factor+To-Do+List
> > and here ->
> > https://cwiki.apache.org/confluence/display/OFBIZ/Coding+Practices
> >
> > I will work on more tasks and more ideas for people to jump in. However,
> I
> > think the problem right now is that of communication and reaching out to
> > interested members who perhaps are intimidated by the process. That's why
> > it was a great gesture from Sharan to invite mentors and I will wait for
> > Sharan or others to come up with some clever solution for us to
> collaborate
> > more effectively.
> >
> > So to give you some clarity on the vision for the refactoring project:
> > - Code should be clean
> > - Things should be modular and isolated
> > - Lower level things should not depend on higher level things
> >
> > That's it, that's the plan! If we stick to it completely and religiously
> > and continue doing this for say 12 months or more, then the code would
> > reach a level of clarity that ALLOWS YOU TO THINK of new ideas and ways
> to
> > improve. You cannot think in a mess!
> >
> > I hope you can join and help out. Take a look at the wiki.
> >
> > Taher Alkhateeb
> >
> > On Tue, Jun 7, 2016 at 9:57 AM, Divesh Dutta <
> > [hidden email]
> > > wrote:
> >
> > > Taher,
> > >
> > > Please let us know how can others help you here. I am sure there are
> many
> > > members who are willing to participate here and help you in
> refactoring.
> > > But all might not know what you have exactly in your mind.
> > >
> > > If you can start with some portions of framework and start describing
> the
> > > problem you see in current implementation , solution you propose with
> > > design notes or implementation notes or some thing to start with for
> > other
> > > developers, I am sure it will be good start for others to collaborate.
> > And
> > > we can also create road map of the refactoring work so that all knows
> > what
> > > is coming up.
> > >
> > >
> > > As you are leading this effort, I will request you to take further
> > > initiative and we all are here to help you .
> > >
> > >
> > > Thanks
> > > --
> > > Divesh Dutta.
> > >
> > >
> > >
> > > On Mon, Jun 6, 2016 at 3:35 PM, Taher Alkhateeb <
> > > [hidden email]>
> > > wrote:
> > >
> > > > Hi Sharan,
> > > >
> > > > It's really good to have you on board in this project, thank you for
> > the
> > > > positive energy :) I compile below my ideas based on your feedback:
> > > >
> > > > First of all, the ideas I listed in this thread are just ideas that
> are
> > > > subject to change. The important thing is moving forward and getting
> > > things
> > > > done. So I ask everyone not to worry too much about the choice of
> > > > technology or tool to use here or there. I'm sure whatever we decide
> to
> > > go
> > > > with eventually is okay. In the end, these are tools, what matters is
> > > > people and process.
> > > >
> > > > Second I noticed a problem that maybe you Sharan can help with. I
> > > observed
> > > > multiple times from some community members that they actually _want_
> to
> > > > help but are overwhelmed with the complexity of this process and are
> > not
> > > > sure how to help.
> > > >
> > > > The hesitation for others to engage is because collaboration over the
> > > Wiki
> > > > Page, Mailing List and JIRA is definitely not enough. Why?
> > > >
> > > > - Slow (feedback on progress, hints, guidance)
> > > > - Not very friendly for beginners
> > > > - Intimidating: some might be reluctant to ask basic questions on
> > > > architecture or programming or so.
> > > > - Overwhelming: We are discussing very technical matters and some
> > people
> > > > would freak out at the complexity. They need to understand that there
> > are
> > > > different tasks at different levels of complexity and that there are
> > > senior
> > > > out there who are willing to help. The tools we are using for
> > > collaboration
> > > > makes it difficult to convey this fact.
> > > > - Impersonal and we cannot get people engaged. Things like
> > conversations,
> > > > brainstorming, assigning tasks, discussing, coaching, teaching and
> > > > encouraging are difficult to do. These personal elements are crucial
> > for
> > > > knowledge transfer and support.
> > > >
> > > > In short, I think there are members in the society who are willing to
> > > > help, but not sure how. It's really unfortunate not to engage these
> > > > individuals because of communication barriers.
> > > >
> > > > My 2 cents!
> > > >
> > > > Taher Alkhateeb
> > > >
> > > > -----Original Message-----
> > > > From: Sharan-F [mailto:[hidden email]]
> > > > Sent: 06 June 2016 10:57
> > > > To: [hidden email]
> > > > Subject: Re: My experience with refactoring the framework
> > > >
> > > > Hi Taher
> > > >
> > > > Thanks for sharing your experience as I think it contains some real
> > > > insights and also re-confirms an important task – we need to tidy up
> > our
> > > > code. And the one crucial message I hear loud and clear in your email
> > is
> > > > that we need everyone to help out too.
> > > >
> > > > (BTW I've seen the amount of work that you have done on the
> start.java
> > > > which is looking very elegant now :-)
> > > >
> > > > Your list re-factoring ideas touch on a lot of areas that I'm sure
> will
> > > > generate discussion and I hope that we don't get too caught up in the
> > > > discussion that we don't act. We need to stay active by continually
> > doing
> > > > something that improves OFBiz.
> > > >
> > > > I agree that we should look at holding off adding new features or
> > > > improvements now and just clean. I've seen the huge amount of
> activity
> > > that
> > > > is happening at the moment so let's see if we can maybe focus some of
> > > that
> > > > energy into tidying up our code and getting rid of our ' historic
> > > technical
> > > > debt' (as mentioned by Jacques).
> > > >
> > > > It sounds like you have already a list of tasks to replenish our
> > Current
> > > > Re-Factor To Do list so let's do that and get the message out to the
> > > > community about what they can do to help. I noticed that if we have a
> > > list
> > > > of tasks that people can pick up easily, then they will.
> > > >
> > > > Going forward we may need to have a bit more co-ordination and also
> > work
> > > > together in small groups focussing on particular areas so things dont
> > get
> > > > broken, especially once the applications start being affected.
> > > >
> > > > I'm happy to help so just let me know how I can.
> > > >
> > > > Thanks
> > > > Sharan
> > > >
> > > >
> > > >
> > > > --
> > > > View this message in context:
> > > >
> > >
> >
> http://ofbiz.135035.n4.nabble.com/My-experience-with-refactoring-the-framework-tp4682539p4682591.html
> > > > Sent from the OFBiz - Dev mailing list archive at Nabble.com.
> > > >
> > > >
> > >
> >
>