The document discusses tools and techniques for streamlining the software development process. It advocates using tools to manage tasks, projects, environments and releases in order to improve productivity. Specific tools and approaches mentioned include using Eclipse plugins for task management, version control integration, environment configuration scripts, and release management based on tags. The goal is to reduce complexity and information overload through task-focused interfaces that provide just the relevant context for developers' current work.
1 of 20
More Related Content
Develop At The Speed Of Thought
1. Develop at the Speed of ThoughtBy Roy GanorEclipse PDT (PHP) & ATF (Ajax) Project LeadZend Studio Project Lead
7. 2DevelopWrite and run tests16Get/Set GoalsSet Tasks and Sub tasksRelease EngineeringDevelopersTask Repository3Continuously commit changes to SCM58Provide feedbackProvide feedbackSource Code ManagementRelease ManagementSettings4Poll changes7Produceartifact TestersRelease ManagementSystem(Continuous) integration ServerProduction Clone
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 SetQuickly 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 ResourcesSeparate back-end(core), front-end(ui), tests and release stuffEnforce dependenciesSeparate PHP from Resources<?xml version="1.0" encoding="UTF-8"?><buildpath> <buildpathentrykind="src"path="core"/> <buildpathentrykind="con"path="org.eclipse.php.core.LANGUAGE"/></buildpath>
11. Release based on Tagscom.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/# 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
12. Streamline Environment Setup Manual configuration is the source of evil Can be used later on by release systemsCross-platform scripts to configure workspace<?xml version="1.0" encoding="UTF-8"?><projectname="Builds all parser classes"default="main"> <targetname="main"> <uptodateproperty=“isUpdated"src=“file1"target=“file2”/><if> ... <!– if file was updated --> <phingcall target=“generateCode"> <propertyname=“prop1"value=“${value1}"/> <propertyname=“prop2"value=“${value2}"/> <phingcall/> </if> </target></project>
17. Task Management SystemsEpisodic memory on specific tasksSubset of information that is relevant to specific taskFocus on the content that is related to a specific taskTask focus interface - Activating a task what you’re working on is very clear, deactivating tasks brings back all contentShare context with developersTask Repository viewer and history