6 software engineering tools that have been helping me go faster…
Early in 2013 I kicked off a new pet project. The project is going full steam ahead, and,using the tools below, I am making pretty good progress:
This tool helps me go fast because its a quick & light kanban board. This is my first real go round with kanban. so far kanban is working good for me. Kanbanize, was cheap & easy to setup, someone else hosts it, members of the team don’t seem to mind it, we can all see the status of what is going on in the project. So check it out if you want to jumpstart your kanban process.
It’s not like github is new or anything, and I have been using it for quite some time. Thankfully – it is still helping me go fast. In a matter of moments, I had 3 new distributed source code repositiores setup for my project and all team members were given permissions to the repositories. Win! Thanks github!
azure web sites
Wow – so MS & Azure finally got a deployment model that doesn’t take 30 minutes. I have to admit – setting up two new azure websites for my pet project was seriously EASY! In just a few moments I was able to provision a web site for my web application and my web services application. Even cooler – in one of the more recent patches to Azure Web Sites – they enabled deployments from private github repositories This was super cool because – now I can just deploy to my azure-deploy branch of github, and BAM – the code shows up running in the cloud moments later.
mvc4, webApi, twitter bootstrap, jQuery, knockoutJs
In November 2012 I got involved into a new contracting gig that required this technology stack. MVC4 helps me build testable web apps really quickly. With webApi I can build restful services quickly as well (but I kind of miss WCF). Twitter bootstrap – the great thing about this is that my application just seems to work in the desktop on IE, FF and Chrome. It also works great on windows 8, android tablets, iPads, plus apple and android phones! So twitter bootstrap is a pretty cool UI framework to build with. KnockoutJS helps me build MVVM web apps and widgets – jQuery helps me animate & poke around in the DOM and do ajax calls.
So for now – I think this is my “new” favorite technology stack!
SQL Server Data Tools for Visual Studio 2012
I always have been a database first kind of guy. So that means that I typically have a database long before I have any code. Call me kooky, but often times, using C# to define and create a real world, production ready, scalable, database driven application – seems like a lost cause. Code first IMO is great for green field – lets get going REALLY quickly app, but I don’t like to skimp on DB design.
So this means that I need to be able to go from local databases to cloud databases quickly, efficiently, and without breaking the world. SQL Server Data Tools for Visual Studio 2012 let me work the way that I prefer. Here is what my process looks like:
- create a data project from my local DB
- create a data project from my cloud DB
- make a change to the physical local DB
- schema compare the the local db to the local project & update the local project
- schema compare the local project the cloud data project
- apply the updates to the cloud data project
- apply the updates to the physical cloud db
Yes – quite a few more steps than code first – but IMO its safer, you have more control, and it tends to work right the first time. So – since it’s less error prone, and less subject to “oops – I shouldn’t have run that code” – I have more of a safety net – and thus time is saved.
So – NCrunch is the most recent piece of software that I thought was good enough to buy personally. Yes – IMO it was that good.
NCrunch helps me go faster because it executes my tests in the background. It also compiles my code for me automatically. It shows me visually if the code I am looking at is covered by a unit test.
So what – why does that matter? To me it matters because its ALMOST like having an automated build & CI server built right into my IDE. I know when I am done with a line of code if the code compiles, if the tests are passing, and also if the code I am writing is event covered by a test.
So – this gives me the confidence to simply push code straight from my local development branch into my remote azure-deploy branch, and I feel really confident that the code will work in production.
Now – that being said – if I were in an enterprise – I would likely not advocate pushing straight into production without going through a few other checkpoints, but its fine for my own little pet project.
So – in summary those are 6 things that are helping me go faster as a professional software engineer.