A challenge common to all teams is particularly important to software development management today: how do you keep good employees around? How do you make your organization appealing to the best developers? The demand for talented developers is high so you want to keep the ones you have, and be appealing to others. If you’re struggling to attract and retain talent, don’t worry. There are a number of things you can do.
Finding and Attracting Talent – Recognize that programmers may not be primarily motivated by money. Of course, like anyone they want to earn as much as they can, but not at the expense of technical and creative challenges, or putting up with bad working conditions. Developers are inventive people who are driven by a desire to see their ideas become real, their work take shape, and their product succeed – they need an environment that encourages that.
Salaries being equal, who would choose to work in a toxic environment over one where their voices can be heard and management respects programmers and their talent? Keeping office politics and territorial squabbles to a minimum makes for a good working environment.
You may find yourself particularly challenged if your business is not one traditionally associated with software development. If you are one of the many business reacting to market demands for cloud-based self service in place of your call center, or for connecting your previously self-contained products to the internet, then you will have to explain to these talented developers why they should bet their careers on you instead of going to work for Google or Uber.
Software Development Management Obstacles to Meet Head On
Beginning a new project, such as web application development, building a new smartphone app, or creating a customized portal for a company sometimes requires you start from scratch in terms of personnel.
One of the biggest obstacles can simply be finding suitable coding talent. When the best programmers are in short supply in your neck of the woods, your challenge is to make your organization as appealing as possible. This includes fostering a pleasant working environment with minimal office politics. After all, when programmers are in high demand, they can have their pick of companies.
Software development can become derailed if you don’t carefully prepare your resources. You need to allocate the appropriate amount of time, programmers, and money to the effort or you risk losing the commitment of your team. Nobody wants to come to bat with two strikes already against them.
Some of the other things that can derail your efforts include:.
Shoddy tools – Making developers work with cheap, inferior software and hardware tools is a recipe for disaster. Don’t make them waste time by using outdated resources. Oh, and don’t force them to use open-source tools just “because it’s free.” Open source software never works out-of-the-box. It will always require a significant time investment to get it working, and to adapt it to your needs. In other words, it is never “free.” It may turn out, for many reasons, that some open source tool or solution is right for you, just don’t expect it to be a gift; it still takes time and money.
Poor Management – It has always been true that some managers do a better job of managing up than down. An abrasive, mercurial manager may appear to be a genius whose antics are overlooked, because they seem to get work done and upper management doesn’t always see the impact on the team. But developers have little patience for this sort of thing, so this type of management can bite you in the end, prompting key members of the team to quit in disgust or drag their heels in silent protest over bad working conditions.
Again, this can be a particular challenge if you are not historically a software development company. Managing software projects is a specialty that can take volumes to explain, and is not something we can convey here. But if you are accustomed to managing teams of mechanical engineers or clothing designers or mechanics and you hope to redirect that management experience to software developers, be prepared to learn a lot.
Start small and aim to improve your software project on a continuous basis, which is made easier when you build reusable objects and break larger objects into more manageable components. Giving ownership of code to programmers helps make them feel like essential members of the team and not mere cogs in your machine.
Lack of Recognition – Everyone likes to be recognized for their work, but programmers in particular need and deserve kudos when they’ve done a good job. It’s a difficult, sometimes solitary job that doesn’t always produce a visible result that is proportional to the work it took to achieve. If you withhold praise out of some kind of ill-conceived management strategy, you’re just shooting yourself in the foot.
Thoughtful criticism can motivate coders to do better, but screaming or denigrating a person’s talent and skills, or making demands based on your needs without considering their reality, can sour a project faster than milk left out in the sun all day. Give praise when praise is due and always be ready to compliment your team when they meet goals and come up with interesting solutions.
The team at Applied Visions has a wide range of experience in software development methodologies, giving us unique insight into keeping software developers happy and focused on the job. Our services include programming for the Internet of Things, desktop and kiosk applications, web and cloud apps and mobile applications. We’ve distilled some important information about how to take charge of the software development process and invite you to download a guide today, written for a CEO by a CEO.