Tag: software development

  • If we can do it, so can you

    We hear constantly about the benefits, and potential pitfalls of cloud based applications. There are certainly reasons to move to the cloud, or stay away, depending on your particular situation and requirements. However one thing I hadn’t thought was viable was software development in the cloud. Most of the companies I’ve seen that host applications in the cloud still do the development on desktops and laptops, with a build server somewhere on site. However Microsoft wants to show us that this isn’t necessary.

    There is a push inside Microsoft to perform more of their development in the cloud. Across the last year or two, various managers inside Microsoft have been moving development to the cloud, typically starting with testing and code analysis. Those are great fits for cloud services, since they are used at discrete periods, but may requite lots of resources. One of the interesting things in the piece was that the first objectives was to speed up the continuous integration process. At Red Gate (my employer), we’ve seen a lot of benefits from implementing continuous integration, both in our applications and databases, and we’ve done a lot of work to smooth out those processes.

    Obviously Microsoft might have an advantage over many of our other companies in terms of Azure resources and cost, but I would bet the reliability is similar for their developers. If they can make it work, on products like Windows, SQL Server, Sharepoint and more, I’d think that many of us could make use of the platform as well. I know a few people that have worked with TFS on Azure, and they’ve been pleased with the performance and reliability. There are any number of other software services, like GitHub, that make use of distributed, cloud-based services for software development.

    However even if you don’t want to use the Azure platform, the idea of using virtual systems, of spinning up and down the machines you need to perform various functions makes lots of sense. You can make better use of your hardware resources, and even schedule continuous integration services (builds, tests, analysis) for different teams (or applications) at different times, improving your efficiency and not only speeding up your development processes, but hopefully improving the quality of the final code.

    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 ( 22.0MB) feed

    MP4 iPod Video ( 26.4MB) feed

    MP3 Audio ( 5.2MB) feed

    Feeds are available at iTunes and Mevio

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

  • 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.