Scott Coldwell talks about “Managing an international team, Git, CFML, Node, Joomla, Headaches and Heartaches” in this episode of ColdFusion Alive podcast with host Michaela Light.
Scott is one of the speakers of the upcoming Into The Box ColdFusion Conference, where he will talk about Managing an international team, Git, CFML, Node, Joomla, headaches and heartaches.
In his ITB talk, Scott shares how source control is the cornerstone of any substantial codebase, but managing incoming changes and getting them out the door can be complicated, time-consuming, and frustrating.
“You know developers are so anxious to get started on things and they just jump right in and sometimes Source Control is seen as a second-rate thing and, but I gotta tell you it's just crazy not to use it. It is absolutely critical. Even for a one-man show to have things in source control, to have a good history of what you've done, and to have those backups and the possibility to deploy in an automated way. I just can't imagine not having source control on every single project that I work on.” – Scott Coldwell
Episode highlights
- Why is source control critical for all ColdFusion developers
- How to best manage lots of incoming changes via Git and keep aligned with your business process and release cycle
- Lessons from the trenches on working with multiple teams, in multiple time zones, multiple countries and multiple programming languages (CFML, PHP and Node)
- Avoiding Deployment Day Disasters
- Project management war stories
- Why are you proud to use CF?
- WWIT (What Would It Take) to make CF more alive this year?
- Conferences, podcast
- The Modern Face of CFML
- What are you looking forward to at Into The Box?
Source control is the cornerstone of any substantial codebase, but managing incoming changes and getting them out the door can be complicated, time-consuming, and frustrating. In git, where branching is a first-class operation, we'll look at tried-and-true strategies to manage code changes, and see how those strategies align with business processes and release cycles.
Working with one team is tough enough, but with multiple teams, in multiple time zones, countries, different programming languages, cfml, php and node things get even more complex. I have worked in this environment, working through some tough lessons, and learning a lot on the way.
Join me as I tell you a few stories, and give you some strategies for dealing with your project, no matter how small, or big and complex it is.
Mentioned in this episode
- Git stashing – a local commit off to the side and come back to it later
- Git commit without push
- Git branching and merging
- Project release cycle/ Sprint
- 3 weeks total
- 2 weeks development + 1 QA/bug fix/plan next release
- Plus release notes
- The good cadence of the cycle
- Agile methodology
- Daily scrum meetings
- Scrum master helps with good communication within team and developers staying focused on tasks
- Challenge of defining tickets before start coding
- His project tools
- Notification only during certain times
- Seamless between computer, web and phone
- Helps keep things moving
- Channels to organize communication
- Mute channels not interested in but @ mentions still
- Better team orientation than Skype. Better feature than HipChat
- Slack
- Jira bug tracking
- Confluence wiki
- Sourcetree and bitbucket
- Beyond compare – side by side comparison – can hide what you define as “less important” changes, can find
- Sublime code editor – multiline edit, quick selections, nice themes
- Core meeting time for all teams
- Deployment process
- The enemy of reliability is complexity
- “I didn't have time to write a short program, so I wrote a long one instead.” with hat tip to original quote about writing letters by Mark Twain
- Ticketing system – track bugs, hotfixes and change requests
- Gitflow
- Branch per feature
- Common Deployment language and terms
- “Run the merge scripts”
- Beginning with the end in mind – from 7 Habits by Stephen Covey
Speaker details
Scott is a developer and sysadmin at Computer Know How and has been building the web since 2006. He loves elegant, simple solutions and helping others achieve the same.
Links
Interview transcript
Michael: Welcome back to the show. I'm here with Scott Caldwell from Computer Know How and he is going to be talking about managing an international team using Git, ColdFusion, Node, Joomla, and all the headaches and heartaches he went through on a big project. So we're gonna look at how he used source control. In particular, Git and why that's critical for all ColdFusion developers.
How to best manage lots of incoming changes by Git, and keeping aligned with your business process and release cycle at the same time. Lessons from the trenches on working with multiple teams, in multiple time zones, in multiple countries and multiple programming languages. I can see where the headache and heartache part came in in this talk. And avoiding deployment day disasters and project management war stories. So, welcome Scott.
Scott: Thank you so much for having me, it's an honor to be here.
Michael: Yeah, great to have you on. So I know in our recent state of the union ColdFusion survey, not everyone uses source control. Maybe about 20% of people who took the survey don't use it, and of course we all know that only the most engaged developers take online surveys 'cause they see them in forums or what have you, so I've [crosstalk 00:01:14] gotta guess that it easily could be that 50% of program developers out in the wild don't use source control. So why in your opinion is that critical that they use it.
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
ColdFusion Alive Best Practices Checklist
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.