Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: What are Github commits?  (Read 1051 times)

0 Members and 1 Guest are viewing this topic.

Offline Gentso1

What are Github commits?
« on: January 05, 2015, 10:36:38 PM »

If you google the above term it gives you answers based on you trying to learn to use github.

I have no interest in that. I am trying to get a working understanding of what commits actually are and more importantly if we as users/shareholders can use them as some sort of metric.I would ideally

like to be able to have a rough gauge of what devs are working on and how often. I can see part of this (I think) by looking at the branch the commit is going to.

With Dev's now having to come onto the forum and make a case for their delegates this could make their job easier if folks like me understand Github.

Any thoughts or ideas on bridging the Dev/shareholder divide would be greatly appreciated.

Offline toast

Re: What are Github commits?
« Reply #1 on: January 05, 2015, 10:48:11 PM »
In theory a commit is the smallest unit of code change.

Commits are as bad of a metric as lines of code. They give you a very rough sense of activity, but rewarding based on either will lead to badly broken incentives.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

Re: What are Github commits?
« Reply #2 on: January 05, 2015, 10:54:50 PM »
More specifically, frequency of commits gives you an idea of whether someone is actively working on something or not.  No commits means they are not writing code.

In theory a developer should commit their work on a daily basis even if it is incomplete.  In practice any developer that goes weeks between commits is likely doing something else other than coding. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline Thom

Re: What are Github commits?
« Reply #3 on: January 06, 2015, 12:00:03 AM »
More specifically, frequency of commits gives you an idea of whether someone is actively working on something or not.  No commits means they are not writing code.

In theory a developer should commit their work on a daily basis even if it is incomplete.  In practice any developer that goes weeks between commits is likely doing something else other than coding.

The specific definition for a github (or other source code management systems) commit is: A "commit" is the action performed by a developer to contribute or commit code to the source repository. As toast says it is only a rough gauge of activity. A simple spelling error in a code comment could be fixed and committed and that increments the version / commit number, tho it had zero effect on the functionality of the code.

To somewhat counter to BM's first sentence, it is possible a developer is actually doing coding work but hasn't checked in (committed) changes yet. As BM went on to explain, following good coding practices would mean regular commits, generally a minimum of once per day. However, there are a number of reasons the frequency might legitimately less than once per day. It really depends on the urgency of the changes, whether the programmer might be doing work while on the road or whether the code is for a brand new feature and has no other dependencies and is a prototype / work in progress / experiment.

The point is there are exceptions to the a daily commit schedule. In general it should be done quite often. It reduces the risk of loosing changes and provides a very important control point, especially where many developers are working on the same project. When it comes to open source projects like BitShares it's important to keep everyone syncronized and on the same page so to speak.
Injustice anywhere is a threat to justice everywhere - MLK |  Verbaltech Team Witness Proposal: https://bitsharestalk.org/index.php/topic,13837.msg243656.html#msg243656

Offline gamey

  • Hero Member
  • *****
  • Posts: 2253
    • View Profile
Re: What are Github commits?
« Reply #4 on: January 06, 2015, 12:03:21 AM »

Even if you get past commits and into # of code line changes it would be something of an improvement.  However, you would be skipping over people who might not be coding and instead tracking down hard to find bugs.  Debugging obscure bugs is the type of thing that can take a week and lead to 1 line of code change.  It is a job that is just as key as writing the code itself, arguably more key.

So.. please don't read too much into commits.
I speak for myself and only myself.

Offline Gentso1

Re: What are Github commits?
« Reply #5 on: January 06, 2015, 12:23:44 AM »
Please understand I get that its not just about commits. I am trying to get my own personal set of metrics.

With devs coming onto the forum needing to have delegates elected I think its important for shareholders to be at least somewhat educated on who is doing what and how often.

I think I have a basic understanding of commits now.

Any suggestions of what other holders like myself can use to help to gauge what  coder is doing. I know this is a tough question, I am just looking for some guidelines.


Security of shares and education of holders is the first step to a greater voter participation imho.

charleshoskinson

  • Guest
Re: What are Github commits?
« Reply #6 on: January 06, 2015, 01:08:40 AM »
Here is a course I'd recommend to get a better understanding how how a version control system works: https://www.udacity.com/course/viewer#!/c-ud775/l-2980038599. It's not terribly difficult to understand from a high level. Basically, software developers are working on the same application on different machines and at different times and locations. In a perfect world, each would have their own little module they are responsible for and no one else would ever touch their code.

Of course, this isn't the case, development is a collaborative, often messy process with many different eyes and hands touching the same source and at different times. Thus one needs what is called a version control system to sort out who has done what and when and also to create living history so that one can rewind the clock to earlier periods in the project's history.

Often one can look at commits as a metric of developer productivity telling you in a transparent log when, how often and what a developer has done. Git is a decentralized software system to sort all of this out. Github is a website that allows people to store and audit their code online and is free to use for open source projects. There are many types of VCS and lots of philosophy on how to use them and what is best for a particular type of project. I'd recommend looking at this wiki: http://en.wikipedia.org/wiki/Revision_control for the terminology that is commonly used and also this wiki for list of different VCS -> http://en.wikipedia.org/wiki/List_of_revision_control_software.

I hope that helps

Quote
Any suggestions of what other holders like myself can use to help to gauge what  coder is doing. I know this is a tough question, I am just looking for some guidelines.

Without having knowledge about the language they are coding in or the fundamentals covering the problems they are trying to solve, this is tough. Generally you can look at documentation associated with commits, code comments, check style and format of the code via some validator like pylint. Also you can ask questions about quality control and testing. For example, where are the unit tests. How did you determine that once merged this code wouldn't break the system? Peer review is also a valid way of determining quality. There are development systems like behavior driven development and methodologies like Scrum that help make the process smoother and more auditable to outside parties.

The reality is that the environment in which the code is written and the project management has as much to do with the end result as the skill of the developer. Bad processes can slow or destroy progress and force bad architecture to be maintained. Also there is a broader meta question of what do we want this program to work with and on? The decisions made there can dramatically impact speed quality, security and usability. Generally the person responsible for those decisions has a role like chief software architect.
« Last Edit: January 06, 2015, 01:23:11 AM by charleshoskinson »

Offline onceuponatime

Re: What are Github commits?
« Reply #7 on: January 06, 2015, 01:12:50 AM »
Here is a course I'd recommend to get a better understanding how how a version control system works: https://www.udacity.com/course/viewer#!/c-ud775/l-2980038599. It's not terribly difficult to understand from a high level. Basically, software developers are working on the same application on different machines and at different times and locations. In a perfect world, each would have their own little module they are responsible for and no one else would ever touch their code.

Of course, this isn't the case, development is a collaborative, often messy process with many different eyes and hands touching the same source and at different times. Thus one needs what is called a version control system to sort out who has done what and when and also to create living history so that one can rewind the clock to earlier periods in the project's history.

Often one can look at commits as a metric of developer productivity telling you in a transparent log when, how often and what a developer has done. Git is a decentralized software system to sort all of this out. Github is a website that allows people to store and audit their code online and is free to use for open source projects. There are many types of VCS and lots of philosophy on how to use them and what is best for a particular type of project. I'd recommend looking at this wiki: http://en.wikipedia.org/wiki/Revision_control for the terminology that is commonly used and also this wiki for list of different VCS -> http://en.wikipedia.org/wiki/List_of_revision_control_software.

I hope that helps

It helps! Thank you.

Offline Thom

Re: What are Github commits?
« Reply #8 on: January 06, 2015, 05:56:40 AM »
That was a good overview of the important aspects Charles, quite thorough without being so detailed you have to have a degree in computer science or be a developer to understand the important aspects of software development.

Gamey also made a good point about how arduous tracking down bugs can be and how tracking commit activity can be a very poor metric to gauge a developer's contributions.

Having been a developer for several decades myself I can testify how important the dev process is, as well as the funding and attitude about quality control, what methods of code review are used, the level of unit testing required at various stages of the coding cycle, and how bug tracking is utilized. I also believe it's important to rotate members of the dev team in and out of the various roles. In my experience devs generally prefer to work on new code / functionality as opposed to bug fixing or writing test suites.

There are many things to consider that few people can appreciate if they've never been a developer.
Injustice anywhere is a threat to justice everywhere - MLK |  Verbaltech Team Witness Proposal: https://bitsharestalk.org/index.php/topic,13837.msg243656.html#msg243656

charleshoskinson

  • Guest
Re: What are Github commits?
« Reply #9 on: January 06, 2015, 07:21:45 AM »
Thom are you involved in writing the code or QA for bitshares?

Offline Gentso1

Re: What are Github commits?
« Reply #10 on: January 06, 2015, 12:56:40 PM »
Thanks so much for everyone's posts and points of view. It looks like I have a video to watch and a little reading.

Your insight's as coders help people like me to think about and understand the work you are able to and also how efficiently you are able to do it.If a DPOS based system is going to succeed it

depends on shareholders voting and understanding what they are voting on, I think I can do the later a little bit easier now.

 

charleshoskinson

  • Guest
Re: What are Github commits?
« Reply #11 on: January 06, 2015, 09:30:25 PM »
Quote
If a DPOS based system is going to succeed it

The bigger issue is that DPOS itself needs to be vetted by some people with a strong cryptography and computer science background. Stellar for example discovered some flaws in their consensus algorithm. It's tough to design and deploy these things and the eventual implementation may be riddled with suboptimal design choices. Bitshares really needs a chief cryptographer to vet both the code and the consensus algo.

You guys also need a quality assurance delegate to review the coding practices, project management, and developer productivity and then write objective reports on some regular basis for the voters to review.

Offline werneo

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
    • chronicle of the precession of simulacra
  • BTS: werneo
Re: What are Github commits?
« Reply #12 on: January 06, 2015, 10:07:39 PM »
Quote
If a DPOS based system is going to succeed it

The bigger issue is that DPOS itself needs to be vetted by some people with a strong cryptography and computer science background. Stellar for example discovered some flaws in their consensus algorithm. It's tough to design and deploy these things and the eventual implementation may be riddled with suboptimal design choices. Bitshares really needs a chief cryptographer to vet both the code and the consensus algo.

You guys also need a quality assurance delegate to review the coding practices, project management, and developer productivity and then write objective reports on some regular basis for the voters to review.

YES

  +5%

Offline Thom

Re: What are Github commits?
« Reply #13 on: January 06, 2015, 11:25:51 PM »
Thom are you involved in writing the code or QA for bitshares?

No Charles, I'm not involved with BitShares software development.

I agree with you that a stronger review process than is currently in place now would be an important addition at some point (assuming the team uses an in-house peer review process of some sort now), but it's not clear to me the time is right for it.

A person with the skills to do the work you suggest probably won't come cheap, and it would certainly slow down momentum. It also may be difficult to insert such a person into the culture of the team.

I think we need to be very careful about mucking around with the internal process of BitShares software development. We want to be informed about status and progress and being inquisitive about it is certainly a good thing, but we also need to recognize we're not involved closely enough to make decisions that could dramatically change how the dev team functions.

We should trust those in a better position to make such calls. It's not blind trust, the dev team and their leaders have demonstrated excellent progress and generally good decisions. And as shareholders we are provided a much higher degree of access to the team, far more than all other crypto projects I know of.

Good ideas are being raised in this thread. All I'm saying is that our suggestions should be tempered by our limited, outside perspective. I'm guessing but I suspect the majority of the stakeholders do not have much if any experience in the software field.
Injustice anywhere is a threat to justice everywhere - MLK |  Verbaltech Team Witness Proposal: https://bitsharestalk.org/index.php/topic,13837.msg243656.html#msg243656

Offline Gentso1

Re: What are Github commits?
« Reply #14 on: January 06, 2015, 11:53:41 PM »
Quote
If a DPOS based system is going to succeed it

The bigger issue is that DPOS itself needs to be vetted by some people with a strong cryptography and computer science background. Stellar for example discovered some flaws in their consensus algorithm. It's tough to design and deploy these things and the eventual implementation may be riddled with suboptimal design choices. Bitshares really needs a chief cryptographer to vet both the code and the consensus algo.

You guys also need a quality assurance delegate to review the coding practices, project management, and developer productivity and then write objective reports on some regular basis for the voters to review.

In the long term I agree the above would be great but In order to attract the great minds you are suggesting you need money/adoption/notoriety . It funny when you think about it. You have to push ahead at almost reckless speed in order to get to the point of attracting the above minds,go to slow and you become irrelevant before your ideas hit the market. The entire time trying to hang on and not make to many mistakes along the way.I don't think it has to be one coin/token/asset to rule them all but I do think their are limited spots available.

I think devshares are going to be a important part of the above process. A real playground/proving ground for devs and user's. I don't think its the complete answer but a piece of it that may help us avoid the biggest of mistakes.

What are your thoughts on devshares and how they may fit in?

 

Google+