Today’s Read: Why The Technology Matters

July 15th, 2010 by Kevin | No Comments | Filed in today's read

ERP Software Advice recently put together an analysis on Consona’s recent aqcuisition of Compiere. In their report, Why the Technology Matters – An Analysis of Consona’s Acquisition of Compiere, they suggest that while most software buyers don’t care about underlying technology, they still want software companies to:

  • continue to add new features and fix bugs quickly;
  • evolve to the next generation of technology; and,
  • remain “strategically viable,” not just financially viable.

Ironically, underlying software technology is a huge determinant of an vendor’s ability to deliver on these three requirements. This is the very reason Consona bought Compiere.

“It’s not about the open-source business model or Compiere’s customer base. Instead, it’s all about the technology,” says author Don Fornes.

This statement is further supported by a quote from Consona CTO Steve Bailey:

“Compiere is the world’s leading open-source ERP solution and the products are brilliantly architected. They run on a fully open-source stack (e.g., Java, Linux, JBOSS, Postgres), utilize a browser-based AJAX UI based on the Google Web Toolkit, and are fully operational either on premise or on a utility cloud platform like Amazon…”

So why is this relevant for software vendors and buyers? Because there is a big shift underway from client/server systems installed “on premise” to cloud-based or software-as-a-service systems that are hosted in a secure data center and accessed through a web browser. Moreover, the open source movement is producing underlying technology that is not only free, but increasingly really good stuff. Software vendors that don’t make the transition will wither on the vine.

 

Related Posts:

Tags:

Today’s Read: The Virtual Table in C++

July 14th, 2010 by Kevin | No Comments | Filed in today's read

The Virtual Table in C++ by Alex

To implement virtual functions, C++ uses a special form of late binding known as the virtual table. The virtual table is a lookup table of functions used to resolve function calls in a dynamic/late binding manner. The virtual table sometimes goes by other names, such as “vtable”, “virtual function table”, “virtual method table”, or “dispatch table”.

Because knowing how the virtual table works is not necessary to use virtual functions, this section can be considered optional reading.

While learning C++ programming, most of the books emphasize on the virtual functions and how to be able to use them. However, it is quite rate that such programming books mention how the concept of virtual functions works underneath with the use of vtable and vptr. While such information is not needed to use virtual functions, it is good to know about this especially when appearing for interviews based on C++ programming as a requirement. This article does a good job of explaining quite clearly how virtual functions work under the hood by using virtual tables and vptr.

 

Related Posts:

Tags:

Today’s read: Bringing User Centered Design to the Agile Environment

February 3rd, 2010 by Kevin | No Comments | Filed in today's read

Bringing User Centered Design to the Agile Environment by Anthony Colfelt.

Agile is an iterative development approach that takes small steps toward defining a product or service. At the end of each step, we have something built that we could release to the market if we choose to and therefore it can assure some speed to market where waterfall methods usually fail.

The author begins by a good thought provoking point about having a separate sprint for the design in an Agile based development. Having worked with a project which followed SCRUM, the method used was having everything i.e design, implementation, testing in a single sprint. Considering that in this project the design is heavily linked with the implementation, I suppose the tracer bullet method is a much better way of going about it in a sprint. I say the design is heavily linked with the implementation because it’s design of new features in an existing system using the existing components available.

Good things about Agile

  • Since Agile is an incremental development effort, every iteration (a sprint) produces some result from the development effort which is ready to market in terms of the requirements for that iteration. So it helps in dividing the effort for the project using manageable deadlines.
  • Agile also encourages all members of the team from development, testing, business, customers, to interact with each other and make adjustments as needed. This method is excellent in understanding the current position of a project and adapting early to any changes in the user requirements or sorting out any issues that have risen.

Bad things about Agile

  • Since Agile combines everything into a sprint i.e design, development, testing, there is a pressure to deliver within a specific short time. This can cause some sub optimal decisions which may seem good at the time. Especially in terms of design.
  • At the end of a sprint, we have something useful but is it complete enough to deploy into the market?
  • Since the focus is on a faster time to release, documentation often gets a poor treatment in a sprint.

What this means in effect is that during the initial phase, when we are defining a project or product, it is appropriate to spend considerable time gathering requirements, analysis and design i.e the waterfall model. This will lead to the construction of an initial well designed system. Once this is ready, further enhancements to the product can be done by using the Agile development methodology to get quicker releases fulfilling customer requirements and changes to the product.

User Centered Design

User centered design works on the process of iteration. Create design, implement and allow user to test, refine design for changes, implement, allow user to test. This is continued till the software system achieves a level of stability. So UCD and Agile fit well together to create a software system which will meet it’s user requirements quite well.

 

Related Posts:

Tags: