Accessibility is a second-class citizen for a lot of clients, therefore a lot of web agencies. In my two years working in one, only once was I tasked with a fully accessibility compliant site, and that was because it was government subsidized. Clients will gladly pay to move buttons and complain about a particular shade of blue or opacity transition speed, but god forbid we deliberately put any hours towards making the site accessible. We could try all we want to talk them in, they were the ones who paid in the end, and most of them just don't give a crap.
Most of our devs were pretty thorough about doing the most they could in the given time frames anyway, but it pretty much never was made a priority.
Also, conspiracy theory, contract development has a bit of a moral hazard problem when it comes to these sorts of issues.
On one side, we have the option that helps guard clients against accessibility issues and any problems that they might (though not necessarily will) engender, and is likely to be more maintainable in the long run. But it would also require fewer billable hours to build. And it's not what the client asked for in the first place, so there's the risk of burning social capital in trying to even suggest it.
Alternatively, you can get paid more money to supply the client with more immediate gratification.
>But it would also require fewer billable hours to build. And it's not what the client asked for in the first place, so there's the risk of burning social capital in trying to even suggest it.
Would it burn social capital to tell the client about a cheaper option? I thought people loved saving money.
I agree with you. This is all benefit for everybody:
- You provide a cheaper solution,
- You provide a solution delivered faster,
- You can bill more per hour without the client even knowing: "you have solution A, which is exactly what you ask for, that will cost $20k and will be delivered in 30 days, or solution B, which is very close to your requirements, that will cost $10k and will be delivered in 15 days", but option B only takes you 10 days, so you are paid $1K per day rather than $667.
This is really why we need to form a professional association of some sort - it'll allow for some level of responsibility in what developers produce, as well as help guarantee a certain standard of product.
It will also ensure that the we don't have to worry about the market being flooded with cheap labour that every big business and government entity seems interested in creating.
I understand that doesn't sound great right now given that software development is a comparative goldmine to a lot of other jobs, but compared to other professions we could stand to become more formalized.
That can't happen because there's no formal qualifications to calling yourself a software engineer. I've worked with people hired as software engineers who just took an X week online course, and it shows.
Now, if you're talking about solving the above first, I'm enthusiastically all ears..
In Canada most software devs don't call ourselves engineers - we legally can't - engineer is a protected title.
And yes, that's what I'm suggesting - there needs to be a formalization of terms for software. I'm not saying exclude the X week course individuals, but in Accounting there are "tiers" of accountant, based upon education, focus, and experience, and that may need to be instituted, allowing people to see at a glance what designation you've achieved, even if that means the bootcamp grad has to write a 50 question test at the end of their X weeks.
Though from what I understand they frown on it because they want complete ownership of the term (but their critique really has no teeth unless you make like you are indeed licensed by a central regulatory body such as PEO):
edit: Just some further information on the subject in Canada—Software Engineer (among others) is a nationally recognized and distinct title (can overlap, but doesn't necessitate a P.Eng certification):
It looks like if you want to call yourself an engineer nationally you need to be a P.Eng, and it's up to the provincial bodies to regulate the usage in each province.
> Experience as a computer programmer is usually required.
That's amazing, you need to be an engineer, but don't need to know how to program to be a Software Engineer.
I took a different interpretation than your first conclusion there.
It sounds like you can call yourself an engineer all you like—particularly with relation to software. There appear to be no hard requirements.
However if you want to bill yourself as a Software Engineer and work as a Professional Engineer (the protected title in Canada) then you must have your P.Eng.
Similarly: A Software or IT Architect isn't required to be certified by the CACB. Nor does a Web Designer need to be a member of the GDC.
So— all Professional Engineers could bill themselves as Software Engineers (situation providing), but not all Software Engineers can work as Professional Engineers.
Ah, ok. Good point. It's really down again to the provincial regulatory bodies to decide how uppity they want to be, but in Canada Federally there's no restriction unless you're trying to act as a Professional Engineer.
> That's amazing, you need to be an engineer, but don't need to know how to program to be a Software Engineer
This isn't actually that non-sensical when you consider how being a PE works in other disciplines. You're legally responsible for reviewing and approving design documents, but you won't be doing all the work by yourself. You'll have a team reporting to you, and you sign off on their work. In the case of software, you don't necessarily need to be a programmer to review the design and high-level aspects of a program.
The first step to getting a protected title is forming a trade association. You can't call yourself a lawyer without approval of the Bar Association. You can't call yourself a doctor without approval from the Medical Board. The first step to getting "engineer" as a protected title is forming a society of engineers who can petition the government to legally protect the title.
Well, there's a difference between "doctor" and putting "MD" after your name just like there's a different between "engineer" and a "PE".
I'd question if anybody really gives a damn if a software developer is certified with some feel-good namesake. Most software just isn't as serious as needing legal counsel or medical expertise.
Also, many of the roads I can think of where we do arrive at a place where people care about some certification are pretty terrifying. Like needing years of schooling before you can legally make a Twitter app for somebody, or needing re-certification to make tiny lateral moves like you need in the medical industry.
>Most software just isn't as serious as needing legal counsel or medical expertise.
Most legal counsel and medical expertise isn't that serious either. Ask your family doctor how many patients they have every day who come in only to be diagnosed with the common cold, something anyone's grandma could diagnose over the phone and treat with a microwaved can of soup. But when it is serious, you don't want grandma doing your appendix surgery. You want a licensed and trained doctor.
For every one slippery slope argument, there's five "it's not that slippery" counter arguments. You don't need a medical license to buy over-the-counter painkillers, so why would you need a software license to build your own software? You don't need to be a bar-certified lawyer to write your own contracts, so why would you need to be a certified software developer to make a website?
Heck, take plumbers for an example: there are certified, bonded, and insured plumbers. There are plumbers who are not. You can choose a non-certified plumber, but most people would choose the certified plumber instead. If you don't need a certified software engineer, you're not going to pay the premium they would charge with no guarantee of quality. In this world, networking is king and if you don't know someone, you're screwed. If you need certified software, you'd hire certified software engineers and pay the premium and know you at least got someone who has passed their certifications and if they do poor quality work can have their certification revoked.
Considering poorly built software can bankrupt someone, publicly embarrass someone, and can even kill someone, the fact that anyone willing to lie on their resume can build it is scary. You can be reasonably assured that the surgeon operating on you is quality and there are ramifications if they are not. Are you sure that the person who wrote the code for your car's anti-lock brakes or airbags are held to similar standards?
This is part of what a legally protected engineering title does. When you stamp something as a professional engineer, you are saying that it meets all applicable codes. That is a legal statement, and to do otherwise would be fraudulent. If you have a professional association that dictates this and has restraint of trade in place so only a member of the professional association can do it, then it's not even pushing back. It's a flat statement: "You have to do it this way or you can't have it stamped."
Have you had luck in this endeavour? As it stands most software devs aren't actually engineers and as such are held to no ethical standard, nor have the (professionally certified) credibility behind their words to demand specific design standards.
Software engineers, unless they literally went through a b. eng., are not engineers, despite calling themselves that. Most software/web developers are just wage workers.
"You make them pay", you being who exactly? The employee that gets a list of requirements and a deadline? These places are filled with juniors with relatively low experience. If their bosses tell them to do something, they'll do that thing, and don't have much leverage to argue.
Most of our devs were pretty thorough about doing the most they could in the given time frames anyway, but it pretty much never was made a priority.