0 Comments

We (teamaton) are beginning to develop a new web application, a ToDo-Management-Tool. It is our goal to be better at everything revolving around the process of developing this new application. Everyone at our company is diving into reading about and testing new tools and processes.

I took on the part of reading about different approaches to developing software, finding out about the pros and cons, figuring out which one probably suits best our needs, and gives us great power to develop the application effectively. I found the Wikipedia article on software development methodology, and went on from there to the different approaches.

Different Approaches

image (19)

One approach is the Waterfall model, which is a sequential development approach with the following stages: requirement specification, design, implementation, integration, testing and debugging, installation, maintenance. This model assumes that all requirements are specified at the beginning. This is seldom the case.

There are many approaches which try to overcome the deficiencies of the Waterfall model. Seemingly all of them fall under the category of Software prototyping. Its main features are risk reduction, ease-of-change during the process, and involvement of the user.  For large projects some companies use Spiral model. Here the system requirements are defined in as much detail as possible to identify and resolve risks in the software development process. Our project is as yet not that large. Therefore we analyze risks only rudimentarily.

Rapid application development comprises many modern software development methodologies, like Agile software development, Lean software development and Scrum. The project is broken into smaller segments to reduce risk and provide more ease-of-change. Users are being actively involved in the process, and the software is build iteratively.

Iterative and Incremental Development Methodologies

Since requirements may change or the product owner may not now all requirements at the start iterative and incremental development methodologies are being used. The basic idea is to develop a system through repeated cycles of planning, design, implementation, testing and evaluation – and develop small portions of the software at a time.

image

One example is the Unified Process framework, which is iterative and incremental, use case driven, architecture centric and risk focused. Similar frameworks are the IBM Rational Unified Process and the Agile Unified Process.

Agile Development

Essentially we will use Agile software development. It allows for changing requirements, regular adaptation of the process, delivering working software frequently, getting feedback, and higher customer satisfaction. It promotes simplicity and trusting in motivated individuals involved in the process.

image (1)

There is still much to learn about agile development. It is the superordinate concept for different software development methods like Scrum, Feature Driven Development, Extreme Programming. I will read about these in the near future. As a team we will need to adopt the mindset of agile development more thoroughly. The biggest mistake for teams using agile development seems to be to put implementation of the process over changing the way of thinking.

4699 Comments

Solid State Disks (ssd) are all the rage these days. They are fast, use up less energy, are quiter and have become quite affordable. If you don’t want to go through the hassle of reinstalling your operating system (in my case Windows 7) follow this straightforward guide to cloning your current hard drive with the OS and data on it to your new ssd.

Step 1: Buy ssd and External Case

Depending on the kind of cash you are willing to spent there are a variaty of solid state disks, offering different sizes and speeds. The best ssd for you depends on your needs. There are some with faster reading rates, some with faster writing rates and so forth. There are a lot of guides and tipps to help you make your decision.

We have decided to go with this 120GB Vertex 2E 2,5” ssd by OCZ bought for about 250$.

switching from hd to ssd: ocz vertex 2e 2,5" solid state disk

I recommend you to buy an external usb case for your current hard drive, so that you can clone the disk on the fly and later use your “old” hard drive as an external drive. For backups or other data for example. You can get an external 2,5” for about 10 bucks.

Step 2: For Safety – Make a Backup of Important data

Before proceding with anything else, you should consider backing up all your important data. If you don’t already do it anyway. We use a small Windows tool which is quite compact and easy to use: SyncToy.

clone win7 from hd to ssd: syntoy screenshot

Step 3: Shrink Current Hard Drive to Smaller Size Than New SSD

In order to be able to clone your current hard drive to your new ssd you have to make sure, that the ssd size is at least the same size as your current disc. Otherwise you won’t be able to clone it.

First make sure that you have enough free space on your partition available.

You can try to shrink your current partitions to an acceptable size. You would do this with the “disk management" console provided by windows. This however did not work for me, because my current partition with about 200GB space was too fragmented. It may however work for you.

The alternative is to use a small open source tool: gparted (gnome partition editor).

  1. After downloading burn it to cd/dvd
  2. Restart your pc and boot from the cd/dvd
  3. Run through live boot menu (nothing fancy)
  4. As soon as you are in the tool, select the partition you want to shrink
  5. Choose resize and select the size suitable for your new ssd (I recommend to have some space still available for the hidden windows partition and possibly a vendors partition which have to be cloned as well)
  6. Hit the “apply” button on top and gparted does the rest

shrinking hard drive to clone your hd to ssd: gparted screen shot

Now you should have a shrinked partition which combined with other partitions on the hard drive is smaller than the size of your ssd.

Step 4: Format the New SSD

I am not sure, whether it is necessary: Format your new ssd. It might be, that clonezilla has trouble recognizing it if it is not formated.

Step 5: Download and Burn Clonezilla

Now we come to the cerntral part of cloning your current os to be used on your new ssd without reinstalling the operating system.

Our tool of choice is an open source cloning tool: Clonezilla.

Download clonezilla and burn it to cd/dvd.

Step 6 (Optional): Make a Performance Test

Just so that you can have a precise measurement of what your performance gain is with your new ssd, run a test on your old hard drive. You can use the free tool HDTune which gives you solid results.

switch hard drive - clone hd to ssd: screenshot hdtune performance test 

Step 7: Mount your SSD and HDD to External Case

(Don’t forget to turn off your pc while removing hardware.)

In order for your to directly clone from your old hdd drive to your new ssd drive I recommend you to remove your hdd and install the ssd. This makes the whole cloning process faster due to the better writing speeds of your ssd when installed in your pc/notebook.

Also mount your hdd into the external case and connect it via usb.

Step 8: Cloning Your HDD to Your SSD

clonezilla screenshot: cloning your hdd to a fast ssd

  1. Start your pc and boot clonezilla from the cd/dvd you burned in step 5
  2. Choose the first option “clonezilla live” in the startup screen
  3. Choose “English”
  4. Choose “Don’t touch keymap”
  5. Choose “Start_Clonezilla”
  6. Now choose the second option: “device-to-device
  7. Choose “Beginner Mode”
  8. Now choose “Disk to local disk” (this makes sure to clone your complete disk)
  9. Set your source drive: Your old hdd
  10. Set your target drive: Your new ssd
  11. Hit “y” (yes) when asked by clonezilla
  12. Watch your drive being cloned. This can take some time – depending on the size and speed of your hard drives. In my set up with about 100GB it took 45 minutes.

Notice: It is important to choose “disk-to-disk” clone and not partition-to-partition due to some specifics with Windows 7. There is a “hidden” partition that even when you seperately clone is not being recognized by Windows which brakes the OS.

Step 9: Restart and Be Happy with Blazing Speed :)

This is it. If everything went smoothely your Win7 should be up and running without any problems. A restart after the first start might be necessary.

After rechecking my performance with HDTune this was the result:

hdtune benchmark with new ssd after cloning win7 from hdd to ssd

Average speed went up 4 times: from 35 to 146Mb/sec

Access time went down from 15ms to 0.3ms.

Looking forward to my first build in visual studio and working with 1GB files in photoshop :)

Bottom Line: Little Effort – Lot of Time Saved

If everything went according to plan you should be done with switching from your old and slow hdd to your new and fast ssd within 2 to 3 hours for the whole process. Which is definitely a lot shorter than installing your operating system and programms from scratch. Not to mention setting up your work environment.

All tools we used were free and easy to use.

If you have any questions or suggestion feel free to post in the comments.

And enjoy your new ssd :)