Tag: software development

  • Scripting

    One of the directions in which Red Gate Software is to build more tools and utilities that all of you can use for working in cloud environments. We aren’t ignoring the desktop tools like SQL Compare and Prompt (v6, yeah!) that you’ve come to appreciate and depend on, but we are investing in expanding these tools to work with a remote, services style architecture since there are plenty of companies looking at AWSAzure, or other providers for a portion of their applications.

    I’ve been learning a bit more about the way cloud services work and one of the things that becomes important in an IaaS environment is scripting. The environment you get is a base install and if you need more software or processes to run when a new VM starts up, you need to script the various installations or configurations.

    There are some great scripting features for SQL Server, like Finebuild for installs and Powershell for most everything else. Scripting is a great way to accomplish tasks, but like most skills, it needs to be used in order to be efficient and practical for most tasks. I’ve struggled with this, and I’m sure many others feel the same way.

    However I am starting to think that Powershell might be the best investment in my future skills. The quicker I can write it and build scripts to accomplish tasks, the more I’ll be able to do over time as I build a library of commandlets and scripts. That’s if I remember to document them well so I can easily search for what I need.

  • It Happens

    Your code is wrong.

    Or it’s bad, or it won’t work as intended. I’m not sure that’s the viewpoint I’d like to take when I first start working on a project, but that’s what Nathan Marz told the attendees at the NoSQL2013 conference recently. He says that our code should be treated as something that might or might not work, and we should embrace the idea that the code can be wrong. It’s not intended to disparage developers or paint too bleak a picture of our skills, but to just be realistic in the sense that all projects have problems and software isn’t perfectly built at the first compile.

    I think most of us do realize that our software also might not work as intended. Even simple projects can have bugs and holes that we’ll find when edge cases are introduced or the software is used in a way we didn’t expect. At least I hope it’s just unanticipated, edge cases and not general cases for most of us. If an application doesn’t work for the cases we’ve designed it for, then we need to work on our coding skills.

    We know that building software is hard. We know that outside of a narrow domain for which we’ve often designed our software, it might not work as intended. Most of us expect to find bugs or problems in our software, and are mentally prepare to patch and enhance our work as needed. It’s almost inevitable, and even occurs when you design your own software, to do that one thing you need done. You’ll still maintain (meaning patch or enhance) the software over time.

    I hope that’s not too gloomy a view of 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 ( 12.6MB) feedMP4 iPod Video ( 15.0MB) feed

    MP3 Audio ( 3.1MB) feed

    Feeds are available at iTunes and Mevio

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

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