CODE OF CONDUCT FOR PROGRAMMING STANDARD
It's time for a change Or two. Or six.
Fundamental problems with the way organizations develop software go,
if not ignored, largely unaddressed for far too long. Weak programming
practices mean not just infections of code, but in the worst cases,
revenue- and profit-sapping downtime for corporations, and injuries
or even fatalities for humans.
As a Safety- minded, serious development company we have built systems
that ensure that we build only rock-solid software that users can
operate without fail and that machines can follow predictably.
Following is the netlink “Code of Conduct” for world class
software development and to ensure flawless software development.
Certify Programmers
There are companies which employ people building programs who lack
skills, with lots of people who call themselves software engineers
but are not, which often means the original design specifications
for a software product is inadequate. In the end, these "engineers"
can't assess the risk that the software may not work as intended.
To be a doctor, one must get a college degree, pass medical exams,
complete an internships and than take a series of tests to practice
in a particular specialty. Accountants, engineers and lawyers also
must go through rigorous testing and certification processes.
But more too often that doesn't happen in software. You can just declare
yourself a “software architect” and off you go.
At netlink we focus on organizations such as the Institute for Certification
of Computing Professionals (ICCP), the Institute of Electrical and
Electronics Engineers (IEEE) and the SEI which give exams that cover
everything from systems development to data management to the various
tools and techniques being used by developers. We have MCSE, MCP,
Brainbench and Macromedia certified professionals.
We demand certification and ensure we help certify our programmers
and give them adequate exposure on task, time and project management
before handing over a live- project, so that our clients can be rest
assured that only the most qualified and capable individuals will
handle the project.
Certify Teams
Software creation is increasingly a collaborative process,
which leads to systematic approaches of reviewing the quality of
team-created applications.
We focus on the Capability Maturity Model, developed by the Software
Engineering Institute, which establishes our capability as an organization
which has mastered good software development practices.
These include the reliable setting of specifications; proper means
of evaluating code that has been created; the ability to set and
track internal performance metrics; and consistently finding better
ways to develop software. Organizations work their way up five levels
of maturity model team certification. – Raises a question
of which level we are at? So we either mention that – or put
is as a line above where the capability maturity model has been
introduced.
We also have software professionals certified, with rich experience
in particular industry sectors, finance, travel & transportation
and aerospace being a few of them.
Check, Recheck and Check Again
Too often developers don't spend the time and energy needed
to find out what users really want and need.
Our development philosophy is: "Ensure we understand client
requirements and needs, and then deliver the best possible software
solution.”
We focus on ensuring we work with a simple software-development
process which starts with: a precise list of what a new program
is supposed to do, that can be agreed upon by the people developing
the software and the people who will use it.
Separate specialized quality teams then double- and triple-check
the code created to ensure users can't ask it to do tasks that aren't
anticipated or cause unexpected conflicts in calculations.
Raise the Bar
Building software requires engineering as serious as the kind required
for high-rise offices. Just as there are building codes for skyscrapers,
as serious developers we follow a lot of self-appointed coding ethics
and practices.
We understand and ensure we use Code Conventions, which are important
because they make the code easier to read-and maintain, by people
who haven't worked on it.
We understand and ensure that source code is readable. As, if the
source code is not readable, or not absolutely clear, how would
we possibly audit it, understand what it's doing and look for errors?
Test, Retest and Establish a Seal of Safety
Sure, a team can test its code and still not find all the
problems. But too often, that observation is used as a reason to
avoid further testing, not just in development but after the code
has been put into use as well.
Any given program can be tested for reliability, security and performance
when it's completed. But we test software when it is just a "component"
of a system as well as the integrated deliverable program.
We extensively use testing tools like Empirix, Mercury Interactive,
Parasoft and Software Development Technologies (SOT), along with
extensive manuals Black Box, White Box, UTP and well-construed test
case scenarios.
Testing is important to us and in some cases, adds to a project's
overall cost. But it is the essential step towards successful software
development.
Don’t Sell Problems
Perhaps the biggest reason mediocre software persists-and
threatens lives-is that individuals and corporations keep buying
it and People put up with it.
Software might be the only product designed by a group of people
called engineers that's released and known to be imperfect. No one
expects a building to fall, a bridge to collapse, a train to derail
or a plane to crash. When any of those fail, shock is followed by
accusations, inquiries, penalties, and, sometimes, legislative efforts
to make sure the problems don’t recur.
According to an information technology consultancy, almost 40%
of 150 software-development organizations it polled last year said
they didn't believe their organizations had an adequate program
in place to ensure that their software was high quality.
Further 29% said their companies didn't have a quality-assurance
professional on staff with any real authority, 27% said their companies
didn't conduct formal quality reviews, and 24% didn't bother to
collect software-quality metrics.
And 32% said their companies released software with too many defects.
We demand quality, and ensure our clients demand it too and deliver
it to them.
In effect, we ensure our developers deliver quality and to back
that we ensure we only use certified developers who are certified
through world class certifications, a method that ensures development
of reliable code only.
|