|Level 1||2||3||4||Level 5|
|Competence||Meets Outlandish's basic criteria, requires management as appropriate||Progressing well towards Outlandish's required/expected level||Excellent individual skills. Able to help others.||Excels personally and sets an example to others where appropriate||Awesome. Provide leadership in this area. Absolute bosses it.|
|Quality||* Reports technical problems effectively.|
* Has a basic understanding of coding concepts.
* Committed to commenting and documenting work.
* Implements webpage design using HTML and CSS.
|* Produces basic scripts and prototypes without guidance. |
* Spots basic errors in at least one language.
* Demonstrates basic code debugging and error diagnostics.
|* Delivers projects and tasks with minimal guidance and few errors. |
* Leaves the code behind in a better state than they found it.
|* Capable of developing complex pieces of software in various languages and meeting specifications. |
* Knows how to thoroughly test them, either manually or through automated testing.
* Code should be mostly self-documenting, follow standards and guidelines and be easy to understand by other developers.
|* Provides leadership on code quality across projects. |
* Helps everyone they work with to understand and improve their code quality.
* Is knowledgeable in a broad range of technical disciplines.
* Ensures all projects are of high technical standard at point of delivery
|Innovation||* Occasionally shares appropriate new code libraries and examples new technology.||* Is responsive to and positive about new technology.||* Experiments with new techniques, languages, libraries, services, etc. ||* Takes an interest in emerging technologies and shares this research and understanding with other team members.||* Successfully leads the adoption of appropriate technologies and approaches. |
* Researches, tests and uses a wide range of technologies - routinely selecting the most appropriate for each task.
|Communication & Understanding||* Thinks about the intention of the person who wrote the task, and doesn't simply follow the task to the letter. |
* Able to explain what they have done or plan to do to another technically minded person.
* Can reflect on their own misunderstandings and learn to improve from them.
* Can take criticism and give praise.
* Does ask other members of the team for help and advice.
* Approaches other members of the team for advice where appropriate.
|* Ensures they understand the technical requirements and overall purpose of the project before starting it. |
* Effectively informs other team mates about their plans where code interoperability is required.
* Effectively communicates technical concepts to people with varied levels of technical knowledge.
|* Understands requirements enough to predict potential problems before starting, and can effectively communicate those problems (and potentially their solutions), to both technical and non-technical parties. |
* Keeps the rest of the team informed of all progress and/or blockers
* Disseminates necessary information to appropriate people when new technology is implemented
|* Identifies misunderstandings by team mates and resolves these appropriately. |
* Regularly takes the lead in explaining technical concepts, approach, progress or problems to a variety of audiences.
* Suggests alternative methods of achieving a task where it benefits the project and the team.
|* Clearly communicates technical concepts, strategies or outcomes to any audience. |
* Regularly contributes to discussions about the advantages and disadvantages of various technical solutions.
* Takes all appropriate measures to ensure that they are aware of technical requirements at task, project and company level.
* Regularly and effectively supports others in their technical communications.
|Architecture||* Is able to design a basic application or script. |
* Has an understanding of appropriate technologies for a task.
|* Understands common practices in OOP. |
* Can draw up UML or other architectural diagrams to describe the relationships and processes within an application.
|* Can contribute effectively to and challenge others appropriately in discussions around architecture. |
* Can build appropriate database schemas in SQL or NoSQL languages.
* Understands and implements SOLID principles when writing OO programming.
|* Does transfer theoretical knowledge of architecure effectively to frameworks in one or more languages. |
* Have an understanding of modular code. * Familar with a number of different frameworks across a number of languages.
|* Effectively plans, designs and creates effective server, application, and database architectures for large and complex projects. |
* Approaches others' code and offer considerations on refactoring for speed, efficiency, and readability.
|Technical Operations and Devops||* Has a basic understanding of networks, servers and their relationships.|
* Can set up a development environment on a machine with some assistance.
* Is aware of procedures surrounding staging and deployment.
* Understands the importance of backups and can implement them.
* Understands what a shell is and can issue basic commands (ls, cd, pwd and so on).
|* Understands how networks and servers work|
* Can perform restoration from backup of simple systems (for example a MySQL database from a dump)
* Is able to confidently set up a development environment and assist others in doing so in a project they have experience of
* Can deploy a project to production by following a list of instructions
* Understands the implications of a production deployment
* Can roll back an unsuccessful deployment from a production environment
* Has a conceptual grasp of the Unix shell and can use it for day to day operations
* Can log in and perform basic administration and debugging on a remote system
* Understands and attempts to argue for extensive logging at all layers of the application stack to assist debugging live or staging systems
|* Can confidently configure a web server or database with little assistance|
* Understands what cloud infrastructure is and how organisations like Outlandish can benefit from it
* Has logged into a management console like AWS and is able to use it
* Can confidently use the Unix shell on a remote system and understands more advanced concepts of the Unix operating system
* Can use a Unix package management system
* Understands and sometimes uses configuration management tools and is capable of teaching others the value and basic operation of these tools
* Can debug a failed deploy, restore it and recover to a new completed deploy
|* Is capable of setting up a complete application stack on a cloud infrastructure|
* Is capable of using one or more configuration management tool and of reviewing the code of others for errors in idempotence
* Is capable of relatively advanced shell scripting and is competent in at least one commonly used language for administering systems (Python or Ruby or Golang)
* Confidently operates AWS on both the command line and through the AWS console
* Understands cloud infrastructure on AWS.
* Understands the conceptual eco-system of devops (agentless versus agented configuration management, virtualisation, hypervisors, networking, containerisation and so on) and is interested in learning about the bleeding edge of this technology and apply the lessons where appropriate
* Has excellent "taste" with regard to operations. Understands that sometimes less is more and that
* Is capable of auditing an existing system or stack and make suggestions either in software, additional services or even hardware
* Understand the cost implications of cloud infrastructure and is able to suggest cost effective options within this space (e.g. reserved instance versus spot instances)
* Suggests system architectures for the development of application stacks with an appropriate level of robustness, avaliability and fall over
|* Understands the various configuration management systems (Ansible, Salt, Puppet et al) and their implications and ideal usecases|
* Is capable of providing AWS architect level of expertise and has a rich awareness of other cloud offerings and their flaws. Can confidently advise clients as to their server needs and then implement these needs in a repeatable and secure manner
* Understands the full stack and is near effortless in debugging highly complicated problems related to server architecture from the command line
* Has written tooling and automation in one or more languages - may have contributed code back to a configuration management system or filled a real bug report
* Has a strong grasp of emerging cloud technologies (containerisation) and is able to advise organisations as to their value and then deploy them
* The go to person when a system is malfunctioning
|Security||* Understands the neccessity of good, strong and unrepeated passwords and mostly applies these lessons|
* Understands the value of security with regard to Outlandish and client data
* Has an awareness of basic security flaws found at an application level (XSS for example)
* Understands some of "grammar" of security - encryption, penetration testing, denial of service and so on.
* Understands the value of full disc encryption and rocks a laptop with a encrypted harddrive
|* Understands the essentials of application level web security and applies them to their own work|
* Secures their passwords with an appropriate level of complexity and uses a password manager or similar all the time
* Understands what vulnerabilities in software are and where they can exist within a software stack
|* Can judge the code of others for potential security flaws and is able to fix them by suggestion|
* Understands the basics of running an external security test and can complete one to a basic degree
* Keeps Outlandish systems secure and alerts appropriately when there is a potential security problem
* Understands the general importance of creating a strong security culture and helps build this culture
|* Has a strong awareness of security issues and keeps on top of them as they emerge, patching servers where appropriate.|
* Retroactively checks existing code and infrastructure for security flaws and is able to effective patch them.
* Understands the value of cryptography in communication and is capable of implementing forms of cryptography.
* Is familar with OWASP and the lessons therein and has internalised and actively prevents at the very least their top 10 security vulnerabilities in web applications ever existing in Outlandish code (see https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet)
* Is capable of reading and evaluating the results of a penetration test and judging the appropriate level of risk with regard to security problems.
* Can run a decent level of security auditing and a penetration test to the standard of someone who is not a full time security professional
* Understands network, servers and their security and is capable of confidently pointing out and repairing security flaws in architecture where they exist.
* Understands the political and reputational impacts of pure security and takes these to heart in their day to day operation.
* Is capable of informing others of security issues and teaching good security practice, contributing to a strengthened internal security culture.
* Is capable of communicating to clients the value of security and informing them of security problems in a professional manner and communicating the level of risk without scaremongering (or if neccessary scaremongering)
* Approaching the ability to confident wear the "white hat".
* Is able to advise third parties about the appropriate level of security or privacy for potentially politically sensitive work.
* Knows what application threat modelling is an is able to complete such an analysis. In general is aware and can perform formal threat modelling.
|* Basically a l33t hax0r, capable of wearing all of the "hats" of the world of security where appropriate.If you have a red team, you want them on your team.|
* The sort of person where you expect Kali Linux to be their default operating system.
* Capable of leading a full penetration test against systems.
* Deeply understands cryptography, information hiding and can talk with other security professionals about it.
* Understands the value of responsibile disclosure and has responsibily disclosed a vulnerability to a third party or to the community at large.
* Read through Phrack or similar underground zines and never thinks "never thought of this".
* Analyses and audits software for vulnerabilities and is able to find them, patch them and also produce proof of concept of vulnerabilities and if neccessary exploitation code.
* Understands advanced security topics as they pertain to all aspect of security - for example stack smashing, buffer overflow and so on - and can produce vulnerabilities of this class.
* Is the sort of person who could confidently go to a major security conference - Black Hat, Defcon - and you wouldn't be worried for their computer being on the network. You'd be worried for the computers of others.
* Has a near sixth sense of diagnosing potential security holes to the extent that you are glad they work for the goodies.
* Is emersed in the legacy of hacker cultures and keeps track of the underground to learn about new vulnerabilities or trends regarding attack vectors.
|Visual Design - Look & Feel||* Effectively uses photoshop or similar to generate, extract or manipulate basic assets. |
* Is able to follow through an established design with reasonable proficiency.
* Has an understanding of aesthetics and design principles.
|* Able to interpret simple visual requirements and produce a basic design that satisfies the brief.||* Reliably produces design work that satisfies clients' requirements and the expectations of the team.|
* Uses a good understanding of front-end development techniques and limitations and designs with these in mind.
* Works with developers to ensure that designs are carried through effectively and modifies them where necessary.
|* Shows outstanding ability to create attractive web interfaces that meet clients requirements and please end users. |
* Always shows an accute understanding of the client's brand and objectives.
* Uses a wide variety of design techniques and tools as appropriate to a project.
* Actively promotes design-centred solutions to client requirements.
|* Engages all key stakeholders in the design process to develop effective visual design. |
* Leads all phases of the visual output of a product - from initial proposal to moodboards, visual research, wireframing, design, development, quality assurance and delivery. Strong conceptual thinking.
|Information Architecture||* Effectively wireframes a basic webpage showing key elements and a clear page hierarchy.||* Is able to identify and explain common user journeys and interactions. |
* Demonstrates a good understanding of conventions and usability of navigation.
|* Plays a key role in wireframing discussions around UI. |
* Suggests novel and effective user interfaces that are appropriate for the project requirements.
* Draws wireframes with an understanding of the technical limitations and underlying technical architecture and data.
|* Effectively leads the IA process on complex web projects. |
* Clearly demonstrates a mastery of IA and usability concepts.
* Relates IA decisions back to user needs, user behaviour and client business goals.
* Able to engage stakeholders to define prioritised user journeys, site structure, and other required elements such as galleries, directories, promos, etc.
|* Effectively leads the creation of wireframes, domain models and user journeys. |
* Develops clear interfaces for complex applications and websites.
* Ensures IA principles are adhered to througout project design and development.
|Design Communication & Understanding||* Offers opinions about design and raises usability or technical difficulties.||* Promotes user-centered design and regularly relates design-related discussions back to client and user needs.||* Co-ordinates the design, development and QA of visual features.|
* Shares understanding of key design concepts and technologies to help others implement designs more effectively.
|* Takes ownership of all visual elements of a project and ensures that these are delivered to the highest standard. |
* Co-ordinates clients, project managers, developers and other stakeholders to ensure that a design process is approved and followed, and that the outcome of the process meets the agreed specifications.
|Resourcing||* Manages own time effectively.|
* Accurately records and reports time spent on a task or project.
* Completes agreed tasks on time and within budget.
|* Responds to changing scenarios to work effectively with the rest of the team.|
* Accurately estimates the majority of tasks.
* Understands project budgets and how this translates to time for each team member.
* Understands main project risks and mitigation.
|* Knows how far through a project the team collectively is.|
* Knows the size of each project, budget and when the main milestones are.
* Has an awareness of the potential for future phases from projects they work on.
* Is pro-active in finding out things they aren't sure of in terms of schedule, budget, priorities and requirements on them.
* Effectively communicates their progress on tasks, so that others don't need to ask
|* Can juggle resources between projects.|
* Knows the financial status of the project - how much budget is left vs how much work to do.
* Has an understanding of all current Outlandish projects and what each team member is working on.
|* Strategically manages scheduling issues between projects to ensure deadlines are met.|
* Leads governance of project tasks, funds and deadlines and ensures that agreed procedures are adhered to.
* Pro-actively looks at ways to improve delivery processes and drive quality, efficiency and satisfaction.
* Develops strategy for effective delivery of projects.
|Working With People||* Works effectively in a team and communicates clearly.||* Learns from others and work with people to ensure the project is delivered to the best of the team's ability.||* Effectively communicates with team members about issues.|
* Regularly looks to the team for input and feedback.
|* Effectively works with multiple project teams at the same time. |
* Understands how to communicate and respond to different team members.
* Acts quickly when people management issues arise.
* Motivates the team to work effectively together.
|Client Management||* Is able to communicate with the client clearly, effectively and in a personable manner||* Has a positive relationship with the client, is trusted by the client that what Outlandish delivers is of high quality and value for money.||* Is able to develop the relationship with the client above and beyond day to day project work, and effectively communicates with them before, during and after project deliveries.||* Has a close (professional!) relationship with multiple key clients for Outlandish.|
* Goes above and beyond the call of duty to ensure clients are happy, remember Outlandish for future work and recommend us to others.
* Leading the resolution of difficult situations in conflicts with clients.
|Editorial Understanding||* Is able to identify and define client requirements and objectives and communicate these to the rest of the team||* Works with the client to develop their ideas and spends time to develop these in to fully formed requirements. |
* Creates a backlog of prioritised tasks and communicates these to the project team.
|* Actively engages in the requirements gathering stage to lead the client toward Outlandish thinking. |
* Has influence in the way the project is formed.
* Has confidence in suggesting ideas that are different from that of the client.
* Ensures that the tasks that effectively deliver the clients' goals are effectively delivered
|* Leads the direction of the project to ensure tasks are understood, completed to the quality level required and has a complete overview of wher ethe project is, and what it is likely to achieve at any given point in time||* Leads the editorial and creative solution from start to finish, always thinking about how best to serve the audiences rather than the client.|
* Invests time in talking to the client and effectively persuades them to go in a particular direction that will ensure the project itself is more succesful, achieves its objectives more effectively and enables Outlandish to be proud of the work it delivers.
|Generating Opportunities||* Identifies, attends and/or contributes to forums that might be sources of work.|
* Suggests potential clients, sectors and approaches.
* Assists others in looking for work by collecting email addresses from relevant channels, sending emails and managing responses.
|* Uses a wide variety of techniques to source potential opportunities||* Regularly attends events and actively seeks out potential clients.||* Regularly goes beyond the call of duty to identify potential clients, understand their needs and suggest arrange opportunities to pitch or define work.||* Consults with a large number of potential team members to align potential projects with available interests, skills and knowledge. |
* Suggest novel ways for others to contribute to generating opportunities.
|Developing Opportunities||* Promptly follows up client enquiries when agreed. |
* Ensures that relationships are progressed by gathering requirements, arranging meetings and offering help.
* Lets people know if they are not interested in an offered opportunities
|* Can write clear proposals for simple projects.|
* Contributes effectively to client meetings
* Colaborates effectively with other team members to develop opportunities and enables them to contribute
|* Quickly and effectively takes up opportunities and manages the relationship appropriately. |
* Writes clear proposals for projects that outline the requirements, proposed solution, costing and timeline.
* Develops friendly potential client relationships that reflect Outlandish's cooperative nature.
|* Is able to sell on further phases of work, upselling and developing the relationship. |
* Is able to see opportunities for further work and develop those into tangible projects.
* Regularly comes up with ideas on how to develop projects or create new opportunities and follows these through.
|* Regularly sells interesting and profitable work to a variety of clients and sectors.|
* Upsells work of considerable value to existing clients.
* Converts opportinties into on-going profitable relationships.
* Promotes the ethos of the company at all times and ensures that this is reflected in project definitions and requirements
|External Communications||* Occasionally creates blog posts, tweets, and other social media. |
* Answers emails in a timely manner.
* Follows up leads effectively and appropriately when agreed and keeps others informed with progress.
|* Deals with a wide range of incoming client enquiries effectively.||* Regularly create appropriate social media posts that receive significant attention. |
* Creates blogs that generate a large number of views and comments.
|* Oversees the messages that Outlandish publishes, on the website, on social media channels and on other sites. |
* Encourages all team members to contribute to the external facing content we publish.
* Regularly pushes the team to create relevant blog posts and update the website to reflect work achieved.
|* Is in charge of the marketing and PR strategy for Outlandish. |
* Talks regularly about Outlandish at events and is always 'on duty' when meeting people that could become opportunities.
|Driving Outlandish’s Aims Forwards||* Understands Outlandish's goals and ethos and can contribute to internal and external discussions on the subject.||* Creates useful strategic partnerships, represents outlandish at an industry level, identifies new markets and products that enable outlandish to better meet its purpose.||* Develops Outlandish's strategy for achieving its agreed goals. |
* Mobilises support from within Outlandish and externally.
|Being Outlandish - Support, training and culture|
|Supporting Other Outlanders||* Listens to people's needs and responds to them effectively to better the situation||* Helps other Outlanders when asked, prioritising the help appropriately. |
* Finds extenal support when necessary.
|* Actively seeks out opportunities to support other Outlanders by providing another pair of hands, a shoulder to cry on or someone to drink with.|
* Always looking at ways to improve the way we work and the culture of Outlandish to increase individuals fulfillment and ensure people are happy, supported and secure.
* Spots when other Outlanders need help and offer their support.
|* Rallies the other Outlanders where appropriate to take action around a particular issue.||* Regularly sought out by other outlanders with personal issues.|
|Engaging With & Training Other Outlanders||* Explains code, concepts, technologies, and other workplace skills when asked. |
* Asks appropriate questions that are necessary to perform their job.
|* Looks for opportunities to share understanding with others.|
* Questions suggestions regularly in a pro-active constructive manner.
* Thinks through potential implications of suggestions and comes back with other suggestions
* Asks incisive questions, the answers to which often throw a new perspective on matters or reveal new meaning.
|* Volunteers their time to help others gain skills and train. ||* Checks and ensures opportunities for training aren't missed, seeks out training opportunities for other Outlanders and encourages participation. ||* Implements processes to ensure outlanders share their knowledge effectively.|
* Invites specialists in to the office to grow Outlandish skills and experience.
* Spots where an individual could benefit from skills they possess and then makes the training happen
|Promoting, Living & Developing Outlandish Culture||* Cheery to have around the office. |
* Acknowledges and shares the seven cooperative principles.
|* Adds enthusiasm to projects and proposals, promotes a spirit of honesty, openness, speaks up for other Outlanders.||* Attends social events where possible. |
* Actively engages in discussions and proposals around developing the culture and the direction of Outlandish
* Looks for opportunities to pass on knowedge and gain awareness of new areas from others
* Actively practises the seven cooperative principles.
|* Organises sessions, events and social outings to encourage us to know each other outside of work. |
* Regularly volunteers to support other outlanders/freelancers or outlandlings in things they are trying to learn or do.
|* Develops strategies and processes for keeping the outlandish culture alive and developing. |
* Actively leads in discussions and proposals around developing the culture and the direction of Outlandish.
|Putting Forward Opinions||* Clearly states when they disagree with a proposed course of action. |
* Able to be pragmatic while retaining congruence.
* Looks for ways to come to an agreement.
|* Engages with discussion in Outlandish on matters they are interested in. |
* Positively and congruently contributes to circles.
* Open to considering alternative views.
* Approaches conflict situations using solution-focused techniques.
|* Clearly states what they believe to be the right course of action and explains their beliefs clearly and logically when challenged. |
* Recognises the greater good in situations where a stalemate might otherwise be counter productive and prepared to be pragmatic in these situations.
|Applying Thinking||* Is able to show some evidence of sometimes having thought about something in terms of strenght, weaknesses and alternatives before going ahead and doing it.|
* Identifies things that can be improved and raises issues with Outlandish.
|* Creates proposals around things they are enthusiastic about. |
* Always able to explain and justify reasons for a decision.
* Always thinks through in a clear and logical manner.
|* Regularly identifies time saving or life enhancing solutions by applying thinking. |
* Shares this thinking effectively with others.
|Finance||* Keeps accurate timeslips of time spent on tasks. |
* Reports time spent and invoices effectively and on time.
* Provides additional financial details and information in a timely manner.
|* Seeks out, uses and understands appropriate financial tools.|
* Takes responsibility for their own personal finances.
|* Uses and understands Outlandish's finance software.|
* Can obtain financial status of the company by looking at Freeagent and the dashboard.
* Has an understanding of our fixed costs, and when tax is owed and needs paying.
|* Pays bills, manages some finances has a thorough understanding of what is owed to and by Outlandish at a given point.||* Actively monitors and manages the finances of Outlandish. |
* Ensuring there is enough money to pay bills and expenses.
* Takes responsibility for ensuring all tax requirements are met.
* Regularly checks finance and tax advice to ensure Outlandish is meeting and exceeding its obligations as a company.
* Reports financial status back to Outlanders.
|Coordination||* Comes in on time and attends all required meetings. |
* Has an understanding of the projects that they are on and are booked in to do and raises any conflicts in the diary with these..
|* Ensures required tasks for the day/week are covered should they be unable to complete them||* Assists with the day to day running of Outlandish. |
* Keeps the office tidy, ensures that the office is supplied with stationary, coffee, tea, milk, etc. and pulls their weight with all non-specialist tasks.
|* Pro-actively improves Outlandish's day to day running practices, regularly raising and implementing more enjoyable, cost effective or socially good ideas on how to do things.||* Excells at programme management.|
|Internal Communication||* Notifies outlanders of any issues with projects/attendance. |
* Bring any issues to attention of team
* Set up a Loomio or circle to discuss issues
* Reads and responds to internal comms.
* Offers opinions on things raised in internal comms.
* Where diary allows, contributes to discussions on the things that are particularly relevant to their role as an Outlander.
|* Keeps team up-to-date with important and day-to-day information without being prompted and prompts others to do the same.||* Keeps the project wiki up to date. |
* Reliably raises issues with those that need to know in an appropriate manner.
|* Pushes forward ideas and strategies for improving Outlandish.||* Pro-actively engages in internal discussions and initiates comms around ideas for Outlandish. |
* Raises issues (negative or otherwise) in a timely and pragmatic way to ensure potential issues are resolved swiftly.
* Lives by the sociocratic values: positivity, congruence and empathy