Perforce Software has today shared five essential tips for software development teams to consider by way of spring cleaning the development environment. These management guidelines are designed to help maintain well-organized codebases as well as improving the overall development process.
Randy DeFauw, senior product manager at Perforce Software, told DaniWeb that he has seen the value of breaking down silos over and over again. "Ten years ago I saw a project hit a testing wall because the developers had never seen the test plan before final acceptance began" DeFauw says "Five years ago I saw repeated deployment nightmares because the deployment process was a bunch of sticky notes on someone's desk. And today in product management I'm seeing huge payoffs from making the 'done' criteria more visible."
Having all the important information accessible in one place is a foundation of Agile, DevOps, and continuous delivery. Which is why next week at the Perforce Software 'Merge 2013' conference, one customer in the shape of Intuit is giving a talk that touches on these issues, including using solid branching techniques for deployment data.
"Springtime is when software projects begin to pick up steam, but longer days don't have to equal longer delivery cycles" DeFauw continues "with a well-maintained and well-managed codebase, companies can have peace of mind while ramping up to launch various projects."
Here are those five spring codebase cleaning tips:
Use one tool to keep track of everything: Studies consistently show that poor communication is a barrier to effective delivery — and that this obstacle is more challenging among distributed teams. To overcome this hurdle, make sure everyone knows where to look for all important project assets and information.
Email is, at most, a reminder to look somewhere else: Documentation, deployment instructions, the latest secret to upgrading the database — store it somewhere safe. (Note: File attachments do not count as somewhere safe) The knowledge shared in conversations is just as important; keep it with the code to avoid digging through Outlook folders at 3am.
Plan for growth: If it does not scale, it is going to fail. That home-brewed deployment system hacked together last fall to push one web app into Azure will not work well now that it is supporting a few thousand concurrent users in a system with five tiers.
Virtualization simplifies release engineering: Ever wanted to use real pre-flight checks on every commit? Or simplify five build channels into a unified pipeline to reduce dependency headaches? Modern CI tools provide the horsepower for the job by taking advantage of virtualized build farms.
Manage deployment branches like code branches: Merging has to follow a strategy. After all, companies do not allow someone to randomly cherry-pick changes from a software branch. Not every deployment environment looks the same, and branching strategies for deployment data must take into account divergence, security and selective merging of feature toggles.