Introduction Today the Mafia City team thought it would be good to reach out to you, our community, to give you an insight into how we develop and test features. Ultimately, our goal is for you to understand how we work as a team, and to understand why it takes such a long time for us to create a server which we would be proud to release to the public. All of our developed features will have followed the same process which is listed below, however not all features are created equal, and some will require more testing, more overhauls or more tinkering to get right. Whereas others are smaller, simpler features which do not take long at all. Regardless of the size or complexity of the system, everything will follow the same development method to ensure the highest possible quality across every feature which the Mafia City staff team release onto the server. We work as a team, in almost every capacity. Our Development Process relies heavily on checks and time balances. From all the different features which have been developed to date, we chose to focus this article on our drug system, as it is a feature which many people have demonstrated interest in, and we hope that this will help keep you interested in what is to come, without any further ado lets go into it: Project Planning and Features Before any coding can start, we first need to plan the drug system or add an acceptable criteria. First, we have to write some overview notes of what our basic expectations of the system are, and what players should be able to achieve with this system, or how it should affect them. Features are typically discussed between the Lead Content Developer and the Lead Administration. However, it is not rare that other staff are brought into the conversation. Once we have an understanding of what we want out of a feature, a Trello card is created. We have two different Trello Boards. The first one, which we labeled "Backlog", is where all in-planning and completed cards live. The "MC-RP Development" Trello is where all active cards are stored. We decided to separate these two boards to facilitate easy understanding of which cards are assigned in this development cycle. When a card lives in our Backlog Trello, it's either being planned or it has been prepared for the next development cycle. You can see our Backlog structure below. Each column has a very specific purpose, and will greatly affect the Development Process. Let's talking about each stage of the Backlog process. Post Launch is used for features we have determined that we want in our server, but for one reason or another, we have decided they are not important enough to be included for release. If we continued to add features before release, then we would never get to release. Planning is where our cards live for when we are preparing some of the most basic details, such as the Accept Criteria we mentioned earlier. Planned is the limbo-area. These cards have been flushed out, but haven't been assigned a development cycle. The card will live here until they've been prioritized by the Development Team for work. Prepped for the next sprint is where cards sit for the next development cycle. The Development Team has prioritized the work and will begin breaking ground as soon as we finish with the previous cycle. Moved to Up-next has no development purpose, other than it moves the feature card onto another board using automation we created. Completed (QA Pass) is where completed cards live. We'll cover the QA process in just a bit. Once a card has been planned, prioritized, and moved to the current development cycle, it gets moved to the "MC-RP Development" Trello Board. This board houses all active projects and is what holds the development teams focus at any time. Let's quickly go over the structure of this board as well. Same as the Backlog Trello, each specific column (or "list") has a specific purpose. Our Trello flow has been changed a lot since the start of our project. We've attempted to optimize it as much as possible for our Development Team environment. Let's quickly cover each column. Move to backlog holds no development purpose. It's an automation that allows us to quickly move a card back to the previously discussed Backlog Trello. Up-Next is a feature that has been planned, prioritized, and included in this development cycle. This column works as a queue, it is just waiting on one of our Content Developers to pick up the work for this feature. On Hold is sometimes one of the most important columns we have. Some features require others to be finished, or additional research to be done. These cards live in On Hold until any additional work has been completed. In Progress is the most important column in relation to this post. All active, in progress, features live within this list. The Development Team currently has an assigned individual working on this specific card. Quality Assurance is the most critical point in our development process. The Tester Team review each card and will attempt to ensure there are no bugs. If bugs are found, the card gets moved back into the Up-Next column for the development team to assign the work to be completed. Drug system Drug systems are fairly popular among roleplay communities, and because of this, we thought it would be an interesting concept to specifically showcase our Drug System's development process. Below, you will see a Trello card. We've included a picture of what the card looks like in the Trello column and the interior. As you can tell, they're vastly different. Face of Card Interior of Card Project Testing and Bug Fixing In this step, it is up to our lovely testers to start searching for those pesky bugs and to ensure that the feature operates as intended. When discovering a bug, the tester is required to write a post on how it can be recreated, what happened, and what was expected to happen. With this, the bug priority can be assessed so that low priority bugs don't steal time from the high priority ones, or from other projects, and thus ensuring better time management.[/size] Once the post is created, other testers can take a look at it, and if successfully recreated by more testers, it is then up marked up for the development team to fix it. When a fixed notice is posted by the development team, the testers have to once again try to recreate it, if they can't, then the bug is considered as fixed, and the feature is re-tested to ensure no new bugs have cropped up since the introduction of the 'fix'. The bug testing for the drug system, started mid-November and, in this case, 11 bugs with the respective priorities were found: One high priority; Eight low priority; Two false positives. A link for the respective post is then added to the Trello Card to make things organized, the coders can now work on fixing them and the testers on testing them. The majority of bugs were fixed before the end of January, and so, with only one low priority bug pending, the Trello Card was concluded as QA passed. In conclusion, the process of development for this feature took around 8 months, where 3 months were spent bug fixing and 6 for its build-up, keep in mind that during this time other projects, and bugs, were also being worked on. We hope that you now have a little better understanding of how things go behind the curtain, and why it takes us all the necessary time before we launch the server into public access. Conclusion It took roughly six months for our Content Development Team to consider this feature ready. This journey took us through various revisions, revamps, and bug fixes. Along with feature refactors and improvements, our Content Development Team manages to find a healthy balance between the development of our project, and their personal lives. This is incredibly important as most of our developers are still attending University. After the Drug System went through rigorous testing, we have now considered this complete. Our Content Development Team took six months to perfect the Drug System. This includes finding a healthy balance between development projects for Mafia City Roleplay and their personal lives. Development for this feature originally began last November. After going through several cycles of testing, we can finally say the feature is ready for production.