Thinking about Framework Development

I came across some content on the internet and it was about framework development. So I have decided to think about this topic as I have tried to construct a few frameworks for my own use.

 

Requirement

Like most software development projects, a framework project requires a clear set of requirement. For me, it is one of the most challenging part of development life cycle. The reason is that without trying to develop one kind of software for a few times, it is very difficult to tell which part of the development can be automated. Further thinking is required on the topic of how to get good and true requirement on software development framework.

 

Design

Once we have clear requirement, the next step is to design a program to automate the development itself. There are a few things we need to plan for in the design stage:

  1. Feasibility of automation in the chosen technology
  2. Methods to automate
  3. Efficiency of the solution
  4. Can the automation be easily maintained?
  5. Is the automation extensible to become a standalone tool?

 

Development

When we are trying to develop a framework, most likely we will encounter the infinite abstraction problem. If we try to make a framework to make framework, we will become quite ineffective. My personal experience is that we can make a framework on something we have built 3-4 times. That is when we have a hang of what is needed and we realize what can be optimized and automated.

There are many different styles of development such as agile, waterfall or prototyping. It really depends on the team’s preference and the kind of the framework they are trying to build. Personally, I love using agile and scrum. It is up to you to choose which style to execute the project plan.

 

Testing

The topic on testing is very vast and deep. My sharing is that we need to try to automate necessary parts of the development of the framework. For long term and ongoing support, one should consider using an automated testing framework.

One of the key things I have learnt in my journey is that we need to be careful with what kind measurements we are trying to analyze on the framework we are trying to make. The measurements will have a strong impact on what the final product will be like.

 

It’s Your Turn

As I have shared some of the things I have learnt in my own experience, my humble opinion is that there is no better way to learn programming other than actually doing it. Keep practicing and learning. May God bless you in all the work that you do.

Leave a Reply

Your email address will not be published. Required fields are marked *