Tag: software development

  • Risk and Assumptions

    Today’s editorial was originally released on Jan 22, 2009. It is being re-published as Steve is on vacation.

    I was reading Buck Woody’s blog the other day and he had a post on Risk where he quoted Warren Buffet: “Risk comes from not knowing what you’re doing.” I think that’s true and that’s part of the reason we’d had issues in our financial markets over the last couple of years. It’s also the reason that we have issues in many of the systems that we build.

    Often the people building IT systems go through an extensive evaluation to determine the needs and wants of their users. It’s an attempt to identify exactly what to build so that the user is pleased, a good estimation can be made, and everyone finishes the project happy.

    And that almost never happens.

    There are people that are better at this than others, but the overall state of the software development process is pretty poor. That means that any project you undertake, or that your customers or clients ask you to undertake is fraught with risk. I can see why there are plenty of people that don’t want to hire contractors to get software built, or that our management doesn’t want to start new projects with their IT departments.

    I don’t have a solution, and I’m not completely sure where the problems lie, but I do know that as the economy slows, people have less tolerance for risk. That means less IT projects, and potentially the need for less IT staff and contractors. Which then contributes to the slowdown of the economy as there are less people at work.

    If I were working in IT or consulting right now, I would be working to lower risk as much as possible. Adopting techniques that you are confident in, learning new skills and then applying them, even in side projects, can help grow your skills, increase the chances of projects being completed that the client is happy with, and keeping you employed. Now is the time to reassess the way you work, and find ways to show that you can work with your clients to meet their needs in an efficient manner.

    Efficient in their eyes, not yours.

    Steve Jones


    The Voice of the DBA Podcasts

    Everyday Jones

    The podcast feeds are now available atsqlservercentral.mevio.comto get better bandwidth and maybe a little more exposure :). Comments are definitely appreciated and wanted, and you can get feeds from there.

    Overall RSS Feed:  or now on iTunes! 

    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.

  • 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