Sunday, May 23, 2010

An Academy for Software Development?

So I’ve been poking at this idea of an ‘academy’ for Software Development for a while now.

The rest of this blog is actually an expanded version of an email I sent Corey Haines.  While we apparently had our ideas independently he wrote up a blog on this a while back and I feel we are in strong alignment on the subject in general.

What’s an Academy?
This Academy would be created in the same style as those setup during ancient times.  It would be a center of learning and craftsmanship for the field of software development.  The goal would be to create a place where apprentices would come to learn a craft, but also a place where journeymen would stop to work with various masters along their journey as well as a place where itinerant masters could come to experiment with new ideas, meet other masters and influence journeymen and apprentices.  The Academy would also act as a hub for educating the community (the businesses that use software or software development services).

What would actually go on there?
Another key principle that I would want an Academy to incorporate is the concept of “it takes a village”, by which I mean incorporating and training the other crafts of software development besides Coding (such as Testing, Interaction Design, and product development facilitation).  I also really like Corey’s idea about teaching new comers to the field its history, important names & thinkers, and classic and modern concepts.

For apprentices and journeyman other related topics may also be needed.  While I’m still undecided on this, providing opportunities for advanced education in math and some science or engineering fields may be useful.  However, I also think exposure to seemingly unrelated fields of study such as Journalism, Anthropology, Psychology, Economics, Rhetoric and perhaps others could also be useful.  The key would be to ensure that these topics were always tied back into how they relate to software development or the environments in which software development is used.

Who would this cater to?
While I think the model will work with anyone with the talent, drive, and capacity to be a good software developer, at this time I would prefer to target high school seniors.  This is mostly because I’d like to demonstrate that we don't need an official “college degree” to be great developers, just good training and experience (provided by the field for the field?).  We’ve done a fairly good job showing that the requirement of a 4-year degree is rather silly and has been routinely proven pointless for business software development.

Another, smaller reason is because I have witnessed that a significant amount of unlearning must be done with most folks coming out of a normal Comp. Sci. or MIS program.  This is overhead that can certainly be overcome but does require additional effort.  Though any capable entrant should not be ruled out.

Where would you get money for all this?
Part of a problem of running an Academy would be how to fund it.  I like Corey’s model of structuring a school as a craft-based workshop that sells it’s services at a lower cost, but then is able to provide training through hands on, real-world projects.  I had also toyed with the idea of getting funds via normal educational routes (student aid, loans, etc...) but decided against that due to the constraints those place on the whole educational experience as well as the ability to adapt that experience.  However, it might be possible to partner with more progressive companies or traditional academic institutions that are further down the path of really groking software development.

Mind you, everything I’m outlining here is the pie-in-the-sky idealistic goal.  The entire undertaking would have to start small and iterate, adapt, and grow.

What about degrees and accreditation?
While I’m not particularly fond of degrees or accreditation, I know that businesses still look for and care about them so they probably need to be accounted for, at least to begin with.  

I’m still rather fuzzy on how either would work, but my initial idea is to replace the concept of a “degree” with a “portfolio-transcript”.  The idea is to provide something of a history or pedigree of what work was done, at what level, for whom and under what master’s supervision.  The goal is to provide a much richer contextual view of what was learned and experienced.

As for accreditation, I would prefer to scrap it all together and replace it with some kind of endorsement model, if with anything at all.  I would like to see the outcome of the Academy able to speak for itself.  In lieu of that (or to start with?), perhaps endorsement routinely given by various people or organizations for specific things would provide more transparency and information about what is actually going on and what it is worth.

Signing off...
So this whole thing is still sorta in its warm liquid goo phase in my mind.  But if anyone else out there has thoughts or ideas lets go through them!  If you are involved in getting something like this or related to this going, please let me know, I’d love to get involved :)


  1. I think a place like this would start getting recognition in the right places faster than you'd think. I think the companies that truly care about having quality software devs are going to take notice - and they won't mind that the academy doesn't award a "degree". The companies to take the longest to acknowledge the value of a place like this are probably the least sought after ones anyway. Of course, there would have to be some bootstrapping period where results start getting churned out first (need to see demonstrated value at least a few times). However, I think people coming out of a place like this are pretty likely to breeze through interviews with flying colors anyway. I guess they just need to be picked up from a resume with something like this on the front instead of B.S Computer Science. Maybe you could have the Academy count as some sort of internship at first, and then move to a full education experience?

  2. This place has so much positive energy the quality of teaching will be superb.