Develop At The Speed Of Thought

1,298 views

Published on

Develop At The Speed Of Thought

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,298
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
81
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Develop At The Speed Of Thought

  1. 1. Develop at the Speed of Thought<br />By Roy Ganor<br />Eclipse PDT (PHP) & ATF (Ajax) Project Lead<br />Zend Studio Project Lead<br />
  2. 2. Production Output<br />=<br />Productivity<br />Production Input<br />
  3. 3. Productivity<br />=<br />Output<br />Input X<br />
  4. 4. The Four Values<br />Value #3: Tools Matter<br />Value #1:<br />Streamline software development life-cycle<br />Value #2: Courage<br />Value #4:<br />Task Focus Programming<br />
  5. 5. Value #1: <br />Streamline Software Development Life-Cycle<br />
  6. 6.
  7. 7. 2<br />Develop<br />Write and run tests<br />1<br />6<br />Get/Set Goals<br />Set Tasks and Sub tasks<br />Release <br />Engineering<br />Developers<br />Task Repository<br />3<br />Continuously commit <br />changes to SCM<br />5<br />8<br />Provide <br />feedback<br />Provide <br />feedback<br />Source Code <br />Management<br />Release Management<br />Settings<br />4<br />Poll changes<br />7<br />Produce<br />artifact <br />Testers<br />Release Management<br />System<br />(Continuous) integration <br />Server<br />Production Clone<br />
  8. 8. Project Management<br /> Setting up a development environment is hard!<br />We have a “monkey” for such kind of jobs<br /> Discrepancies between development environment and <br /> the final product<br />
  9. 9. Project Team Set<br />Quickly import a bunch of projects from CVS/SVN<br />&quot;Team Project Set&quot; Export Wizard<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;psf version=&quot;2.0&quot;&gt;<br />&lt;provider id=&quot;org.eclipse.team.cvs.core.cvsnature&quot;&gt;<br />&lt;project reference=&quot;1.0,:pserver:my.company.repo:/repos,module/project1&quot;/&gt;<br />&lt;project reference=&quot;1.0,:pserver:my.company.repo:/repos,module/project1&quot;/&gt;<br /> ...<br />&lt;project reference=&quot;1.0,:ext:oss.org:/cvsroot/ns,module/project,v200909160005&quot;/&gt;<br />&lt;project reference=&quot;1.0,:ext:oss.org:/cvsroot/ns,module/project,v200904131653&quot;/&gt;<br /> ...<br />&lt;/provider&gt;<br />&lt;workingSets ...&gt;&lt;/workingSets&gt;<br />&lt;psf&gt;<br />
  10. 10. Managing Project’s Resources<br />Separate back-end(core), front-end(ui), tests and release stuff<br />Enforce dependencies<br />Separate PHP from Resources<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;buildpath&gt;<br /> &lt;buildpathentrykind=&quot;src&quot;path=&quot;core&quot;/&gt;<br /> &lt;buildpathentrykind=&quot;con&quot;path=&quot;org.eclipse.php.core.LANGUAGE&quot;/&gt;<br />&lt;/buildpath&gt;<br />
  11. 11. Release based on Tags<br />com.project.core=v20091007-1624,:pserver:cvs@cvs.int.net:/.repos,mi.r+qz^,Module/com.project.core/<br />com.project.ui=v20090819-1600,:pserver:cvs@cvs.int.net:/.repos,mi.r+qz^,Module/com.project.ui/<br /># PHP Unit<br />phpunit.version=3.3.17<br /># PHP Documentor<br />phpdoc.version=1.4.2<br /># Studio Documentation (PDF, EULA)<br />documentaion.tag=HEAD<br /># Zend Framework<br />zf_19.version=1.9.3<br /># PHP<br />php5.version=5.2.10<br />php53.version=5.3.0<br />
  12. 12. Streamline Environment Setup<br /> Manual configuration is the source of evil<br /> Can be used later on by release systems<br />Cross-platform scripts to configure workspace<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;projectname=&quot;Builds all parser classes&quot;default=&quot;main&quot;&gt;<br /> &lt;targetname=&quot;main&quot;&gt;<br /> &lt;uptodateproperty=“isUpdated&quot;src=“file1&quot;target=“file2”/&gt;<br />&lt;if&gt; ... &lt;!– if file was updated --&gt;<br /> &lt;phingcall target=“generateCode&quot;&gt;<br /> &lt;propertyname=“prop1&quot;value=“${value1}&quot;/&gt;<br /> &lt;propertyname=“prop2&quot;value=“${value2}&quot;/&gt;<br /> &lt;phingcall/&gt;<br /> &lt;/if&gt;<br /> &lt;/target&gt;<br />&lt;/project&gt;<br />
  13. 13. Streamline Environment Setup (2)<br /> Invisible for developers, it just works!<br />
  14. 14. Value #2: Courage<br />
  15. 15. Value #3: Tools Matter<br />
  16. 16. Value #4: Task Focus Programming<br />
  17. 17. Task Management Systems<br />Episodic memory on specific tasks<br />Subset of information that is relevant to specific task<br />Focus on the content that is related to a specific task<br />Task focus interface - Activating a task what you’re working on is very clear, deactivating tasks brings back all content<br />Share context with developers<br />Task Repository viewer and history <br />
  18. 18. Before<br />Information overload<br />Context loss when multi-tasking<br />
  19. 19. After<br />Tasks are integratedSee only what you are working on<br />
  20. 20. [Q&[A]]<br />Eclipse PDT Forum – http://www.eclipse.org/forums/<br />Zend Studio Forum – http://forums.zend.com/<br />My email: roy@zend.com<br />@royganor<br />

×