Join Ray Villalobos for an in-depth discussion in this video Why workflow management?, part of Web Project Workflows with Gulp.js, Git, and Browserify.
So, what is workflow management? And how can that help you be a better developer. Workflows can help you speed up development, because that automate your processes, and help you work faster and more efficiently. Now they do this by taking care of useful tasks. Things like reloading your browsers when a file is updated. Or compressing your images, when you're ready to deploy your website. Now, if you're taking advantage of process languages, like SAS or Copy Script, then a good workflow will also automate the process, of converting your files to native languages.
Unfortunately, there's too many editors for me to talk about the way to do things in each case, but we have a few training courses that can help. For example, you can check out, Dreamweaver CC Essential Training, with James Williamson, as well as Adobe Edge Code in Brackets First Look. And Up and Running with Sublime Text two. In addition to in Editor tools, you have standalone programs, that can handle complicated workflow issues through a Graphical User Interface. A Graphical User Interface, makes it easy to install and manage different workflows.
Setting something up, is as simple as dragging your folder to the application and controlling how your files process. There is a lot of different kinds of tools available, the most popular tools are Codekit on the map livereload which is available for maths and as a beta on the PC as well as Prepros App cross platform tool. Now these tools are really easy to use and useful for short projects, where you don't want to mess around with the terminal, and when you don't need fine grain control over the process.
Another huge advantage is that you have little to absolutely no complex installations. So if you have to work with SAS or coffescripts, the tools usually offer built-in versions. It might be hard to work with a cutting edge version of the libraries in these tools, but you don't have to worry about doing terminal installations. On the negative side, these tools either produce setups that are not easily shareable in a team environment, or if you lose or change the configuration files, you have to setup your workflow all over again. Most of these tools are commercial products.
So it means that you'll need a license for each person who is involved in you project. It's also harder to share projects, with people that don't have the same gooey tool. Then there's of course, the open source tools. The fact that these are open source is in itself, a big advantage. You won't have to get multiple licenses for each team member or buy anything. The tools are completely free and customizable by you, or your organization. Now this is by far the most flexible way to handle work flows. You can really customize the way these tools work, to make them do whatever you want them to do.
There's literally hundreds of plugins, that will handle virtually any work flow you can dream of. One disadvantage with these open source tools, is the requirement. You have to do a lot of installation, in order to use these. You will, at minimum, need nodejs, and if you want to do something like Sass it will also require Ruby. Plus, you need to add anything else your project needs. This is what turns most people away from these tools. One huge advantage to working like this is, that nodejs will be able to handle your project preferences, set up and dependencies.
That means that, all the information about your project, will travel with the project. If someone else gets a copy of this project, they will know immediately, through the package.json file, which modules they need and Node can automatically install and manage these for them. This also means, that if you come back to your project at a later date, you won't have to worry about set-up or incompatible dependencies, since in this package.json file, it tells you exactly which versions of which plugins you're using.
Working with workflow management tools, is always going to be a trade-off, between ease of use and power. You'll need to make a decision, which of these is more important to your project.
- Why workflow management?
- Processing tasks with gulp-coffee
- Importing libraries with Browserify
- Processing Sass and Compass
- Issuing tasks in sequence
- Watching changes to files
- Adding static reloads
- Setting up environment variables
- Minifying HTML
- Compressing images