The deadline is approaching and there is still so much to do. Workdays get longer, the rigor that normally applied to design and testing begin to slide in favor of cranking out more features. The technical debt card starts getting swiped.
A feature shows up for delivery, something about it seems a little off. It seems like the feature could be used for something a little shady. Maybe it gets a little more money from customers. Maybe it makes it harder for customers to leave. Maybe it extracts material that is under copyright. Eventually, it clicks as to what is happening, and someone says, “Don’t worry about it.”
The product is in production, it becomes clear that some of the things the product is being used for are allowing people to get hurt. The concern is raised and buried under the excuse that there is no time and it will be too hard to address.
You keep showing up to work and getting paid.
At what point do we ask if we are acting responsibly or professionally?
This Will Happen
I was working at an agency and a project came to me. The project was to build a mobile application that allowed people to buy vouchers for drinks at nearby bars for your Facebook friends.
I thought we should probably have an age gate since we were close to selling alcohol. I was told that having an age gate would, “Cut into the core market,” and, “Do your job or we’ll have to fire you.”
I stuck to my guns and dared them to fire me. They didn’t, and eventually, lawyers got involved and demanded an age gate.
I worked on another project on a floor that was actively under construction. There were live wires, horrific fumes, dust from construction, and wild changes in temperature. The team I was with got sick with incredible regularity. I was told there was nothing we could do.
At the same time, we were violating our client agreement by working in a facility that was nowhere near secure enough. We were told not to bring it up since the lawsuit would cripple the company.
I was on a project that was nearing a contractual deadline. We wanted to test our system under load to see how it performed. We were told not to as it would take time from feature development. We did anyway and the entire system collapsed. It couldn’t handle the load predicted on day one.
The solution that leadership chose was to hide that by sending a static message indicating the user made a mistake while the system crashed under the load.
I rejected that solution and fixed the problem. I was alienated for months to come.
At some point in your career, you will be asked to do a bad job. You will see someone harassed or bullied. You might be asked to do an unethical job. You might be asked to do an illegal job.
What will you do?
Are You a Professional
It’s worth inventing the idea of a professional. I say inventing them because the imaginary professional is free from the constraints of our day-to-day.
What is it like to work with that professional? How do they talk? Why do you want to work with that professional? How do they collaborate, design, test, code? How do they maintain their integrity and standards with management? What does this professional do about technical debt?
More than likely this professional is not who we are every day. More than likely we don’t have the skill they have. More than likely we are anxious at the kind of confrontation the professional would have.
More than likely we’d rather choose to not be that person.
After my decade of being in this industry, I’ve had to come to terms with what I know it means to be a professional and what I am willing to compromise.
I’m not always a professional myself. I own that.
The bar for professionalism in software is so low that there is almost no depth to how far we can go in terms of quality, ethics, or legality in our work.
Our industry will struggle to be one that enriches our lives or those of our users if we don’t find a way to raise that bar. Maybe not all at once, but a little at a time.
One example that I work with teams on all the time is to end night and weekend work. If teams need to be on call then they don’t have to be there during the day.
Another is never working anything from work on your personal equipment. The company had you sign something giving them ownership of everything they touch. Make them provide the equipment for the job. They want you to check email at home? They can get you a laptop or a phone.
The list is near endless in most companies, and it adds up.
So the challenge is this: What is next for you to get closer to being a professional?
Top comments (2)
It's interesting that you've emphasized speed so strongly while discounting things that are often attributed to quality.
I didn't write about the skills and abilities a professional may carry, because that isn't the point of this article.
I wrote about what people industry do with any skill or ability. I wrote about what happens when, "Professionals" become complicit in doing poor work because of a fake deadline, when they harm themselves staying up late or on weekends because they are pressured to, when they build something that is unethical, illegal or causes harm, when they sit at their desk when they know bullying or harassment happens.
That's the line I draw here. How much of that does each of us bring and allow into our workplace while still claiming we're responsible professionals?
Hmmm.... It might be hard especially ethics can mean different things in different cultures or country.
Like while reading the book by Peter F Drucker that talked about US politicians was jailed due to bribery by japanese companies.
It was totally fine for Japanese companies giving kickbacks since their culture has the Japanese companies taking care politicians when they retire due to the low wage of a politician.
Unless we could come up with something every developer could agree universally it will be very hard.
But I do agree on raising our standards of excellence to be able to sleep at night.
Without worrying of the backlash of what you had done is unethical and cause harm to another fellow human being.