What Kind of Software School Is This?

Martin Fowler pointed out that there are different SchoolsOfSoftwareDevelopment.

So what kind of school is the Craftsmanship Academy?

We would call it a school of Lean Craftsmanship. Take the principles of the Agile Manifesto, make sure you practice them with people committed to the values laid out in the Software Craftsmanship Manifesto, and recognize that the best way to know that you are building software of value is to get feedback from real customers as proposed by the Lean Startup movement.

There is the kind of software craftsman who is a Solo Virtuoso. We admire and respect such individuals, but we believe that we are created as social beings, and that we have much to learn from each other. Isolationism can feeds one's ego. Working with a great team can feed one's ability, while keeping the individual humble as his mistakes and shortcomings are not hidden. Those that see his shortcomings can help him overcome them. Agile Software Development includes practices that help people work together effectively, and make constant course adjustments.

However, you can do a lot of "best practices" of agile software development, and still not be very good at creating software. A bunch of people with good tools can't build a beautiful piece of furniture just by cooperating and agreeing to what they think might be the best approach to building it. Somewhere along the line, they have to learn the techniques for working with the materials they have in an effective way. The Software Craftsmanship Manifesto acknowledged that the principles of Agile Software Development were not enough.

One can learn these techniques and apply them to build things only for themselves. If he does, only he gets the benefit. Unless he can eat what he builds, in the end, even he does not really benefit. People are ultimately paid for providing something of value to others. The Lean Startup approach to customer development in step with product development attempts to make sure that happens. It does not completely succeed because every venture has some inherent risk including some that can only be found by moving forward, but it does put the emphasis on talking to customers as if they mattered.

At RoleModel Software, we declare that we are focused on software craftsmanship with an emphasis on serving customers over being part of the “mutual admiration society." We strongly believe that true software craftsmanship. Software is primarily built to be used, not admired. (I.e. although we respect and admire those who are good at their craft and are not satisfied until every line of code is beautiful, we believe that we need to provide value to our customers through our work, and have an attitude of service to them rather than an attitude of elitism due to our power to master the computer and impress our peers).

  • A Craftsman is going to invest in his tools
  • Someone who wants to be part of a team invests in the team and what the team/business is doing
  • The customer is the most important part of the team

These values are reflected by RoleModel's Core Team who are focused on software craftsmanship in the context of making RoleModel and its customers more effective, profitable, and forward-looking:

  • Continuously striving to improve our craft
  • Continuously striving to serve our customers
  • Continuously striving to meet commitments to each other
  • … in context of “a healthy Christ-honoring life”

What was that last bullet item? Did he really say that in a public forum? Yes, he did.

If it is really important to you to live in a world where God is kept out, and no one around you acts as if there could be someone bigger than you or any person, you may not like our academy.

He has told you, O man, what is good;
And what does the LORD require of you
But to do justice, to love kindness,
And to walk humbly with your God?
(Micah 6:8, New American Standard Bible)

When Jesus walked the earth and was asked, “What commandment is the foremost of all?” Jesus answered, “The foremost is, ‘HEAR, O ISRAEL! THE LORD OUR GOD IS ONE LORD; AND YOU SHALL LOVE THE LORD YOUR GOD WITH ALL YOUR HEART, AND WITH ALL YOUR SOUL, AND WITH ALL YOUR MIND, AND WITH ALL YOUR STRENGTH.’ The second is this, ‘YOU SHALL LOVE YOUR NEIGHBOR AS YOURSELF.’ There is no other commandment greater than these.” (Mark 12:28-31, New American Standard Bible).

You don't have to believe that to come to the academy, but we believe it. You don't have to sign any statement of faith, but you do have to agree to our code of conduct. The training is about how to become a great software craftsman, but you'll hear what motivates us to do our work heartily. I'm not sure why anyone would have a problem with us striving to love our neighbor as ourselves, even if you have a different object of your faith. We believe we are created in the image of God, which is what gives us the ability to create. He gave us that ability to reflect His glory. We aren't always true to His purpose, but we strive to be, and believe this is the standard that He has set, whether or not we consciously achieve it.

By His grace, we will teach you how to eventually create great works of software that serve others well. But there is a greater work.

This is the work of God, that you believe in Him whom He has sent.
(John 6:29, New American Standard Bible)

Again, you don't have to believe that now to come to the Craftsmanship Academy. You don't have to believe that in order to graduate. There are greater consequences to what you believe than that.

Photo by Ivan Aleksic on Unsplash