Craig
It seems we're running circles. No leader is needed now aside for someone
who starts writing code. How about you choose some an app you consider to
be a good start? We then find volunteers. And start coding.

I'm sure that the moment it starts, everyone will be interested in results.
On Aug 22, 2013 3:27 AM, "Craig" <webe...@gmail.com> wrote:

> I'm not opposed; however, every time I've delved into Elementary
> development, I've found myself fighting too many tertiary fires before I'm
> able to get any real work done (usually it's chasing down one obscure
> environment issue or another). So basically, I would like someone who is
> competent at Elementary development to "champion" the project (to serve as
> its leader) and I and a few other TDDevelopers can coach the development
> team as well as help develop ourselves.
>
> Furthermore, this exercise will be more productive if we have other devs
> who are interested in *learning* TDD to participate.
>
> So basically, if you can find a few elementary-proficient developers to
> help with the elementary-specific problems (including a project lead), the
> other TDDevelopers and I can coach and develop along side them.
>
> Thoughts?
>
>
> On Wed, Aug 21, 2013 at 4:50 PM, Kurt Smolderen <kurt.smolde...@empuly.net
> > wrote:
>
>> What do you think of giving Footnote some love? I think it is currently
>> unmaintained (need to verify that), it's conceptually a rather simple
>> application but offers a good set of practices for TDD/ writing tests.
>>
>> We need to verify first of course what the intentions of the current
>> owner are, but I would personally like to see a new version of Footnote...
>>
>> Craig <webe...@gmail.com> wrote:
>>>
>>>
>>> I have never heard a project die because they decided to move to TDD.
>>>> And I heard about lots of hits on the matter.
>>>
>>>
>>> This. I've heard (and witnessed) a lot of projects drop their defect
>>> percentage from 20% to 3%.  A lot of new-to-TDD developers don't like it at
>>> first because it feels slower, but I don't think those people remember how
>>> much time is spent bug hunting at the end of a release cycle.
>>>
>>> I think the next step is to find a pilot project and get the lead
>>> developer(s) to agree to work toward TDD. This will probably look like:
>>>
>>> 1) Modifying the project structure to include _test directories
>>> 2) Creating tests with GLib.Test or some such
>>> 3) Coaching/mentoring the developers at TDD
>>> 4) Performing code reviews in which insufficiently tested code is sent
>>> back for revision
>>>
>>> After testing it out for a few months, the community can see how they
>>> like it.
>>>
>>> Does this sound like a reasonable approach? If so, would any project
>>> leads like to volunteer their project? And who in the community would like
>>> to participate in such an experiment?
>>>
>>>
>>> On Wed, Aug 21, 2013 at 4:34 AM, Alex Lourie <djay...@gmail.com> wrote:
>>>
>>>> Albert
>>>>
>>>> We don't need to exaggerate. Though TDD is, indeed, a development
>>>> methodology, it is not supposed to completely change the way everyone 
>>>> works.
>>>>
>>>> Just consider that writing a good test takes about 10 minutes, and that
>>>> each developer writes one or two tests for new stuff they add (or the old
>>>> one they fix) from time to time. Then, in time, you'll have part of your
>>>> code tested, which is exactly what we're aiming for. Beginning is hard,
>>>> continue something is easier.
>>>>
>>>> I have never heard a project die because they decided to move to TDD.
>>>> And I heard about lots of hits on the matter.
>>>>
>>>>
>>>>  On Tue, Aug 20, 2013 at 3:37 AM, Albert Palacios 
>>>> <optimi...@gmail.com>wrote:
>>>>
>>>>> Hi Craig,
>>>>>
>>>>> Thanks for your explanation and the linked video. I am still agnostic,
>>>>> but I don't want to be the only one who complained about the proposal.
>>>>>
>>>>> At this point I have more questions than answers, and those will
>>>>> probably be solved with a working example.
>>>>>
>>>>> But remember, *TDD is a development methodology* not a testing
>>>>> methodology. It will change our development work flow, and will probably
>>>>> move potential volunteers away from the project.
>>>>>
>>>>> TDD like every other development methodology does not fit every
>>>>> project or team. It can be a hit, and it can even the death of the 
>>>>> project.
>>>>>
>>>>>  Albert
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Aug 20, 2013 at 12:50 AM, Craig <webe...@gmail.com> wrote:
>>>>>
>>>>>> Hi Albert,
>>>>>>
>>>>>> Thanks for your response, you asked a lot of great questions. In
>>>>>> addition to Gufran's earlier response.
>>>>>>
>>>>>>  Can you prove that there will be huge benefits in time/resources?
>>>>>>
>>>>>>
>>>>>> Well, that depends on what you consider "proof". In the spring, my
>>>>>> company paid several thousand dollars to send me to a conference in San
>>>>>> Jose in which many software development authorities recited, "test driven
>>>>>> development pays itself off in iteration 0". That means the very first 
>>>>>> time
>>>>>> you write the code it has already paid for itself (because even before 
>>>>>> you
>>>>>> get the automatic-regression testing benefits, you've already got the
>>>>>> benefits of a better architecture and documentation--because the tests
>>>>>> _are_ the documentation!). I'm sure I can dig up lots of other resources,
>>>>>> but I think it should suffice to say that I've never heard an expert
>>>>>> comment on TDD except to say it's fastest way to develop quality 
>>>>>> software.
>>>>>> For more information addressing your specific concerns, se e the 
>>>>>> Wikipedia
>>>>>> article's "benefits" section (and read on to the "shortcomings" as it is
>>>>>> also relevant:
>>>>>> http://en.wikipedia.org/wiki/Test-driven_development#Benefits. Even
>>>>>> more importantly, this short video:
>>>>>> http://www.youtube.com/watch?v=DodJQyHsmHI
>>>>>>
>>>>>>
>>>>>> Can you prove that there will be less bugs? (looks like that if tests
>>>>>>> are not right, bugs will populate equally).
>>>>>>
>>>>>> It's pretty hard to write bad tests if you're practicing TDD, because
>>>>>> you write the test first, watch it fail, insert the code you need to make
>>>>>> it pass, and then hopefully watch it pass. If you wrote a bad test, it 
>>>>>> very
>>>>>> probably will pass before you've written the code to make it pass (which
>>>>>> serves to alert the programmer that his test is bad or his software is
>>>>>> doing something unexpected) or the test will fail after he has correctly
>>>>>> written the next line of code (which serves to alert the programmer to
>>>>>> review both the code and his test and identify the source of the 
>>>>>> problem).
>>>>>> For this reason alone, many, many bugs are eliminated.
>>>>>>
>>>>>> From what's been said, looks like there will be an extra effort on
>>>>>>> development, adding complexity and more tools to know (not to say 
>>>>>>> maintain).
>>>>>>
>>>>>> Besides the initial learning curve, development actually goes
>>>>>> _faster_ with TDD (see the aforementioned Wikipedia article--I can 
>>>>>> provide
>>>>>> more resources on demand) because debugging time becomes exponentially 
>>>>>> more
>>>>>> expensive as time passes after the bug has been introduced. This is 
>>>>>> because
>>>>>> the bug can live anywhere in any code that has been added *since the last
>>>>>> time the tests were run* and because the programmer will have an
>>>>>> increasingly difficult time remembering the code he wrote at the time of
>>>>>> the bug as time progresses. With TDD, you are running the tests after 
>>>>>> every
>>>>>> change (generally you test every time you build), so as soon as you've
>>>>>> broken something you find out about it. This means that the bug is
>>>>>> guaranteed to live in the last change you made, which is a smaller sample
>>>>>> and fresher-in-your-mind than changes you made weeks ago. Regarding your
>>>>>> complexity concern, generally the process isn't complex (it's actually 
>>>>>> very
>>>>>> simple) and it _simplifies_ development once you learn how to do it. The
>>>>>> most complex part is figuring out how to integrate testing into the CMake
>>>>>> project, and that's only complicated because CMake is complicated.
>>>>>> Regarding tools, there are already testing tools available for Vala,
>>>>>> including GLib (so we don't have to maintain anything). Anyway, testing
>>>>>> tools don't take a terribly long time to learn.
>>>>>>
>>>>>>  Can we focus on the half done things before adding new projects?
>>>>>>> Granite is not ready, documentation is missing, not to talk about the 
>>>>>>> bugs
>>>>>>> that survived Luna release ...
>>>>>>
>>>>>>
>>>>>> TDD is more valuable the sooner you start implementing it. Even if
>>>>>> you didn't write tests for old code and only started TDD with new code 
>>>>>> (and
>>>>>> existing defects), you would be doing yourself a huge favor. I'm not
>>>>>> suggesting that everyone stop what they're doing and go back and test 
>>>>>> every
>>>>>> line of code (although it would be a good thing to chip away at over 
>>>>>> time),
>>>>>> but practicing TDD on _new_ code can't hurt that much, can it?
>>>>>>
>>>>>> With that in mind, are there any arguments against TDD that outweigh
>>>>>> its merits?
>>>>>>
>>>>>> Thanks again for your questions! :)
>>>>>> Craig
>>>>>>
>>>>>>
>>>>>> On Mon, Aug 19, 2013 at 12:32 PM, Albert Palacios <
>>>>>> optimi...@gmail.com> wrote:
>>>>>>
>>>>>>> Hi Craig and Gufran,
>>>>>>>
>>>>>>> I don't agree with TDD, and making a committee. Can you prove that
>>>>>>> there will be huge benefits in time/resources? Can you prove that there
>>>>>>> will be less bugs? (looks like that if tests are not right, bugs will
>>>>>>> populate equally). Can you prove that creating, modifying and fixing 
>>>>>>> code
>>>>>>> is going to be easier?
>>>>>>>
>>>>>>> From what's been said, looks like there will be an extra effort on
>>>>>>> development, adding complexity and more tools to know (not to say
>>>>>>> maintain).  Can we focus on the half done things before adding new
>>>>>>> projects? Granite is not ready, documentation is missing, not to talk 
>>>>>>> about
>>>>>>> the bugs that survived Luna release ...
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Aug 19, 2013 at 7:27 PM, Gufran <dogab...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Count me in.
>>>>>>>> I cant really put forward any point on how should we proceed but
>>>>>>>> I'd definitely love to be with the team.
>>>>>>>> Yes, a *testing committee* is a good idea, maybe something
>>>>>>>> independent of dev community. We can write scripts to automate tests, 
>>>>>>>> and
>>>>>>>> we can do that in any language (Python for example), so it would be 
>>>>>>>> like a
>>>>>>>> Python coupling between software and tests.
>>>>>>>> Just my two cents :)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Aug 19, 2013 at 10:43 PM, Craig <webe...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> This is cool and important, but I don't think it should stop the
>>>>>>>>> discussion on test driven development. Perhaps this could be a 
>>>>>>>>> separate
>>>>>>>>> thread? It doesn't sound as though anyone is opposed to TDD, so can we
>>>>>>>>> confirm that? And if no one is opposed, how can we proceed? Can we 
>>>>>>>>> start
>>>>>>>>> some kind of a "testing committee" to help determine what testing 
>>>>>>>>> steps are
>>>>>>>>> needed, what framework to use, and how to integrate testing into the
>>>>>>>>> existing project structure (i.e., using CMake)?
>>>>>>>>>
>>>>>>>>> Does this sound like a good plan? Thoughts?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Aug 19, 2013 at 12:05 PM, David Gomes <
>>>>>>>>> da...@elementaryos.org> wrote:
>>>>>>>>>
>>>>>>>>>> I'll work on it, so far we only have this I made:
>>>>>>>>>> https://dl.dropboxusercontent.com/u/19899464/reviewstutorial.html
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 19, 2013 at 6:01 PM, Albert Palacios <
>>>>>>>>>> optimi...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Munchor,
>>>>>>>>>>>
>>>>>>>>>>> A contribution / bug fixing step by step guide is needed at the
>>>>>>>>>>> developers site. There was a .pdf before the new site change, but 
>>>>>>>>>>> now it is
>>>>>>>>>>> impossible to find.
>>>>>>>>>>>
>>>>>>>>>>>  The problem with the old guide is that it encouraged to create
>>>>>>>>>>> your own branch instead of using the ~elementary-dev-community one 
>>>>>>>>>>> (this is
>>>>>>>>>>> totally new for me). Obviously, bazaar guides doesn't teach you on 
>>>>>>>>>>> using
>>>>>>>>>>> the "elementary-dev-community".
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Aug 19, 2013 at 6:57 PM, David Gomes <
>>>>>>>>>>> da...@elementaryos.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I always tell people if they make their branches owned by
>>>>>>>>>>>> ~elementary-dev-community I will volunteer to fix the code style 
>>>>>>>>>>>> myself. I
>>>>>>>>>>>> have all the free time and the will to do it, just people always 
>>>>>>>>>>>> make their
>>>>>>>>>>>> branches owned by themselves.
>>>>>>>>>>>>
>>>>>>>>>>>> ~David "Munchor" Gomes
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Aug 19, 2013 at 4:29 PM, Albert Palacios Jimenez <
>>>>>>>>>>>> optimi...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Before talking about testing, and advanced development
>>>>>>>>>>>>> techniques for teams with resources, there is one easy and simple 
>>>>>>>>>>>>> thing we
>>>>>>>>>>>>> can do to accelerate development.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Sometimes (very often), bugs are stopped due spaces not
>>>>>>>>>>>>> following the "code style" guidelines. Adding a "code style" 
>>>>>>>>>>>>> validator
>>>>>>>>>>>>> script before compiling, we can prevent uploads with spaces at 
>>>>>>>>>>>>> the end of
>>>>>>>>>>>>> the lines ...  and save a lot of time.
>>>>>>>>>>>>>
>>>>>>>>>>>>> For example, just executing the next line before compiling:
>>>>>>>>>>>>>
>>>>>>>>>>>>> find . -type f -print0 | xargs -0 sed -i 's/[ \t]*$//'
>>>>>>>>>>>>>
>>>>>>>>>>>>> We will remove every "white space" at the end of any line,
>>>>>>>>>>>>> including new lines with tab spaces.
>>>>>>>>>>>>>
>>>>>>>>>>>>> This can sound stupid, but it is absurd to block bug fixes
>>>>>>>>>>>>> during several days due white spaces at the end of lines.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>>>>>>>>>>> Post to     : elementary-dev-community@lists.launchpad.net
>>>>>>>>>>>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>>>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>>>>>>>> Post to     : elementary-dev-community@lists.launchpad.net
>>>>>>>>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>>>>>>> Post to     : elementary-dev-community@lists.launchpad.net
>>>>>>>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>>>>>> Post to     : elementary-dev-community@lists.launchpad.net
>>>>>>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>>> Post to     : elementary-dev-community@lists.launchpad.net
>>>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Alex Lourie
>>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>>
>>> Post to     : elementary-dev-community@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>>
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>
> --
> Mailing list: https://launchpad.net/~elementary-dev-community
> Post to     : elementary-dev-community@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~elementary-dev-community
> More help   : https://help.launchpad.net/ListHelp
>
>
-- 
Mailing list: https://launchpad.net/~elementary-dev-community
Post to     : elementary-dev-community@lists.launchpad.net
Unsubscribe : https://launchpad.net/~elementary-dev-community
More help   : https://help.launchpad.net/ListHelp

Reply via email to