Krishna Kumar is a software development manager from New Hampshire. He writes on topics related to software development, programming, project management, and business management. Krishna is a DZone MVB and is not an employee of DZone and has posted 41 posts at DZone. You can read more from them at their website. View Full User Profile

Programmers Putting Other Software Personnel Out of Work

  • submit to reddit

One software development trend that seems to picking up more steam year after year is the mainstreaming of technologies that aid the software programmer, but also encroaches on the territory of other software personnel. I view this as a good trend because it allows programmers to be more productive and deliver more quality out of the box instead of waiting for other people to complete their work and then having to integrate them.

Some examples:

  • Database developer/administrator: No more waiting for the DBA to write stored procedures. You can use your favorite ORM and access your data without knowing much SQL. With NoSQL, you don’t even need to worry (much) about table schema. Of course, if you have an established DBA in your company, this is an uphill climb. DBA want to write stored procedures because it provides “a layer of abstraction and more control over performance and security” (valid, but not insurmountable concerns). If you are starting a product / company from scratch, the need for a database developer is very low. And now, there are tools that reduce the need for many admins.
  • Graphics designers: With increasing functionality in CSS, powerful JavaScript frameworks and improved browsers, you can get a lot more done in code. For example, sometime back, you couldn’t get rounded corners without messing around with image editors. Now you apply a CSS property. Packages such as JQuery UI Themes, Yahoo! UI Library, etc. reduce need for designer time. A quality graphic designer can help you at the high-level, but you don’t need to go back repeatedly for simple stuff. Take a look at all the goodies here you can use to spice up your application with JavaScript.
  • Testers: Unit testing, which has probably displayed a few testers, has been around for sometime. But testing web UIs has traditionally been the domain of manual testers or automated testing tools. But now with programmer-friendly tools such as Selenium RC, within a few minutes, you can create an application in Java, Ruby, Python, Perl or C# to automate a web application and test its functionality on different browsers (IE, Chrome, FF, Safari, etc).

Most of the tasks shifting to developers are the low-hanging fruit that was labor-intensive rather than mind-intensive. By removing the easy stuff, the other software people are forced to improve their skills at the higher end.

For example, instead of wasting a DBA’s time programming stored procedures, the DBA could be more specialized in the specific database server technology and looking at ways of improving performance and security. We have heard nightmare stories of missing or corrupted backups even at large companies who can afford more and expensive admins. I suppose part of the problem is that the admins are pulled in directions that they don’t need to be. They should be left alone to be more involved in the critical tasks of server management, not distracted by the needs of some programmers.

Similarly, testers can spend time trying to devise ways of bringing down the system, instead of wasting time testing the regular flow of the application. Coming up with good test cases that can uncover bugs is an art. Also, testers can spend more time on tasks that really need manual effort, such as user interface testing. For example, are elements laid out in an aesthetic manner? Are they intuitive? There is a whole area of research in good user interfaces and reports that is only being exploited by highly paid consultants such as Jakob Nielsen and Edward Tufte. We need to bring some of that expertise to the average tester so that common issues can be captured.

All this is simply to say that like programmers, other people working in the production and maintenance of software applications also need to improve their technical skills so that they are not caught blind-sided by technological improvements that make them obsolete.



Published at DZone with permission of Krishna Kumar, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Walter Bogaardt replied on Wed, 2011/05/18 - 4:40pm

I kind of look at this as more a sharpening the tools that were dull in the tool box to begin with, and none of the other software personal need to feel "out of work". The problem space is always getting bigger in the web applicaiton realm. We all are having to reduce time to market and scale up very fast. Still there is huge demand on the DBA's to create datawarehouse solutions for reporting. Web page developers need to prototype mocks to the business and sales side for usability, before it's given to the developer. Some of those mocks never make it to the developers because they are vetted out. There still is demand to work with both ends of the spectrum too. A good DBA can help in designing discussions of schemas that support the application needs and the datawarehouse. A good CSS designer can help clean up the CSS mess to improve themes and establish better standards. All in all there is way too much work, and if some frameworks help make it easier and not reinvent the wheel to go on to bigger and better things I'm for it!

Emma Watson replied on Fri, 2012/03/30 - 12:26pm

It’s true that a programmer, like a dba, must always improve his skills.
I don’t think it’s always true that a stored procedure, to use your example, can be replaced by a piece of software. The software is on a higher level respect to the database, and if you need to have extreme performances or have a complex logic the best place to put things is in the database.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.