Tag: software development

  • Developer Pressure

    I’ve been learning about continuous integration (CI) and continuous deployment (CD) from a number of people at Red Gate Software. As a company, we’ve embraced the concepts, pushing most, if not all, of our software through this process. We are using our Development Manager software internally for more and more of our web projects. Some of our tools, SQL Prompt, include “experimental features” pushed out rapidly to users, with the options for them to turn these features on or off as users desire. We update these tools often, releasing dozens of times a year. There are no shortage of challenges in working at this pace, but we are addressing the issues as best we can.

    One of the big issues that I see in a CD environment is there is a bigger burden placed on developers to ensure the code is of very high quality. In this type of environment, there may be less QA work being done manually, and more automated testing. There is a quicker turnaround when you find issues that developers need to correct. Customers see changes sooner, and more often, and will expect corrections or new features to appear just as quickly. All of this adds up to more pressure on individual developers.

    The question I wanted to ask this week is about how developers feel about this? You could take this question a number of ways, but let us know what you think.

    Is Continuous Deployment good for developers?

    Does this result in higher quality work from developers? Is it more stressful? Does it mean that developers get into a rut and not learn new techniques because they are working faster? Does a developer have less responsibility because automated test and customer feedback will allow them to quickly address issues?

    I think this is a multi-edged sword for developers. It can be a burden or a blessing, but a lot of the way you view it probably depends the individual developer. No matter what the issues, if you use it to improve your skills, as well as your software, I think it’s the best way to build software.

    Steve Jones

    Video and Audio versions

    Today’s podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.

    Follow Steve Jones on Twitter to find links and database related items and announcements.
    Steve Jones Windows Media Video ( 17.5MB) feed

    MP4 iPod Video ( 21.0MB) feed

    MP3 Audio ( 4.2MB) feed

    Feeds are available at iTunes and Mevio

    To submit an article, rant or editorial,
    log in to the Contribution Center

  • Fix Your Code

    If you have an ASP.NET site, you might want to double check how the data access is coded. No matter whether you’ve enabled TDE, column level encryption, have strong firewalls or anything else, if you are vulnerable to SQL Injection, someone will get through.

    Perhaps just for fun. Another massive attack took place recently. These attacks will get more automated, and if you are on a well known platform, then you might be vulnerable. Even if you are on custom software, it’s entirely possible a disgruntled employee or a kid engaging in vandalism might attack your site.

    It’s not hard to stop SQL Injection. You just need to learn how and code securely.

  • The Human Touch

    How often does human error cause issues? Recently we had a rocket crash in Russia,there have been numerous incidents of drone crashes as more and more unmanned aircraft take to the skies, and a few years ago we had an Air France disaster that might have been cause by humans making poor decisions or engaging the wrong controls. Those are incidents where the wrong button press has large consequences, either in physical damage or the loss of life.

    Many of us make mistakes constantly as we work in the various tools and environments we need throughout our day. We click the wrong button in SSMS, we connect to the wrong server and run a script, or we fail to test a change. All of these are mistakes made by humans, and often are mistakes that can be prevented if we did a better job or sticking to routines and processes. That can be hard, but perhaps checklists can help here, along with some double checks by coworkers.

    That’s why I think using scripts in T-SQL, and using the Script button in SSMS to generate the code that you can run (and save) is the best way to work with your servers. As much as I think Powershell (PoSh) can be a pain to write and debug, there’s a good argument to be made for using it when performing complex administrative tasks, especially across servers. Using code rather than forms and buttons is just a better way to accurately and consistently make changes in a controller manner.

    This is an area where everyone could work more efficiently. Developers are usually used to working with version control systems and tracking all their changes. However they often will make configuration changes to their machines, SQL Server, IIS, or some other software, and forget to track the changes. Making these changes in code, through T-SQL or PoSh, and tracking these items in VCS, would help with smoothing software deployments. DBAs and other operations staff should learn to use version control systems  as well, helping to track down root causes to issues.

    Ultimately humans are often the weaknesses in most systems. We should understand that, accept it, and compensate as best we can.

    Steve Jones

    Video and Audio versions

    Today’s podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.

    Follow Steve Jones on Twitter to find links and database related items and announcements.
    Steve Jones Windows Media Video ( 15.5MB) feed

    MP4 iPod Video ( 19.7MB) feed

    MP3 Audio ( 3.9MB) feed

    Feeds are available at iTunes and Mevio

    To submit an article, rant or editorial,
    log in to the Contribution Center

  • Less QA?

    Throughout most of my career, people have complained that software is never tested enough, not tested well, and certainly not enough time is allocated in project plans. I’d also argue that all too often we don’t have people building software with experience in how to perform extensive testing. Most developers only have a rudimentary knowledge of software testing and that part of their skill set doesn’t receive constant training. However I’ve found plenty of QA people that were in the same situation. Some educate themselves and learn how to test better, but many go through the motions. They don’t take pride in their role as a software tester.

    There have been lots of advances in automated testing and TDD methodologies over the years, which means that developers have been taking more of the responsibility, and effort, for testing code. It’s hard to know if this has resulted in higher quality code, lower quality, or a mix. Overall I think that the latter is likely. Code quality is all over the board, probably based more on the skill and talent of the individual developer than on any process.

    That’s good for the companies that have hired strong developers, but not so great for our industry as a whole. We still produce lots of software that takes too long to develope, costs too much, and often has too many bugs. Overall we are sloppy and inconsistent in how we build software. Some of that is the nature of our business, one with such a low bar of entry that anyone can give software development a try.

    I don’t know how we improve the quality of software, though I do think continuing to educate and train people on what works well is a good start. However I also think that we still need QA groups. We need people that will use software in ways that automated tests won’t. People that will press buttons, enter values, and push software in ways that developers would never consider using it. Most of all, we need QA and testing to be treated as a valuable part of our industry. We need QA people that view testing as a valid career path, not a stepping stone for junior developers that look to move on as soon as possible.

    Steve Jones

    Video and Audio versions

    Today’s podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.

    Follow Steve Jones on Twitter to find links and database related items and announcements.
    Steve Jones Windows Media Video ( 15.7MB) feed

    MP4 iPod Video ( 20.2MB) feed

    MP3 Audio ( 3.9MB) feed

    Feeds are available at iTunes and Mevio

    To submit an article, rant or editorial,
    log in to the Contribution Center