Development Principles for this Blog

Why do I want to work on this blog? There are multiple reasons:

  • I want to experiment with new technologies and innovative applications.
  • For new developers, I want to be able to offer a glimpse on what is the reality of developing professional software.
  • I want to test out my assumptions on software development processes.
  • I want to assemble a collection of "core tools" useful to develop new projects.

With this in mind, the projects that I'll be working on won't be "normal" projects and will need to follow a set of rules to be able to properly accomplish these objectives:

  • I'll be using new technologies when possible to experiment with. Using cutting-edge technology is not always the best option in the real world, but "safe" projects are not going to work here.
  • The projects will be done in a "team environment", even when there is no team. Why is that? Real-life professional software is almost always done with a team, and learning to work with a team is as important as knowing how to code.
  • Projects should be agile and have a working version as soon as possible, there is no use to code that can't be executed. However,
  • No quick and dirty prototypes. This is going to be hard to accomplish, but my assumption here is that properly engineered software is going to be faster to deploy and develop in the future than debt-ridden prototypes.
  • And finally, this leads us to have a proper analysis process and architecture design for the projects that we will be working on.

These are going to be our Development Principles from now on. In the future, I should and will update these principles, based on the results of our experiments, but these are going to be our baseline.

I'm eager to see how projects will turn out.

Subscribe to Developer Notes

Sign up now to get access to the library of members-only issues.
Jamie Larson