Prototypes

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Prototypes

Mike A
This post has NOT been accepted by the mailing list yet.
Okay, I've just let my tenth project intended for ZF go to another platform -- this time to Symphony. Reason (again)? So much criticism against poor or complex documentation by learned PHP developers. I have two more to decide about.

So why mention it here?

ZF2.0 beta development is like a breath of fresh air because usage examples are emerging and evolving. To me, this has critical importance because I am keen to urgently bring developers into my available ZF pool. They have examples to work with. So I'd like to propose something about prototypes and their management here.

Again, why?

I've been in development of one sort or another since 1969: put the Intel 4004, 8008 and 8080 to good use, and put all sorts of developments into market. Hence, a devout passion for coding. I've also headed companies and lectured on subjects like marketing. Hence, a pragmatic business mind. Point? Developers are intelligent and choosy; the first role of marketing is customer acquisition (then retention); to acquire and retain developers to the ZF community requires a degree of management -- will ZF2 overcome the complex barriers presented to developers by ZF1?

Stats for ZF2 development speak loudly: topic views on this forum average around 25 after a couple of days, and about 10 attended according to the recent "Log from today's IRC meeting". Not a huge core community for such an exciting technological development. I don't attend because I feel out of my league -- and I feel out my league because, overall, there aren't sufficient well explained prototypes and examples.

Evan Coury's efforts are changing my attitude.

Take a look at his opening post within Lots of module manager updates. Well explained, with links, and even descriptions of where likely breaks will occur in the existing prototype example. MWO described similarly when announcing the latest development here, but without detail Evan provided. Hence, when I was muttering like an old fogey having adjusting my prototype after the latest ZF2 beta update, and attempting to fathom MWO's way to recover from it, Evan gave the answers I needed. Once fixed I could look and understand why the breaks occurred. That lifted my knowledge and saved me time.

Developer time costs money. 1,000 hours of developer time spent in learning ZF and its uses the hard way can be drastically reduced by working prototypes and clear, unambiguous, explanations in Evan's style -- a style that does not take for granted that a developer hold detailed knowledge about the framework. In financial terms, 1,000 hours represents a fortune. It takes much more than that to know ZF well. That's what the development team have to overcome to gain developers into the community: helping developers saves a fortune of their time and frustration. Acquire developers then retain them, don't chase them away.

Why's that important in the context of this forum?

Because the leading gurus, who I respect and admire, need to pass on knowledge to those lower in the chain. Gurus (bows humbly)->wise knowledgeable professionals->code whizz kids->keen developers->amateurs->students. They all need a reference point.

A working prototype represents a reference point in any development medium. Decision makers like managers and investors cannot and will not move forward without seeing a working prototype, a precise example, although it may have substantial flaws. IN ZF2 terms, the framework represents the tools and materials, a project example the working prototype based upon those tools and materials. Display working prototypes to the chain of developers and the community will build and grow in their understanding. They will devote time and effort because with working prototypes they can identify where they are going instead of bumping into obstacles like incoherent aspects of documentation.

The working prototype at Github, and that supplied by Evan, have helped me hugely. However, I suggest we need something a little more substantial. For example, a working prototype with a number of common tools like Paginator, another displaying different routes across three-module projects, and another displaying data extracted and displayed from more than two database tables. In other words, a few official Zend rubber-stamped working prototypes displaying common developer tasks. Then build documentation around them (plural), market their availability, and bring developers into contact via them to attract and retain.

For example, this morning (Saturday) I spent time trying to use Paginator. Used latest releases of ZF2, of course. View didn't work, possibly because my index script calls paginator.phtml view script. I played around with various settings for $this->URL in an attempt to provide a valid link to the second page of a dataset:

[play code]
$a= $this->url('default', array(
        'controller' => 'vehicle',
        'action' => 'index?page='.$page,
        )) ;
echo "url = {$a}".PHP_EOL;
echo "<a href=\"{$a}\">{$page}";

"Page not found"->"No exception available". Searched around forums, through the ZF2 library looking at objects like TemplatePathStack, read documentation (old and new) again and again, and took into account MWO's call for proposals regarding view scripts. A working prototype where others had commented, and where I could place my efforts once successful, would help me understand and contribute to the issue. If I can, others can. Then web searches based on that particular working prototype would throw out answers from web-pages from like-minded developers all over the world.

I appreciate that ZF2 is in beta. Frankly, a lot of developers I speak with consider ZF1.11 to appear in beta due to its documentation (much more helpful than it was, but not friendly to ordinary developers). I also appreciate ZF2 as it stands will undergo rapid change. Seeing ZF2 evolve via changes to working prototypes would help a great deal, especially given feedback from the community.

Is there merit in having a set of working prototypes, each concentrating on various aspects of ZF2? Now, whilst ZF2 is evolving? To acquire and retain developers into the community? And as a focal point for producing documentation and tutorials?
Reply | Threaded
Open this post in threaded view
|

Re: Prototypes

SpiffyJr
This post has NOT been accepted by the mailing list yet.
I realize this post is largely surrounding ZF2.0 and it's development but I dare say that the ZF1 documentation is very very good. I can not recall a single time in my ZF development history where I have not found the answer I was looking for in the ZF documentation. By the way - have you seen the ZF2 documentation (http://packages.zendframework.com/docs/latest/manual/en/)? It's slowly coming along.

That said - I see your point on prototypes (or cookbook examples). I work with developers who value cookbooks over documentation so they can basically copy/paste to get going. I personally think this is a poor approach and the developer learns little it does get them going. Are there any examples you're looking for? I wrote the SpiffyDoctrine module and am pretty active on IRC so I could write a Doctrine example utilizing all the features of my module and routes for different controllers.
Kyle S
blogs @ www.spiffyjr.me
github @ www.github.com/spiffyjr
follow @ www.twitter.com/spiffyjr
Reply | Threaded
Open this post in threaded view
|

Re: Prototypes

Mike A
This post has NOT been accepted by the mailing list yet.
I realize this post is largely surrounding ZF2.0 and it's development
Yes, deliberately timed so consideration can be given in time to produce good examples and documentation.

...but I dare say that the ZF1 documentation is very very good.
To people who know their way around ZF, yes. Unfortunately, although vastly improved, I still receive adverse comments by frustrated developers. Their concerns have an impact on production decisions I make. I'm hoping (and somewhat confident) I can invoke the "wow" factor with them some time soon. :)

By the way - have you seen the ZF2 documentation (http://packages.zendframework.com/docs/latest/manual/en/)? It's slowly coming along.
Yes. Would be wonderful if its evolution can include Zend-branded/approved practical examples.

That said - I see your point on prototypes (or cookbook examples).
I mean working prototypes, specifically not cookbook examples. When in final meetings with serious financial investors who will govern whether a project goes ahead or not it's working prototypes that make a difference. Investors and executive management not only do not know about software -- they don't want to. They want to know what their looking at is, what it does, and then engage in a serious discussion about market entry and acquisition. Not only do they not want to see cookbook examples, they would not place any faith in people referring to them AT ALL.

To put this into context, I've spent the last couple of weeks developing a project on ZF2 beta. It's for the car market. The market release will roll out worldwide, country by country. I will not be the developer but an executive managing the whole project, from development to market entry. I build projects like this so I can form a coherent bridge between developers and business executives (and so some developers I'm considering can't flannel me with false science. ;) )

Working prototypes rule for lots of reasons: starting with project credibility. Cookbook examples help developers at the beginning of a quest for a piece of knowledge upon which to build. Mind you, I've seen cookbook thingies in developer code -- it really doesn't belong in a life development.

Are there any examples you're looking for? I wrote the SpiffyDoctrine module and am pretty active on IRC so I could write a Doctrine example utilizing all the features of my module and routes for different controllers.
Thanks, no. My approach has developed into tearing my hair out whilst unravelling from documentation through to analysing ZF classes (often by shoving in dump statements to see if what I think should be spewed out is spewed out -- ZF beating me by a large margin). From this approach I discover things like Paginator doesn't work with ZF2 yet -- but rewrite my code so it does (like rewriting the page-count/link output).

As it happens I've seen Evan's new thread about a module library (applauds loudly) and this evening and tomorrow will have a look at modules there. Great idea -- I do wish I'd known about it before starting this thread. I hope there will be more than one working prototype using contributors' modules! ;)

May even convert some of my stuff for it. However, I lack the confidence of eminent gurus whose shoulders I sway upon.

Thanks for the response!