Wednesday, January 16, 2013

All Software Development is Schema Management

Before you automatically disagree, stop a bit and think about it. Can you think of any code you have ever written that did not handle data of some sort? Of course not. This is not about relational data either, it is about any data. There is no software that does not process data. Even the textbook example of some function that squares a number is processing the parameter and returning a value. The first line of that function, in most languages, names the input parameter and its type. That is a schema.

This remains true as you climb out of the toy textbook examples into simple one-off programs into small packages and ultimately to apps that build to megabytes of executables running on a rack (or a floor) of servers. Just as each method call has parameters, so does each class have its attributes, every table its columns, every XML file its XSD (or so we hope) and that code works if and only if everybody on the team understood what was supposed to happen to the data.

Are We Talking UI or Platform or Middleware?

Generally today we are talking about the server side of things. This is about any project that is going to take a user request and consult a data store: the file system, a search engine, a database, a NoSQL database, or an XML database. If you go to the disk, that is what we are talking about.

New Versions Are (Almost Always) About Schema Changes

So imagine you've got some working code. Maybe a single script file, or perhaps a library or package, or maybe some huge application with hundreds of files. It is time to change it. In my experience new code means some kind of change to the schema.

I cannot prove that, nor do I intend to try. It is a mostly-true not an always-true.

Schema Here Does Not Mean Relational

This is not about relational schemas, though they are included. If you are using Mongo or some other NoSQL Database which does not manage the schema for you, it just means you are managing the schema yourself somewhere in code. But since you cannot write code that has no knowledge of the structure of the data it handles, that schema will be there somewhere, and if the code changes the schema generally changes.

Does It Need To Be Said?

Sometimes you will find yourself in a situation where people do not know this. You will notice something is wrong, they first symptom is that the conversation does not appear to be proceeding to a conclusion. Even worse, people do not seem to know what conclusion they are even seeking. They do not know that they are trying to work out the schema, so they wander about the requirements trying to make sense of them.

Order and progress can be restored when somebody ties the efforts down to the discovery and detailing of the schema. The question is usually, "What data points are we handling and what are we doing to them?"

This continues to be real as you go up out of the toy publication illustrations into simple one-off applications into small offers and eventually to applications that develop to mb of exe operating on a holder of web servers.

I think your final question in this post is a great point Ken. Not enough people ask this however!

Instead I think many focus on what the application should do, which leads to the same data items being defined in subtly different ways. Which of course causes difficulties when trying to consolidate various pieces of code behind services, as I'm doing at the moment.

thanks for help for software development and very useful for database programmer if you are beginner for any Online tutoring, programming help, assignment help, homework help, online programming, online assignment help all kind of help are provided by many site they will provide you Programming help and Assignments help is one of the famous service provided by them. Moreover they provides report writing help at cheap prices

Thanks for your ideas. You can also find the details on Affity Solutions, at the System Programming. The main object of the Affity Solutions is to provide quality web services and is among the few software development company in Nagpur.

Thanks for your ideas. You can also find the details on Affity Solutions, at the System Programming. The main object of the Affity Solutions is to provide quality web services and is among the few software development company in Nagpur.

Thanks for your ideas. You can also find the details on Affity Solutions, at the System Programming. The main object of the Affity Solutions is to provide quality web services and is among the few software development company in Nagpur.

Thanks for your ideas. You can also find the details on Affity Solutions, at the System Programming. The main object of the Affity Solutions is to provide quality web services and is among the few software development company in Nagpur.

Thanks for your ideas. You can also find the details on Affity Solutions, at the System Programming. The main object of the Affity Solutions is to provide quality web services and is among the few software development company in Nagpur.

Really something Grate in this article Thanks for sharing this. We are providing DATABASES courses training online. After reading this slightly am changed my way of introduction about my training to people. And also refer my website for DATABASES Training and solutions of DATABASES applications. Please Visit Us @ DATABASES training courses online

Thank you for making this effort and thank you for spreading this information with all of us. I was looking for a site where I can get some tips for Software Development and Programming and I found the right place. Amazing thing is your asking of question at the last. People often not ask such. However, i have got several kind of good stuff in form of your worthy blog.

Most databases are hacked almost on a daily basis .. especially banks. Develop Robots is 1 of the rare few developers who actually have such a high secure database development. Check them out if you don't believe me.www.developrobots.com

Just as each method call has parameters, so does each class have its attributes, every table its columns, every XML file its XSD (or so we hope) and that code works if and only if everybody on the team understood what was supposed to happen to the data.ccde practical

very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.Web Development Bangalore

A well-managed email database is by far the best way to boost sales without risking budget waste because it appeals to consumers who have already opted in to receive marketing information from you. Germany Mailing Lists

This is good information for Database programmer, Thanks for sharing this Blog with us. DataSunrise provide the databadse security software .It is a very important Software to secure all databases in the organization. Your comment is awaiting moderation.

Great post. I really like to read your blog in I have been following it for a while now. I can always something useful for my work here. Thank you for your dedication. I am eagerly waiting for new articles :).

This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge. Digital Marketing Company in Chennai

Thanks for this blog. provided great information. All the details are explained clearly with the great explanation. Thanks for this wonderful blog. Step by step processes execution are given clearly.Know the details about different thing.Digital Marketing Company in Chennai

Nice post. I was checking continuously this blog and I am impressed! Very helpful information specially the last part :) I care for such info a lot. I was looking for this certain info for a long time. Thank you

After reading your post every person will be agree on that so its true that all software development is schema management. If we talk about schema management, It helps to manage database objects more efficiently with new functionality and make it more simple to handle complex database management related tasks.

We are a professional SEO company in Dubai. Our aim is to help you in growing your business online. We’re expert in organic SEO Dubai, we do our best to get your website ranked on your keywords as soon as possibleSEO Dubai

Pages

In the Top 200 Tech Blogs!

In 2008 Datamation listed The Database Programmer as one of the top 200 tech blogs, on the same page with James Gosling (!), Coding Horror, Dzone, and the author's own personal hero, Dave Thomas (if you haven't bought "The Pragmatic Programmer", go online and buy it now):