Seven tools for web development that we couldn’t live without
As software developers, we naturally rely on quite a few tools to keep us efficient, organized and effective. In this blog post, we’d like to share with you a few of them in the hope that they may in turn help you or your team do the same:
Screen capture tools like MARKUP (http://markup.io/) and Snaggit
We speculate that the chances for confusion increase exponentially with the use of works like “it”, “above/below”, “the red one” and the infamous and ever-used, “too much/too little”.
Words like this are inexact by their very nature and can mean to any number of things to any number of people (needless to say, words like this aren’t too helpful for creating software to exacting standards.
Your best bet is to show *exactly* how much/how little, which one, or where something that needs improvement is. Screen capture tools like MARKUP and Snaggit allow you to grab your screen and scribble notes or callouts for sharing with your developers or colleagues. MARKUP has the added benefit of being live on your webpage and giving you a link you can share with someone over IM or email for immediate feedback.
We believe the tools we use for marking up prototypes, interfaces and beta sites help us save our clients sometimes up to 20% of the cost of a project that would otherwise take more revisions, more communication - and in turn, more billable hours.
Hours tracking software like Toggl
Software services like Toggl help us focus on developing software instead of getting bogged down in the overhead of tracking where our resources are being applied. We can also flip between tasks or projects with the click of a button meaning that you only get billed for the minutes actually spent on your project (no rounding takes place). If your software development team is not billing by the minute and doesn’t have an easy way to switch projects/contexts (when a crisis erupts or an important client calls for a short five minute phone call), you’re likely overpaying for your project. Toggl helps make sure that this never happens.
Light and nimble project management software suites like Basecamp
More than a few projects have failed for lack of proper management even though the actual software developers on the project may be experts in their field. Using a software service like Basecamp allows milestones and to-dos to be documented and tracked with ease. Issues can be discussed with message threads and important files can be stored/commented on in a single central place. We proudly use Basecamp and our projects are completed thoroughly and quickly for it.
Version control software like Mercurial, Git and Subversion
We proudly make use of software version control systems like Mercurial, Git and Subversion to track and manage changes in software projects over time. For those unfamiliar, a version control system allows any software developer working on a project to “check out” the code base, make changes and commit the files that were changed back to the code base with a description of what was changed. If another developer made changes to those same files, the version control system alerts the developer to the conflict and allows for the conflicts to be “merged”. The code can be “checked out” at any historical version along the way in case it’s necessary to “revert” to a previous version at any point.
Not only does a version control system provide you with insurance that you can always roll back to a stable version in case a bug works its way into the application. It also allows you to monitor “commits” and progress in real time.
Be wary of any team that doesn’t use some for of version control.
User Interface Mockup tools like Balsamiq
If you had to rely on a graphic designer to create mock-ups for every idea you needed implemented, you’d 1) never get your project started quickly enough, 2) would spend money that could otherwise be used in actually developing the application.
To resolve these issues, we use “quick and dirty” UI mockup tools like Balsamiq to create interface mockups in record time. Balsamiq provides a drag and drop interface for the most common interface components and allows you to flush out the general idea of an application in mere minutes. Used in conjunction with tools like Basecamp and Snaggit, you and your team can collaborate and develop the interface with changes to the Balsamiq interface - and your development team can bring to your attention potential issues early on.
Used in conjunction with a thorough specification document, a Balsamiq mockup can result in timely and complete deliverables.
Online meeting / screen sharing tools like GoToMeeting
More and more often, teams collaborate from remote places around the globe. When a group of people need to “come together”, sometimes a conference call is in order. Or course traditional conference calls have severe limitations, which is why services like GoToMeeting can be so powerful. At a moments notice, our team members can communicate with each other and directly with clients by providing a link which provides a phone number to call for a teleconference as well as a shared screen
Site benchmarking tools like jMeter and Siege
These tools allow us to simulate heavy traffic to pages on sites we develop to work out bottlenecks and potential resource issues before they become issues on live sites. Essentially, we fire up the tools (jMeter is Java based and Siege is console based), define the parameters of the simulated traffic (how many “people”, concurrent connections, which pages to load, how often to “loop” through the pages) and with the click of a button, we can hammer a site and it’s server to the breaking point.
This is important on any project - but especially when it comes to projects with Drupal development. Certain configurations, contrib modules and methods of programming can be more resource intensive than others on an already resource intensive platform. It’s important to resolve these issues early on in the development process.