Evaluating a Business Platform. A business platform, as far as I care, is an application that I develop on top of. SAP, Oracle Applications, CRM, ERP, etc. Those big applications are usually sold with a hefty price tag, and a promise that if can be modified to the specific organization needs as required. That is often true, actually, but the question is how. This often requires development, and that is where this post comes in. I am a developer, and I evaluate such things with an eye to best practices I use for "normal" development. In a word, I care for Maintainability. Breaking it down, I care for (no particular order): Source Control - should be easy, simple and painless.
A certain ERP system is extended by writing SQL code that concat strings in order to produce HTML. The Poka-Yoke principle and how to write better software. A lot of ideas in modern software development come from Zero Quality Control, Toyota’s approach to achieving product quality. Some things, it seems, have been a bit lost in translation. Here’s what ZQC can teach us about how to write better software. Zero Quality Control takes it’s name from the idea that quality does not come from controlling and sorting out defects on the end, but from building it up front. In the words of Philip Crosby, ‘Quality has to be caused, not controlled’. Toyota’s solution consists of a design approach that aims to create mistake-proof products, early warnings and inexpensive successive tests at the source.
Poka-Yoke design Poka-Yoke (mistake-proofing) is a design approach which seeks to prevent problems by making products less prone to misuse. Assembling components must be fairly straight-forward Computer cables are often offered as a common example of Poka-Yoke design. Software should not blow up Poka-Yoke testing . Unit Tests have to be as fast as lightning. 4 Corollaries for Highly Effective Developers. I recently came across an excellent blog post via Dzone from Ben Watson called 5 Attributes of Highly Effective Developers. He lists humility, love of learning, detail-orientedness, adaptability, and passion as the most important traits that a developer can have in order to be effective at their job and provides some well written insight into what he believes each of the different traits really means.
For example, he has this to say about humility: …humility isn’t pretending to be worse than you are and it’s not timidity. So what is it? His thoughts inspired me to come up with a few corollaries of my own. Ensure the Right Problems are being Solved One of the fastest and most talented developers I’ve ever worked with also turned out to be the least productive member of the team because he continually had to rewrite his code since it never matched what the stakeholders envisioned. Creatively Reformulate Problems Use Questioning As a Learning Tool Temper Passion with Pragmatism. Tick-the-Code. Does TDD Really Ensure Quality? There's been some interesting commentary on the National Research Council of Canada's paper titled "The Effectiveness of Test-first Approach to Programming" . The study, carried out on a sample size of 24 IT graduates, adds to the growing body of research on the topic.
Though TDD is accepted as an excellent learning tool for quickly understanding the domain in which developers work, the question of whether TDD directly correlates quality in software is still considered unproven by some. This study, while still not conclusive, does show some interesting results - though different results, depending on who's analysing them. The study's abstract reads, in part: Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process.
Our main result is that Test-First programmers write more tests per unit of programming effort. The test-first students on average wrote more tests. Quality Management for Information Systems. Improving Software Quality. By Robert Green Robelle Solutions Technology Inc. I am founder of a small software company that makes tools for the Hewlett-Packard 3000 computers.
I also spent seven years working in the HP factory and three years in an end-user MIS department. I have been involved in the development of applications, operating systems, and tools, some of high quality and some of low. Our software products Qedit and Suprtool have high reputations for quality in the HP 3000 marketplace, but I suspect that our initial design and code are not much better than other people's. What may be different is the way we evaluate and revise our efforts before official release, and the way we react to error reports after the release. I have good news and bad news regarding software quality. Outline Quality Equals Superior Value to the Client The market value of a product is not an intrinsic value, not a "value in itself", hanging in a vacuum. Defining Quality A good way to start any inquiry is to define your terms.