Anyone who has ever worked in or been involved in software development will know how complex and challenging it can get. Daily, software developers are faced with problems that at times seem insurmountable but it is their jobs to find the solutions. It is also what keeps them engaged. They live and breathe zeros and ones, IF statements, algorithms and data storage. This is what they know and what their brain has been trained to understand.
However, for anyone not involved in this business, it can be difficult to understand. In this technological era of on demand information, it is still difficult to communicate the value of software development – one of the software development manager’s biggest challenge.
It is your job to make the impossible look easy, to understand and navigate the intricacies and logistics of development.
As a software manager, you are the master mind, the artist. You must take control of the canvas and see that all the nuances, shadows and textures are well executed so to give the appearance this art piece was done effortlessly.
STEP 1: UNDERSTAND YOUR CLIENTS NEED
Although mostly the role of a Business Analyst, you will also be interacting with clients. To identify the problem, you must be able to communicate with them in ways they will understand. It doesn’t matter that they don’t connect with your world, your job is to connect to theirs.
Don’t expect your clients to understand EFT diagrams, store procedures, unit tests or even logs. They may not. This is why they are coming to you with a problem.
“Dumb down” the statement, break it in chunks, simplify as much as you can.
Actively listen to what is not being said. Make the links. This is where most of requirements are hidden and missed.
STEP 2: TRANSLATE THE INTENTS AND END GOALS TO YOUR TEAM
The problem statements (requirements or user stories) have to be documented in ways that will connect with your entire team. From software architects, to graphic designers, to developers, to quality testers.
This is where you need to change the conversation, address this audience with terminology they can connect with. Now is the time to talk technical.
Again, break the information in pieces. Give each member what they need. The graphics designer does not need the same details as the software architect for example.
STEP 3: THINK ABOUT THE HUMAN FACTOR
As much as you have to look after your clients and make sure they get the attention they deserve, pay attention to your team as well.
Do you have the right team players? Are they in the right positions? Do they have the right skill sets? Can they communicate their ideas and needs effectively? Do they have the right tools? Are they overworked?
All these questions you have to keep asking yourself, you have to consistently review your game plan and adjust accordingly.
Listen to your team, involve them in the planning process. After all they are the experts at what they do.
As you can see, software development is much more than binary codes on a black screen. As a software manager you are dealing with people, emotions, opinions and expectations. You have to know how to manage these well in advance of the first line of code being written.
Software development is a creative process. From communication, to architecture, to graphic design or even testing. You must find creative ways to get to the end goal.
"Creativity is more than just being different. Anybody can be plain weird; that’s easy. What’s hard is to be as simple as Bach. Making the simple, awesomely simple, that’s creativity."
Most of your clients will only understand what they can see or touch, and how effortless the process was for them.
To conclude, if someone asks you to create a piece of software and their comment is “this is easy right”, take it as a compliment. It means you’re doing a good job as a manager!
Brenda Bossé, BCSc Business Unit Manager – Software Development Missing Link Technologies Ltd.
Software development is often complex, but the art lies in making it look easy. Skilled developers streamline processes, creating intuitive, user-friendly interfaces that hide the intricate coding and problem-solving behind the scenes. The true mastery is in delivering seamless, efficient solutions that appear simple and effortless to the user, while maintaining robust functionality and adaptability.