Free and open-source software, skills, and outdated equipment can only take you so far. At some point, every programmer worth their salt will have to shell out some cash for essential computer software and hardware.
But investing in the right tools for your programming and developing needs is not the same as throwing money at overpriced software you and your team could live without. Whether you are part of a team, a freelancer, or looking at equipping your business, buying the software and hardware you need should not be a thoughtless exercise.
This article focuses on questions you can ask yourself to make smart purchasing decisions to keep your software and hardware within budget.
People—especially non-technical managers, business owners, and colleagues—equate tools as something either to over-invest in or skimp on. These simplistic ways of looking at the role of equipment in the workplace lead to horrible spirals of dead budgets or work-interrupting revisions.
A common example of such thought has been the ever-prevalent problem of under-equipped professionals.
Let’s say you’re getting paid $110,000 a year. You could easily find yourself in a job where your work terminal could burn down your building if you so much as sneezed while running a test that requires more memory than you currently have installed.
You’re getting paid big bucks to figure out how to work with what you’ve got, right? Wrong! Even if it costs you or your company only $500 to set up your workstation, it doesn’t mean you’re all saving money.
The time it takes for you to click “compile” when testing and for your program to actually start is a huge waste of productivity for what you’re getting paid. And it’s not even your fault.
Your employer shouldn’t expect you to make hardware magically do things beyond what it’s physically capable of doing. They didn’t buy a factory; they hired a programmer.
The truth is, not getting the equipment you need is worse than just writing bad code. Your skills as a programmer can only take you so far without the right equipment.
Even with competent programming, taking too much time to move from one task to another stacks up in the long run. This means you’re wasting extra hours you could have used to achieve your goals faster.
Furthermore, consider the extra time you need to write your own programs to address specific tasks that could be automated by off-the-shelf computer software. This will eventually take a toll on your mind and body.
This means you should be investing in equipment, instead of suffering through programming on a decade-old notebook with just 1 GB of RAM because it’s “cheap.”
No amount of programming optimization can make up for a case of insufficient hardware. Tools exist to make tasks efficient. If you do tasks without tools, there’s a longer chain of inefficiency that you need to worry about.
But what’s stopping you or the organization you work for from getting exactly what you need?
Watch Out for Scrooges
That’s right. Charles Dickens’ Ebenezer Scrooge is alive and well today, choking budgets and expecting programmers to make do with what’s given. But being a scrooge isn’t necessarily limited to bosses, managers, and colleagues who have no technical background.
Even you could be the scrooge—stopping yourself from thinking objectively about what you need to get the job done.
When you feel like you can do more with less, you’re probably a scrooge.
Good signs of being a scrooge include deliberately relying on outdated equipment because:
- It just feels right to use (it probably isn’t).
- This is what we’ve used before and it’s worked just fine in the past (not this time).
- I’m too lazy to learn how to use something new. (Why are you even working?)
Some people are even proud of their ability to execute complex tasks using outdated equipment. While being able to pull it off is definitely commendable, doing inefficient tasks over and over again is hardly sustainable.
But is upgrading to the latest computer software and equipment really the ultimate solution to your work problems?
And the Veruca Salts
On the other hand, buying too much hardware and software that you probably don’t need is also a valid concern. Which brings us to the other end of the spectrum, the Veruca Salt.
The Veruca Salt is the person who points at the shiniest thing in the room and demands to “have it now.” Like the spoiled child of the same name in the Gene Wilder-led rendition of “Willy Wonka and the Chocolate Factory,” this individual is unstoppable when it comes to their quest for triple-A equipment.
As much as we want to call these people heroes championing for cutting-edge equipment, their obsession with the latest tech is just as dangerous to getting the job done. Going overboard with both hardware and software happens more often than you think. And its effects are more insidious than the sinful glee of enjoying top-of-the-line hardware.
Buying expensive equipment just for the sake of being cutting-edge can easily bloat the budget. And bloated budgets are like cows—once they’re too fat, there’s not much room for them to move. This includes not having the room to make adjustments in your work, which could potentially incur costs further down the road.
Much like the scrooge, you can easily be your team or organization’s own Veruca Salt. Thankfully, unlike the scrooge, figuring out that you are the Veruca Salt is easier to realize. But that doesn’t mean someone else in your workplace isn’t the Veruca Salt.
Now that you know they exist, how do you avoid these sad caricatures of bad financial personalities?
Much like modern medicine, the best way to avoid a gross mismanagement of funds starts with prevention, not cure. While correcting a mismanaged budget is still possible further down a project or job’s development path, there’s no replacing the clarity that you get before any work actually starts.
From experience, the best place to start has always been at the beginning of each project or budgeting cycle with one particular question of importance:
What do we mean by good equipment?
Define Good Equipment
Good equipment doesn’t necessarily mean top-of-the-line. If you can run programs, code, test, and compile without any hiccups, you’ve got good equipment.
The gist is simple: Good equipment—including computer software and hardware—is exactly what you need to get the job done. No more, no less.
To identify the point at which you don’t run into production issues without spending, you need limits on what is required. This is where planning comes in.
Create a Plan
There’s no better way to understand what equipment you need than to clearly define exactly what your goal is and how you plan to achieve that goal.
But developing software isn’t usually a clear-cut process. Exactly the reason why sprints and scrum boards are popular and effective ways of approaching problems. But underneath all the agile approaches, a good solid software implementation plan still has to exist.
Plans can be created by teams, which in turn may be led by a project manager. You as the programmer have the responsibility of communicating exactly what you need as clearly as possible to the project manager, who may not know all the specific details that each project’s tasks entail.
So why plan? Because planning includes your process flow, which includes specific tasks that you need to accomplish. Tied to these tasks are software and hardware requirements needed to execute them properly.
How exactly do you make the distinction between what you actually need versus what you feel you need? This part is as simple as defining what your final product will be, to as complex as understanding what a group of investors thinks the product will become.
So, sit down and seriously consider your job. Try to peg down solid expectations by asking yourself the following questions:
- What is the final product that you expect to accomplish?
- What do stakeholders expect from your work?
- Do your tasks leading up to the final product require specialized equipment (e.g., a specific compiler or application programming interface service)?
When asking yourself these questions, don’t budget for “what-ifs.” If a specific task requires specific software, include it, but don’t budget for stuff that seems attractive but has no apparent immediate use. This includes software that falls under tasks with a high level of uncertainty.
What you should do is leave some space in the budget to upgrade to those products once a problem is encountered that requires more specialized tools—a scenario that would be impossible to enjoy if you splurged the whole budget on shiny things in the first place.
Which leads us to our next section: upgrading.
Know When to Upgrade
Getting the latest software isn’t as potentially hazardous to your work as it used to be. As John Sonmez points out, there’s no longer a danger that you’ll get stuck with a dead update for months at a time until a fix is finally released.
The only risk nowadays is the software being superseded by new tech when you still have yet to recoup your initial investment cost. There will always be a case in the future where your equipment will succumb to feature-creep, which is why you leave a space in the budget for the eventual upgrade. Thankfully, buying online for software you need has never been easier.
If you keep an eye out, you’re bound to find exactly the solution you need at a great price. There’s no shame in buying off-the-shelf computer software from stores for common but time-consuming tasks. The amount of time you save by buying computer software rather than making your own in support of your actual duties is significant.
Having a Clear Goal Is Crucial for Your Success
In the end, keeping your software and hardware within budget comes down to how much you’ve developed your soft skills. The better you can make your case for why you need something specific, the easier it is to get it—or at least to know if you need to work for a different employer that actually listens to your needs!
In addition, unless you run your own business, all that planning and defining mean nothing if you’re not capable of properly convincing people about your needs. Simply handing over a list of equipment to procurement without a clear explanation is a surefire way to get your requisition denied.
The best place to start is always with the goal in mind. With a clear goal, you’re always assured to catch the essentials to get the job done.
Published on Java Code Geeks with permission by Ramon Lorenzo Francisco, partner at our JCG program. See the original article here: A Programmer’s Guide to Keeping Computer Software and Hardware Within Budget
Opinions expressed by Java Code Geeks contributors are their own.