20 Dec How To Choose A Software Developer
How to Choose A Software Developer
Choosing the right software developer must be done with careful consideration. It’s a critical decision. To help narrow down what’s important, here are the top 5 criteria for choosing a software developer:
There are many decisions you will make in life and if you are running a company or involved in the digital transformation or Internet of Things (IoT) or a Startup entrepreneur, then choosing the right software development firm to work with is critical and can literally make or break your business model. A major choice must be made because a software solution, application, integration, and/or enhancement is supposed to make your life easier not harder so remember that you are not just hiring a developer or developers, you are hoping that they provide you with the solution you need with the expertise that is required to bring your idea to life, make your business more productive, and save you lots of pain and suffering in the long run.
When you need a lawyer or a dentist or a car mechanic, you often blindly trust that they are a specialist, an expert in their field, and you know on some level it’s going to be painful but you enter the relationship anyway hoping that your pain will be quick, your bank account will not suffer a slow death, and either your problem will go away, your teeth won’t hurt anymore or your car will run better. Why should choosing a software developer be just as cavalier and risky? You should have some very basic criteria to grill them with and have in your back pocket to help you determine the right person or company to partner with. These top 5 criteria are not fool-proof, do your due diligence, but they are extremely helpful and hopefully will save you time and money:
- Responsiveness– How available are they?
How available are they to answer your phone calls, emails, various different queries in a timely manner? Do you have to wait days before getting a response? How long does it take you to get a reply via email? Do you have phone numbers to contact? Do you always get voice mail when you try to call? Do you have their cell phone or just an office phone or a random 800#? If they don’t respond to a simple query in a timely manner, then you can easily surmise that your emergency call when disaster strikes, or production has come to a screeching halt will be treated in a similar fashion. In other words, if you get irritated that they don’t get back to you right away in the beginning of the relationship then imagine how you are going to feel when nothing is working, and your IT person or department has no way of fixing something related to code or databases or an API solution? You might get lucky and have an IT ninja who knows some programming, some workarounds, or can hot fix restarting a SQL server or more, but you need to go to the source especially if your service level agreement dictates that you have 24/7 support. That doesn’t mean being able to log a support ticket and getting a canned response via automated alert that you now have a ticket number and to wait patiently as someone is looped in. Also, you want to know that your project is being worked on, being focused on, has full attention and is being worked on all the time diligently. Many big firms push you to be part of their user group who ultimately has to fend for themselves when random bugs rear their head and weird glitches happen in certain releases. You are nothing more than a product tester at that point and you will be in a constant cycle of use, release, test, and fix until one day they tell you they are sunsetting support on the version you are on and you have to upgrade or risk running your business on unsupported software. Of course this means more money and now you are stuck in a constant cycle of explaining to your staff that you are pushing hard for fixes and further support while your IT person is hiding because they are usually held responsible and always the first responder when a crisis happens even though they were not the ultimate decision maker about choosing the software developer in the first place.
- Reviews– Read and research their Testimonials, Case Studies, and Reviews
Just like checking a VIN number when you are buying a car or reading some Yelp reviews before you make a restaurant reservation, you should have a very clear idea of who you are actually hiring and the services they offer and leave nothing to mystery or chance. Check out their site, check out their business and technology partners, check out their reviews and any testimonials on their site and on any other sites that are pertinent. If they are proud of their work and proud of how they treat their customers and clients, then you should have full transparency into what others have experienced working with them as a developer. You’re not just hiring someone who can do what you can’t do and who possesses highly specialized skills and certifications, you are also hiring someone who should be the utmost in professional and customer-centric methodology and deeply trusted. You should be able to rely on them impeccably and have no question about integrity, confidentiality, and expertise. Even doctors get reviews online now so don’t hesitate to ask a software developer or development firm or provider who their former or current clients are and where can you get some feedback on their work. Would the company you reach out to work with the developer again? Does the developer have 5-star reviews? Have they won any awards or garnered any special recognition? You want to hear their former and current clients wax poetic about them and be effusive with their praise otherwise move on to the next software solution provider. It’s too costly a decision to leave to chance.
- Requirements– What exactly is the scope of work needed?
Be very clear on what you need. The discovery phase is key to a successful project and it will be referred to often as things roll along. Have clear notes from all departments in your company on what improvements and key development functions are necessary for productive workflow, efficiency, business requirements, daily operations, analytics, and support. There’s nothing worse in business than hobbling along with an old system and normalizing dysfunction while having a long laundry list and litany of complaints while watching your competitors or relevant industry enterprises surpass or beat your edge. Focus on improvements and what data is needed so you can eliminate all pain points and streamline functions to have the competitive and relevant advantage. You need to have a very clear idea on scope and convey succinctly on best in class expectations. If you have a business problem or a brilliant business idea and you need a software developer to bring that idea to life and/or to provide agile solutions to your business issues then before seeking out an expert opinion, you should first know what exactly you need that expert to have expertise in. Are you needing application development? If so in what programming language? Do you need K2 development and integration? You may need to scale quickly and have your enterprise quickly take part in a total digital transformation of the workplace. Mobile development? What functionality do you need? How should the mobile app work? Modernize an existing application? Your current infrastructure or workflow ecosystem is outdated, you need to quickly have an API integration for new processes along your supply chain? You have a painful Sharepoint migration to Office365 that needs to be streamlined? Startup software development? You have an amazing business idea but need the engineer to make it a reality? These are just some examples of how you need to have a clear starting point and know what your ultimate goals are. Expect and demand a testing phase with lots of QA and fixes needed before going live and also have a clear idea of when your launch date is and must be and the very latest it CAN be and then start planning accordingly. You want a true partner in one of your most expensive one-time costs and time-consuming endeavors and your user community whether that be internal or consumer facing or both, all need to have something that is going to work great that you can be happy with for several years while you recoup expenses allocated to the development. Just like buying a car, you don’t want to agree to financing or sign a lease, get the keys, and then 3 miles down the road have it making all kinds of noises and smoke coming out from under the hood before you really get to see it running smoothly. If you bought a used car without a warranty well then you rolled the dice and now you lose. But if you leased a certified car or bought something brand new then your clear expectation is that you are going to have a reliable and comfortable mode of transportation without having to constantly work on it or pay someone else to get it running all the time. This analogy brings us to the next thing:
- Resources- Money
How much have you budgeted for this new software endeavor and what’s the price you feel good about? Some developers charge by the hour and you may be fooled into thinking you are going to save some money this way but what if they take a really long time to finish anything? If you go the licensing fee route and choose a platform that comes with a knowledge base or development tools, then you need to be prepared to hire a developer ongoing. What is your staff comprised of? Do you employ someone with technical chops that helps with project managing the software development? Is there going to be some kind of project managing and ticket reporting platform like Asana, Atlassian, Jira, or others where you can monitor projects, communication, timeline, deliverables, milestones, fixes, testing, deployments, and deadlines? Don’t just look for the cheapest or quickest deal. You can end up being a pennywise but a pound stupid if you go this route. You also don’t want to go bankrupt trying to bring in a new solution so decide what you can spend, who will manage the project on your side, and ongoing what costs and issues look like. Sometimes what you may need is an acting CTO and you know what you want to ultimately happen but it’s not up to you to speak the technical language or hold their hand through the entire process. A great developer will put you at ease, tell you costs and risks up front and get you to a place where you feel satisfied with their work. Anything less is just a plumber who is trying to fix a major water leak with just a plunger. When your basement is flooding you want an expert to show up. Even if it’s a work for hire you want the very best solution you can scale with, that won’t be obsolete in a year and that you can maintain without having to track down that one and only person or company. Don’t fall into the custom code trap. Don’t just go open source either but get the right solution for the long term.
- Remote- Where are they located?
Here’s a familiar scenario- say you are in San Francisco and your developer is in a distant time zone, you don’t want to have to constantly be on your developer’s time zone if that zone is hours ahead of you or behind you. You will find yourself having to have very early morning meetings while it’s still dark outside or very late evening meetings while it’s still dark outside and this kind of workflow is not totally sustainable especially in crunch time. You should have someone close enough so that at some point in the process you can be in the same time zone more than a couple times of year and better yet, they can come to your office and meet face to face. That may mean someone gets on a plane instead of driving over for a few hours or less but so be it. Time is money and your time is important and expensive and you shouldn’t have to wait to get answers to key questions or for you to be reassured that things are going well. You want to be able to connect by phone, video conference, skype, or online meeting conference most times and know that immediate expectations will be met. You don’t want to have to wait until it’s the end of your day to wait for someone to be waking up in their time zone all the time. You can easily open an account with various freelance sites to find someone but remember you will get what you paid for. What originally was going to cost one price will ultimately double or triple and what was originally going to take 3 months is now going on a year and you still don’t’ have a total workable version or solution. Language may also come into play here so be mindful of who you are choosing. You may have to make things painfully clear so be prepared to have some technical know-how and lingo in order to properly direct someone who is in a different time zone and English is not their first language. Bug reporting and enhancement requests require someone spelling out exactly what the current behavior is, so it can easily be recreated and to also be able to spell out exactly what is needed and required so it’s fixed. You need to avoid a lot of unnecessary back and forth. Again, don’t fall for the easiest and cheapest solution. This only has short term gains and sets you up for a very long and complicated road. Remember, if things go wrong or aren’t functioning correctly, you don’t want to have the nightmare of trying to track someone down across the planet that you never met and suddenly they have your code and are nowhere to be found. A trusted software developer is going to be a partner and offer up Dev Ops type of expertise and be there in a crisis while also concurrently mitigating the need for any risk or crisis management. They don’t have to be your best friend, but you should feel good about working with them and never wonder whether they have your best interests in mind. If you need a hip replacement you are hoping that the metal your doctor is using isn’t on a recall list and that you won’t have to go under the knife again to fix it. Similarly, your software developer should engender a sense of complete trust and always be checking in regularly about how things are going and about what to expect and not be talking you into things you don’t need, don’t want, and that will ultimately hurt your business.