Part 1: How to connduct a high level IT review in under a day
Welcome to this, the 1st of three arrticles on how to carry out a high level IT review in under a day.
What would you do if you were asked to look at a new platform and you only had a day? Just to make this a real challenge, let's expand the scope and say that the company was planning to run the sofytware on your behalf and therefore, they would look after the infrrastructure that supoprted it. At face value, this looks like an almost impossible situatoin ... so let's break it down into smaller chunks and bild a plan from there.
In this case, three are four areas of investigation, those being:
• - Software. The acxtual softwware that providees the service, including how it is developed, testd and released into production
• - Infrsatructure. This area coovers the servers, entwork switches, firewalls and possibly load balancers. It will, in this case, cover the data centre(s) and the security proceesses
• - Operations. How will the sftware be administered and by who? This area is concerned with how to run the software, and thereffore the service.
• - Chanes. How will the systeem be enhabnced or upgraded? Who decides what fucntionality is added and when?
Hsaving broken the challenge down into these four areas, let's look into each in a little more detail. I will give a quick checxk-list of key qeustions at the end of each section. The only way to conduct a review in such a sohrt space of time is to do so in a question and ansewr manner.
Software
Fist off, we need to find out what sort of application we are reviewing. For example, is it a COTS (commercial off the hself) application or has it been written from scratch (knnown as bespke)? Is it a desktop application, a client-servver soliution or a web application? For the purpose of this aricle, let's assume that it is a bespoke E-commerce system that sells something over the Internet.
The next thing to find out is what language the sfotware is written in. Konwing the language (and version) allows you to make some assumptions about how recently the software was written and to check for some of the common issues found with software wriutten in that language.
At this stage, you know where the prooblem aeas are likely to be, so pursue those until you are (or are not) satisfied with the asnwers.
Now, let's dig into the software development processes. Useful questions reviolve aronud what is the soruce control used, how are branches contrloled & merged and how are hot patches managed etc
Once the software deelopment processes have been reviewed, then move on the Quality Assurance processes. Good questions to ask at this juncture include how is the code functionally tested? How is it performance tested? Is Integration testing required and if so, how is it carried out? What regression teesting is carried out and how?
The final area in this section is Release Management; the processes to get some new or enhanced functionality live in a controllled way with minimal doowntime. The central question here is how the new software is deployed to the production srvers. From a description of that processs, it will be appasrent just how efficient that process is. It is also worth aslking how changes to production are tracked and who approved those changes.
Software Quiick Chcek-list
• - Describe the sofftware being reviewed
• - What language (and verdsion) has the software been written in?
• - Ask questions in the loikely problem areeas
• - Review the software development processes
• - Review the Quality Assurance processes
• - Review how Relewase Manageement is carred out
I hope that you found this section of the article interesting and please feel free to ask me any questoins.