develop at the speed of thought

Post on 17-May-2015

862 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Develop At The Speed Of Thought

TRANSCRIPT

Develop at the Speed of Thought

By Roy Ganor

Eclipse PDT (PHP) & ATF (Ajax) Project Lead

Zend Studio Project Lead

2

Productivity =Production

OutputProduction

Input

3

Productivity= OutputInput X

4

The Four Values

Value #1:

Streamline software

development life-cycle

Value #2: CourageValue #3: Tools Matter Value #4:

Task Focus Programming

5

Streamline Software Development Life-Cycle

Value #1:

6

7

(Continuous) integration Server

Source Code Management

Developers

Continuously commit changes to SCM

Poll changes

Production Clone

Release ManagementSettings

Get/Set Goals

Release Engineering

Provide feedback

Testers

Provide feedback

Task Repository

DevelopWrite and run tests

Set Tasks and Sub tasks

Release ManagementSystem

Produceartifact 

2

16

3

5

4

7

8

8

Project Management

• Setting up a development environment is hard!

We have a “monkey” for such kind of jobs

• Discrepancies between development environment and

the final product

9

Project Team Set

• Quickly import a bunch of projects from CVS/SVN

• "Team Project Set" Export Wizard

<?xml version="1.0" encoding="UTF-8"?><psf version="2.0"> <provider id="org.eclipse.team.cvs.core.cvsnature"> <project reference="1.0,:pserver:my.company.repo:/repos,module/project1"/> <project reference="1.0,:pserver:my.company.repo:/repos,module/project1"/> ... <project reference="1.0,:ext:oss.org:/cvsroot/ns,module/project,v200909160005"/> <project reference="1.0,:ext:oss.org:/cvsroot/ns,module/project,v200904131653"/> ... </provider> <workingSets ...> </workingSets><psf>

10

Managing Project’s Resources

• Separate back-end(core), front-end(ui), tests and release stuff

• Enforce dependencies

• Separate PHP from Resources

<?xml version="1.0" encoding="UTF-8"?><buildpath> <buildpathentry kind="src" path="core"/> <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath>

11

Release based on Tags

# PHP Unitphpunit.version=3.3.17

# PHP Documentorphpdoc.version=1.4.2

# Studio Documentation (PDF, EULA)documentaion.tag=HEAD

# Zend Frameworkzf_19.version=1.9.3

# PHPphp5.version=5.2.10php53.version=5.3.0

com.project.core=v20091007-1624,:pserver:cvs@cvs.int.net:/.repos,mi.r+qz^,Module/com.project.core/com.project.ui=v20090819-1600,:pserver:cvs@cvs.int.net:/.repos,mi.r+qz^,Module/com.project.ui/

12

Streamline Environment Setup

• Manual configuration is the source of evil

• Can be used later on by release systems

• Cross-platform scripts to configure workspace

<?xml version="1.0" encoding="UTF-8"?><project name="Builds all parser classes" default="main"> <target name="main"> <uptodate property=“isUpdated" src=“file1" target=“file2”/>

<if> ... <!– if file was updated --> <phingcall target=“generateCode">

<property name=“prop1" value=“${value1}" /> <property name=“prop2" value=“${value2}" />

<phingcall /> </if> </target></project>

13

Streamline Environment Setup (2)

• Invisible for developers, it just works!

14

Value #2: Courage

15

Value #3:

Tools Matter

16

Value #4:

Task Focus Programming

17

Task Management Systems

• Episodic memory on specific tasks

• Subset of information that is relevant to specific task

• Focus on the content that is related to a specific task

• Task focus interface - Activating a task what you’re working on is very clear, deactivating tasks brings back all content

• Share context with developers

• Task Repository viewer and history

18

BeforeInformation overload

Context loss when multi-tasking

19

AfterTasks are integrated

See only what you are working on

20

[Q&[A]]

Eclipse PDT Forum – http://www.eclipse.org/forums/

Zend Studio Forum – http://forums.zend.com/

My email: roy@zend.com

@royganor

top related