This page covers the things every team member needs to know in order to effectively contribute at Unicis.
The Unicis product roadmap is transparent and can be found via the Unicis Feedback portal. However, strategy and priority information is handled internally on a Strategic Level and later reflected in the internal GitLab repository and on the Feedback portal.
Unicis organizes product development efforts into separate, cross-functional product groups, including product designers, developers, and quality testers. Product groups are grouped by business goal and designed to operate in parallel. Every product group is responsible for security and privacy by default and by design, performance, stability, scalability, database migrations, release compatibility, usage documentation, contributor experience, and support escalation. At Unicis, anyone can contribute and work across product groups.
Product group | Goal (value for customers and/or community) |
---|---|
Unicis Apps | Reach maturity Atlassian Apps in the GRC solution category. |
Unicis Platform | Reach maturity in the GRC product category. |
Responsibility | Person(s) |
---|---|
Product Designer, Engineering Manager, Product Manager, Quality Assurance | Predrag - CEO and Founder |
Developer | Yaroslav |
Responsibility | Person(s) |
---|---|
Product Designer, Product Manager, Quality Assurance | Predrag - CEO and Founder |
Engineering Manager | Peter - CTO |
Developer | Yaroslav and Abdul |
Unicis manages changes to the system in a controlled and systematic way. This helps ensure the reliability and integrity of our services. Each change is documented, evaluated for its impact, and approved before implementation.
When there is a pull request (PR), each code change or logic should be reviewed by the lead or someone else. The reviewer is required to provide feedback regarding the change review, including whether it has been tested and utilizing the appropriate abbreviations:
Short Messages | Meaning |
---|---|
LGTM | Looks Good To Me |
ACK | Acknowledgement, i.e. agreed/accepted change |
NACK/NAK | Negative Acknowledgement, i.e. disagree with change and/or concept |
RFC | Request For Comments, i.e. I think this is a good idea, let's discuss |
WIP | Work In Progress, do not merge yet |
AFAIK/AFAICT | As Far As I Know / can tell |
IIRC | If I Recall Correctly |
IANAL | “I am not a lawyer”, but I smell licensing issues |
IANASP | “I am not a security & privacy expert”, but I smell security and privacy issues |
Planned changes are scheduled and managed through our standard change management process. Unplanned changes, such as emergency fixes, are handled promptly but still require documentation and a post-implementation review to ensure no negative impact on the system.
Breaking changes are those that could disrupt or alter existing functionality. These changes require extensive communication with stakeholders, extensive testing, and detailed migration guides to help users adapt to the new system.
Changes to our API can have a negative impact on everyone using our products. Always make sure these changes are compatible with previous versions. Clear versioning and detailed release notes are provided to guide users through the transition.
Drafting means creating user stories, specifications, and designs. This phase captures the ideas and requirements, which are then refined and tested before they are implemented.
A user story tells the story of a feature or function from the point of view of the end user. It has rules that say what needs to be done to make the story complete.
“DONE” means that a user story or task has met all the requirements, passed all the tests, and is ready for release. It requires coding, testing, documentation, and approval from relevant stakeholders.
Outages are unexpected downtimes or problems with the service. Our team quickly fixes the problem and checks everything to make sure it doesn't happen again.
Status Page Our status page is used to communicate with our customers and integrates with our internal Element chat channel `Alert`.
Scaling is adding more capacity to the system to handle more load. This includes improving performance, adding resources, and improving infrastructure to ensure seamless service for a growing user base.
Testing is important for making sure our product works well. This includes testing everything from the beginning to the end to make sure that new changes don't cause problems or break things.
We offer support for multiple versions of our software to help users who can't upgrade right away. Clear timelines and deprecation notices are given for phasing out old versions.
Before a new version is released, it undergoes rigorous testing to identify and fix any issues. This includes regression testing, performance testing, and user acceptance testing.
Effective communication about bugs includes detailed reporting, status updates, and resolutions. Users are promptly informed of any issues affecting their experience.
Features are improvements or new features we add to our products. Each feature goes through a lifecycle from request to release, ensuring it meets user needs and maintains system integrity.
Users and other stakeholders are welcome to submit feature requests via the Unicis Feedback portal. These requests are reviewed, prioritized, and scheduled based on their impact and feasibility.
Clear and open communication about features includes status updates, expected timelines, and any changes in scope. This keeps users updated and involved throughout the development process in the Unicis Feedback portal.
A feature request is accepted once it has been reviewed, approved, and scheduled to be implemented. This means it has met the requirements and will be worked on in the future, and it is tagged in the portal as `Planned`. During development, we label the feature as `Started` in the feedback portal.
A feature is considered released when it is fully developed, labeled as `Completed`, tested, and deployed to the production environment. Release notes and documentation are provided to help users understand and utilize the new functionality.
Quality is a top priority at Unicis. We maintain high standards through rigorous testing, code reviews, and continuous improvement practices to deliver reliable and effective solutions.
Bug status indicates the current progress of a bug through its lifecycle, from reported to resolved. Clear status updates help users and developers track and prioritize issues effectively.
A bug is marked as reproduced once it has been successfully replicated by the QA team. This step is crucial for diagnosing and fixing the issue accurately.
In development status means that a user story, feature, or bug fix is currently being worked on by the development team. This includes coding, initial testing, and code review.
In QA status indicates that a user story, feature, or bug fix is undergoing quality assurance testing. This phase ensures that the work meets all acceptance criteria and is free from defects.
High priority user stories and bugs are those that have a significant impact on users or system performance. These are addressed urgently to ensure minimal disruption and maximum satisfaction.
Wireframes are visual representations of a user interface. They help in planning the layout and functionality of a feature before actual development begins, ensuring clarity and alignment among stakeholders.
Meetings at Unicis are structured to enhance collaboration and communication. They include user story discovery sessions, design reviews, weekly bug reviews, and group weeklies.
User story discovery meetings involve brainstorming and defining user stories. This collaborative process ensures that all relevant requirements and perspectives are considered.
Design meetings focus on creating and reviewing the visual and functional aspects of new features. This includes wireframes, mockups, and prototypes to ensure the best user experience.
Monthly bug review meetings are held to assess the status of reported bugs, prioritize fixes, and track progress. This ensures timely resolution and maintains system stability.
Group weekly meetings provide a platform for team members to share updates, discuss challenges, and plan for the coming week. These meetings foster teamwork and alignment.
OKRs (Objectives and Key Results) are set and reviewed collaboratively to ensure that team goals align with company objectives. Regular check-ins keep everyone focused and on track.
Scrum is the agile framework used at Unicis to manage development. It promotes iterative progress, continuous feedback, and rapid adaptation to change.
The Scrum board is a visual tool used to track the progress of tasks within a sprint. It includes columns for user stories, tasks, in-progress work, and completed items.
Sprints are time-boxed iterations, typically two weeks long, during which specific work items are completed. Each sprint begins with planning and ends with a review and retrospective.
Community and outside contributions are encouraged and valued at Unicis. We provide clear guidelines and support for external developers to contribute to our projects, fostering innovation and collaboration.