"My boss does not understand what I'm doing."
We all said that at some point, and it's usually just a normal job. But software developers are in a difficult situation because when your boss knows nothing about software development, it can make your work harder.
Bosses may think they know what they are doing – after all, how difficult is it just to set a deadline and expect people to meet him? But software development has a special way of working that just makes no sense to non-technical managers.
1. Throwing more people into a project does not help
Managers who are inexperienced or have no software information often think that a team will work faster if they introduce warmer organizations into the project. This is a rookie who always provokes the creatures from the team of developers.
Instead of speeding up things, adding people actually slows down things. A senior member of the team will have to put aside what he does to get the new person to accelerate the team's progress.
The problem becomes even worse if this person is a new mercenary or rookie because everything this novice does will have to be double checked by one of the veterans ̵
2. You can not just "add something"
The most dangerous words that interested parties can say are: "Can they simply add [insert feature]?" Stakeholders and users are not programmers and do not know if their seeming the insignificant demand is even possible, much less how difficult it would be to implement it in a way that does not break everything else in the project.
The problem is that managers are prone to pressure from stakeholders and are inclined to blindly accepting requests, committing a team to something that takes a lot more time than the initially quoted manager, which increases pressure on the team and can has led to more errors.
After all, no one is happy. QA can not capture any error
Managers (especially non-technical) seem to think that any code that passes through QA should be sparkling and completely disinfected.
This is the goal, for sure. QA spends hours and hours every day by spending the code and testing various features and using instances of errors.
But it's hard to test complex software programs because there are so many variables to work with. Even the simple attachment of file attachment can become a challenge for quality assurance. How many file types are tested? How big they are? How long are file names?
Each of these factors can potentially trigger an error, and the ability to multiply as part of the software interacts with other parts (e.g., Sending an email attachment). It is hard for QA to test all variables.
Another thing about bugs is that they do not behave logically. Some errors can only be triggered under the most specific and strange conditions (for example, the program crashes if you click the "Like" button 52 times). OK can not predict any possible behavior and condition.
4. Working with someone else's code is always a nightmare
Working with code is not the same as working with a car engine. The Code varies widely between individual businesses, departments, teams and even – especially – individual programmers.
So working with a foreign code is like walking in a minefield. You do not know how the code is built, how one section interacts with another, or whether there will be a change in your face – and the rest of the program will be removed from it
5. Efforts and Productivity Are Not the Same Things
Many managers seem to think that if you spend a lot of time in something, the project needs to go ahead. While this is true most of the time, there are situations where there is a complete opposite.
If you need an example, just go back to our previous point of work in other people's code. Most of your lessons will be spent only to read it and try to find out what it is doing. This will not happen after many (many) later, that you will be confident enough to change it without breaking anything.
6. The technical debt is real and it will catch you
When most bosses are faced with choosing between doing something right and doing something quickly, they will choose the latter. The product is still working and the boss looks good at exercising "management skills" to get the product out of the door.
In addition, a quick and dirty solution will most likely lead to greater problems along the way. Slapdash's code will almost always cause complications that will damage future efforts. Shane Zylinks is founder and CEO of Los Angeles ClearSummit Software Development and co-founder and chief technical officer of TuneRegistry, a music rights platform. It also provides consulting services to start-ups and corporations. Before working in the agency space, he built back-ups for news media and part of the FAA air traffic control system. He has a passion for efficiency and combining the best technology and design to solve complex problems.