Co-op Values

This is the canonical location of all 508.dev values. Some of our various websites only show a subset of these, or a marketing re-wording of them, however this list is the one new members must agree to before joining, and which determine our projects, blog posts, and how we make decisions.

Transparency

508 members aim to share all things 508 related with each other. That furthers our goal of helping all members always improve their abilities and knowledge. Transparency leads to better communication and less conflict. Transparency can help avoid project catastrophes. Everyone should feel comfortable sharing all things within the context of 508. This could manifest as follows:

If someone isn't confident about their ability to work on something, they should share this, and not be judged for doing so, so that they can be helped. If someone sees an issue or problem, be it engineering, system, ethical, or otherwise, they should share it, and not be judged or punished for doing so. The What and Why of a project should always be shared. All 508 finances should be visible to all members without question. Salaries, bill rates, expenses, everything. This helps everyone make sure we're all compensated fairly, and helps us all make sure the cooperative is being run correctly. We believe this to be at the heart of a cooperative style organization. Free as in Freedom software.

Free Software

508 software should always be Free as in Freedom. Prefer GPLv3 license or GPLv3 Affero license. How will we make money? That's for us to figure out and champion. See prior research. TLDR even if we make an iphone game and the codebase is gpl3, we can still just sell it on the apple store and people might still pay for it. If a client doesn't want their application to be Free Software, that's fine. We have to pay the bills.

Progression, Independence, Personal Responsibility

A core value we have for 508 is that its existence progresses the abilities of its members. We feel very strongly that juniors should be able to join 508 and transition to higher skilled engineers while they're here. At the same time, senior engineers should be learning how to be leaders and trainers for juniors. We should all of us be challenging eachother at all times to be improving.

Take a second to consider the true implications of this value: everyone always wants to improve, or at least everyone knows it's good advice to always be advancing in your career, but at 508 this is a core value. That means the level of progression required will take work, and be hard. The "normal" kind of progression that happens at a typical company by just existing there as an engineer isn't good enough, we want to be pushing our boundaries, always.

However, true progression can really only be independently driven. We're not in school anymore, if we want to learn something, we have to initiate. Therefore 508 members take responsibility for their own improvement, exploring projects on their on initiative, proactively asking questions or for help, and seeking guidance and mentorship as needed.

As a fully-remote co-op, we also strive to ensure all members on a project are independent, multi-disciplinary units each capable of self-organizing. Unless a client asks, we rarely do standups or other regular AGILE rituals; however, we DO typically maintain highly organized and actively managed Kanban boards and expect each teammember to take responsibility in managing (and creating) their own tickets, and in general knowing exactly what they need to be doing when they sit down to work (even if they have to ask the day before, they take the initiative to ask). We've learned that the key to developing as a remote team is a very intense level of organization. 508 members don't sit around waiting to be told what to do, we know what needs doing, or we figure it out.

You might see this value written on our websites as “no excuses,” with text such as “Our teams get it done, to our standards, no matter what. We don't make obstacles our client's problems, we overcome.”

You might also see “Organization” representing this value, with text such as “Organization is critical when working with distributed teams. Every member of 508.dev is well versed in AGILE methodology, and we've yet to work with a client with more rigorous project management than our own internal processes.”

“Excellent Engineering” also fall under this value, with the text “We maintain ridiculously high engineering standards, and only allow members to join that can demonstrate they have what it takes to meet these standards.”

Flexibility

Flexibility means many things. Here it means being flexible in mind, expectation, and action.

Flexibility in mind means, basically, being open-minded. If you think next.js is the hottest thing since melted butter, try being flexible and experimenting with a new platform. If you think the only way to monetize an app is to close the source and license the code or sell an API, flex your imagination and experiment with new ways of doing business.

Flexibility in expectation is important for leaders. Leaders at 508 have learned quickly what the rest of the industry is starting to realize: engineers get more done when you let them work at their own pace. New studies show possible genetic flags for being a morning or night person, for example. With that in mind, and in the new COVID-era of global remote work, does it still make sense to want everyone online and working the same time each day? We don't think so, and that's not just idle speculation: during our SaaS build project with Ycombinator startup Cofactr, we had maximum flexibility for all engineers in three timezones with a total displacement of 16 hours. Despite this once-assumed obstacle, we delivered a complete SaaS frontend in under nine months, at tightly efficient billed hours, and with almost no day to day downtime. Flexibility of expectations of how our engineers work allowed for this outcome.

Flexibility of action means not just thinking differently, but doing differently. We transform our flexibility of mind into experiments in monetization schemes, we transform our flexibility of expectation into experiments in working styles. It's not enough to think of new ideas, we need to action them.

Never Wrong to Do the Right Thing

Doing the right thing is sometimes hard. Sometimes it's hard on purpose - the system isn't necessarily designed for the good guys winning out. For example, a common feedback Caleb (founder) hears at networking events is that making 508.dev a co-op is silly, because he can't possibly get rich this way. However, paying people the fair value of their labor feels right, and therefore it can't be the wrong thing to do.

This value is essentially 508's catch-all "don't be evil" value, added recently when we realized that, despite our previous values, we don't have one that indicates that we're trying to be the good guys.

This manifests in many ways. The most obvious is our structure as a co-op, which ensures a less degrading working environment for our members, as well as fair compensation for their efforts. It can manifest in every decision, big and little: when billing, maybe the client won't notice an extra hour slipped in here or there, right? It doesn't matter, it's not the right thing to do, so we don't do it. Do we really need to build this site accessibly, after all, the client didn't ask for it and doesn't seem to care? Yes, it's the right thing to do.

We believe this commitment will benefit both us and our clients in the long run. Long term, our members and clients can trust our direction and values will be consistent and predictable, and that we'll operate honestly and fairly.

In an environment where so many businesses are tunnel visioned to short-term benefits and profits, we believe this value will establish a long and persistent chain of trust.

You might see this written on our websites as “Build for Time,” with text such as “We're happy to be your maintenance team indefinitely, but either way, we build for transferability and time. No more rebuilds because of offshore code spaghetti.”