Tell the truth. If you don't know something, just say, "I don't know." If you didn't do something, just say, "I didn't do it." If you did do something you were not supposed to do, just say, "I did it." We expect you to be honest.
Do your own work. Every good developer uses what they can find on the internet to help them tackle their own problems. However, there is a big difference between using an example to guide you through a few difficult lines of code and passing off someone else's work as your own. I was recently told by someone that they asked an apprentice candidate to program a tic-tac-toe game. The candidate found someone else's tic-tac-toe game on the internet and handed that in. You won't get away with that here and you'll lose a lot of money when you get kicked out. If you are confused by a particular problem and don't know where to start, just ask for help.
We will never ask you to leave the Craftsmanship Academy for telling the truth. (Of course, you could be asked to leave because of something you did, such as a criminal act or a violation of other parts of this Code of Conduct.) You will almost definitely be kicked out for lying. Don't do it.
Integrity isn't just a tool in the craftsman's toolbox. It's essential to the character of a craftsman.
Give feedback appropriately. Feedback is essential to meeting the goals of any project. We will often ask for your feedback because that's part of how we improve the program. At the same time, we need to balance the needs of other apprentices and classroom time constraints. Therefore, if you have feedback to give at a time when we're not asking for it, please wait to find a private moment to talk with your instructor. That way, the feedback loop does not disrupt the group.
Follow the leader. We've structured the schedule, content and challenges of the Academy with specific learning milestones in mind. To that end, we ask that you come with a willingness to follow your instructors' directions, for everyone's benefit. If you go off on a tangent, your instructor might suggest, "Let's discuss after class so we don't distract the others or derail what we are trying to accomplish right now." You need to respect this request. If you don't, you will be asked to leave.
We want to maximize every apprentice's opportunity for success. To that end, we make an effort to screen out people whose experience, maturity, aptitude and circumstances would hinder their chances for success. Secondly, we aim to encourage in each apprentice the self-discipline necessary to learn and succeed in this sort of accelerated immersion.
Attend every group session. We expect all apprentices to work on-site at our facilities in Holly Springs, NC, during normal office hours, Monday - Friday. Exceptions to this rule will be decided by the instructor. Some of those exceptions may include earlier mornings or later nights due to the schedule of the instructor or visiting craftsmen. We will make every attempt to make these exceptions known as early as possible.
Complete every exercise, even if it requires extra hours. Due to the intense nature of this type of training, there is not a lot of slack. We expect that apprentices will need extra hours in the day outside of office hours to cement their understanding and complete required reading and exercises. Some of those exercises do not relate directly to software, but are designed to grow the character qualities and skills that make a software craftsman successful. Some days will require less than 8 hours of work and some days will require more than 12. Most days will require somewhere in between. We discourage multiple long days in a row because physical and mental fatigue hinders learning.
Keep pace with the team. We want to stretch our apprentices through hard work, not break them. We expect to find time to refresh, enjoy each other's company and help each other out. We want every apprentice to be successful and healthy. We anticipate that stronger performers will meet and exceed expectations in 45-50 hours in any given week, and weaker performers will get there with an additional 20 hours in a given week. We expect strong and weak performers to change from week to week as we hit different aspects of craftsmanship that may come easier to some rather than others based on aptitudes, gifts and experience. It is a rare feat to accurately predict which weeks will be easier or more difficult for a given individual.
Minimize outside commitments. We strongly advise that apprentices keep commitments outside of the Academy to a bare minimum for their own personal health and well-being. We want to minimize any distractions that could keep an apprentice from succeeding.
Rest on Sunday. We encourage you to take one full day of rest each week. We suggest that day be Sunday for the renewal of the mind, body and soul. We will never schedule any required sessions on Sunday. There may be an occasional event scheduled on a Saturday. There will often be assignments given on Friday that will you will need to complete by Monday morning. We encourage you to do those assignments on Saturday.
Take a break in the evenings and a vacation between phases. We strongly encourage you to use some of the time between daily sessions to do something that has little or nothing to do with software. We also encourage each apprentice to take at least one week off after the immersion phase before beginning residency.
Recognize that illness, emergencies and other unexpected life events could keep you from completing the Academy. Although we will make every effort to be accomodating in extreme circumstances, there are some essential learning milestones to success that cannot be ignored. If you do not meet those milestones of achievement, you will be asked to leave, even if you have a valid excuse. The reality is, some work can be made up and some cannot, and all apprentices need to keep pace with the team. We do build in two weeks between immersion and residency as a buffer for minor setbacks in completing the final project.
There is a time to work and a time to rest. We want to stretch our apprentices through hard work, not break them. We expect to find time to refresh, enjoy each other's company and help each other out.
We're here to learn, not to top each other, so act like it. We want everyone to do their best, help others do their best and not be a stumbling block to anyone else's learning. We will not tolerate excessive criticism or jokes at the expense of other apprentices. Treat others with respect.
If you are concerned about the well-being or the ability of another apprentice to unduly slow down the learning of the group, bring your concerns to the other apprentice in private first. Then, bring it to the head instructor.
There will be no sexual harassment at the Academy: zero tolerance.
We encourage discussion about morals and the source of morals. However, the focus of the Academy is becoming excellent software craftsmen, not philosophy or religion. You do not have to share the beliefs of the primary instructor to be a part of the Academy.
However, a healthy learning environment requires that no one be distracted by the inappropriate conduct of others. Our internet connections and our computers should never be used to download or view pornography. Yours should not be used for it, either, and it will not be tolerated at the Academy.
We are not the thought police, but we encourage moral purity in thought and action. We know we cannot enforce this, even in ourselves. We just ask that you acknowledge that the primary instructor will encourage moral purity and holds the Bible as his standard for defining it. If this is something you cannot tolerate, you may want to get your training elsewhere.
It goes back to the first part of this Code of Conduct. We don't lie. We don't want this to be a bait-and-switch. Imagine if you committed a year of your life and a significant sum of money to someplace that represented itself one way and then, when you arrived, you found it to be completely different than you expected. You would be justifiably upset.
We have worked with people from a diverse array of religious and non-religious backgrounds who do not share the primary instructor's beliefs. They have felt welcome in our environment (even though it is not what they would have designed). Some of our instructors do not share the primary instructor's core beliefs, but happily associate with him (and are good friends).
But others just don't care for it. If you think you could not function according to this Code of Conduct, or would be too stressed to learn in this sort of environment, we don't want to put you in a situation that you regret. We hope you appreciate our honesty, whatever you choose.
If you are considering applying for the Academy, and have any specific concerns before doing so, please contact us firstname.lastname@example.org.