Why Establishing Proper IT Development is Important for the End User

When a project is at its initial planning stages, it is important that the communication between the customer and the IT system’s creator is maintained to ensure that the project is what the customer wants and needs, that the project meets the customer’s requirements and at the same time a list of requirements is drawn up for the customer to confirm, In doing so it ensures that the customer and client have a consistent idea of what the project will do/how it will function. In doing so, errors are less likely to snowball and problems are identified before they are greater than an idea.

Having an open dialogue during development also allows the customer and IT member to have a good understanding of the requirements of the user and what the user is not interested in, this is especially important for systems where the customer will not be the main user for the system, otherwise problems that the customer did not identify may crop up at later stages, which could be costly and time consuming to rectify in non-common IT systems (unlike common IT systems, where a fix may be easier).

Some projects are started and never completed because many projects do not have realistic deadlines, fail to identify the needs of both the customer and the user. fail to identify the needs of the client, are too expensive or are beyond the ability of the person or team making the project happen.

Why effective ICT teamwork is essential to the development of a successful project.

Effective teamwork ensures that every IT member works to their strengths and that they all have a clear idea of what is expected of them and what they need to do next, what others are doing and what is the end result, this ensures that the project is consistent for the end user and customer and works effectively. Failing these crucial steps may mean that some aspects may need to be repeated, the project may not be completed on time or the overall effectiveness of the project is not as good as it could have been. Developing a project also requires following and leaving rigorous documentation for future development of a solution.

Proper IT Development Methodology

Factors that influence the success of an IT development go beyond catering for the end user.

Two factors that are relatively important when developing a project are ‘effective focus of individuals resources and skills’ and ‘effective time scaling and delegation of tasks’.

Effective Focus of Individuals resources and skills ensures that a network manager is not programming the frontend of an application, although he may be able to ‘give a good go of it’ he or she will not be as good as the front-end developer, especially so if the developer has had consistent immersion with the topic.

Effective time scaling and Delegation of tasks ensures that complex problems are not given too little time to work them out, some problems may also require a long time to work out, so need ample time, additionally if a project, like designing a website takes too long. Then other tasks toward the end of a development may not be completed.

Failing to identify the needs of a client may mean that a project is incorrectly understood and could features are mis-implemented or do need meet one of the clients requirements. This could result in numerous users having to resort to time-intensive ways of working around this task or not using the solution. Additionally systems that are not implemented without proper documentation can delay fixing problems.Some problems may also be that developers did not account for backing up the system, so when a project has a failed implementation or data is not backed up when upgrading a system, the data could be deleted due to poor redundancy steps.

Management in the Scale of Organisations

The IT of an organisation can also depend on the scale of its operations. Traditionally licences for software are based on the number of staff using the systems, even small organisations can have 50 (or more) staff members and still be classed as a small organisation. Generally, smaller organisations will have an informal structure and confined to a single site. Whereas Medium organisations may have a more formal procedure which adopts policies and organisational structure to ensure that systems are maintained and compliance is met where necessary. A large scale organisation may have IT as one of the core responsibilities of the organisation as it is likely that some locations may be off site or long distance where remote access is vital. They may also rely heavily on WANs and expanded LANs to ensure that their systems are accessible across the sites available.

Management Styles

Because large and medium size organisations need a leader or manager, they may adopt one of four management styles, the use of these management styles allows the business to maintain contact with its employees.

  • Autocratic, where a clear authority is established and decisions are only to be made by strategic or tactical individuals, operational staff may have relatively little power compared to the other management styles however, it may mean that staff may not feel demotivated if something goes wrong because they are not as involved in the organisation compared to the other leadership styles.
  • Democratic, is where management is taken by ‘vote’ of opinion and is useful when undertaking projects and allows people with specialisms such as networking and database design to cast their opinions and thoughts on a project.
  • Laissez-faire, is where management takes a smaller role and workers are expected to perform as they are needed and let their own ideas and creativity work to the task they are needed for, this should produce more individual work and is not always ideal for companies that do not require more than simple repetitive tasks.
  • Paternalistic, is where management will use a paternal view of management and only get involved when needed or when feedback is requested, this has the added advantage of giving the workers both freedom and encouragement, but when help is needed they aren’t far away. Additionally, this gives management the ability to delegate tasks and establish authority without appearing autocratic.

 

The management of an organisation can greatly depend on the scale and urgency of the work involved in managing IT. Organisations that also have to follow a lot of compliance, such as government offices must also maintain those constraints effectively.

Information Needs in Organisations

The Needs of An Organisation

Most organisations have similar information needs, such as retaining a stock quantity, a short description of the product etc. Therefore many organisations can utilise off the shelf systems, examples of these systems could include;

  • Supermarket Checkout Software,
  • Timekeeping and check in software for managing staff hours,
  • Task Management.
  • Communication Software.
A lot of businesses; for example in the telecommunications industry, will most likely use Asterisk for managing and delegating calls to staff around the organisation.
Similarly, any company that has a website will most likely have Apache or Nginx to host their website, these are very limited examples but should give you an example of the variety of software available to organisations.

Business efficiency Considerations

 

The reasons that companies use these particular systems may vary however, they are relatively low maintenance compared to systems that they would have to develop themselves. Additionally, the cost of these systems can be significantly less as some software can be rented or managed through Saas (Software as a service) systems.

 

The Variety of Systems Available

Organisations also have different informational needs from sector to sector, for example…
  • A Car Manufacturer’s part list.
  • A Bank’s Customer Database.
  • A Wholesalers Stock Quantity.

These businesses rely on completely different information about their systems. Their goals and objectives as businesses vary.

The Scale of Organisations

Additionally, because systems are so different… when a company undergoes a merger, it may be very disruptive to merge systems, especially ones that are updated very quickly, an example of this could be the askMID database, this system monitors the Insurance status of vehicles on the road in the UK, they claim to have over 10,000 edits an hour, therefore if they needed to merge their database, it would be important that the data was continually updated. It is also likely that the variety of the data available makes spotting mistakes harder to identify, so having a way of logging changes would be vital.

Influences for Supply and Demand

Businesses work on a complex demand and supply based method of producing products and services.

  • Supply is the quantity of a good or service that a producer is offering to supply into the market
  • Demand is the quantity that the customers are willing to buy at a given price over a given period of time
  • External factors, such as income or environmental or ethical change may mean that a product is no longer viable, smoking for example is no longer as profitable as it was as people no longer smoke as much as they used to. Influences may be out of the businesses control.

Capture

You may notice demand is present in the what influences the demand section, while it would not be a good idea to present it in an exam, I thought it worth including at the bottom as it technically does effect demand, as people may buy a product to own one before everyone else. Promotion is also a very broad term, this also encompasses things like fasion events, tastes and Economy also includes factors such as income.

Capture

Supply and Demand Competition

Supply of a product can generally be negated, as long as there is demand there will usually be a supply. Some mass markets, such as commodity items are often very unchanging and can have extremely thin margins to drive out competitors, this is known as a price war and can sometimes be more destructive to business profits than good as the product becomes devalued by the low price and people become unwilling to pay for the prices needed to pay for the product, however, this can sometimes improve the rate of the moving average as it forces businesses to increase their prices, usually at the same time to a higher-than-original value.That is one example of a price strategy (price war).

If there is no demand for a product, then there most likely will be no supply, as producers are not interested in creating a product that will not sell.

Demand and Supply Graph

A Supply and Demand graph shows the relationship between the two, the graph can be altered by shifting either to the left or right, depending on whether you want to increase or decrease either, just remember that,

Left is less…

So by shifting either to the left, you are decreasing them. A handy tool for showing equilibrium.

 

How Long Will my Phone Battery Last Before it Dies?

phone battery last before it diesDefined obsolescence has gotten a hold of me again, I will have to purchase a new phone, as my old one is about to expire! I have had my phone for about 2 Years, I recieved it in the summer and It was fairly new at the time, being released in August 2014, My little HTC Desire 610 has been through a lot. It’s had 2 screen protectors, 2 cases and been across 3 networks. Now that It is aged, I have since rooted it and install android Lollipop it has had a new breath of life, However It’s quite slow as a daily driver and I think I will need a new one soon. The battery cover on the back cannot be removed and only the SIM card and External Memory can be replaced. How Unfortunate. But It got me wondering, How long will my phone battery last before it dies.

Some people wonder how long their phone battery will last before it dies, before it basically doesn’t hold a charge and it’s battery life is no longer able to last a day.I however know that answer, my phone will die on approximately Saturday, December 24th 2016 at 8:20 am, as at this point it will no longer hold a charge. How do I know this? Let me explain…

Data Collection

Firstly, I needed to collect data to predict when my phone was degrading in battery life, I decided that the easiest measurable metric would be when my phone was plugged in. Because I would usually do this when I got in from home, It did not require me collecting any data as it could all be done automatically. I know this isn’t the most precise method for multiple reasons, such as I may not always plug my phone in at the same time, the phone may not always record the results (as you will see) and the percentage when i plug it in is not an accurate assumption of health. However my findings did show a trend that shows the battery is degrading at about 0.000109% every minute, which gives me 7 and a half months to buy a new one.

Recording the Results

To record the results I used Google Drive and IFTTT to note down the percentage charge at the times the phone was disconnected and reconnected from power. It also recorded the charge type, such as USB,AC or an external Battery. This could potentially also alter my results as the percentage increase would vary over different mediums of charge, so I eliminated all but AC power, as this was always from the same plug and USB lead. So, How did I calculate how long will my phone battery last before it dies?

The recipe I used is nearly identical to this one, I made one for it being plugged in and one for it being unplugged. the data ended up looking like this.

Date and TimeStatusBattery PercentagePower Source
March 11, 2016 at 04:19PMUnplugged41
March 11, 2016 at 04:19PMCharging41AC
March 11, 2016 at 04:33PMUnplugged50
March 11, 2016 at 04:34PMCharging49AC
March 11, 2016 at 04:37PMUnplugged52
March 11, 2016 at 04:39PMCharging52AC
March 11, 2016 at 04:44PMUnplugged56
March 11, 2016 at 04:45PMCharging56AC

As you can see at this time I unplugged the device multiple times over 25 minutes to read emails and texts or whatever showed up on my phone. I was interested in this, so charted the occurrences of a date and time, and found that I had unplugged and plugged in again my phone four times in 1 minute at maximum, and had unplugged and plugged in my phone over 249 times. Here are the occurrences, excluding dates where I did not plug in my phone as although it would contribute to how long will my phone battery last before it dies, it did not trigger the app.

phone unplug replug showing Battery Last before It Dies

This also got me wondering how many times a day I unplugged my phone, If you look at the data, It shows that, for example, on the 20th of February, a Saturday, I unplugged my phone 16 times.

times phone was unplugged on a given day showing Battery Last before It Dies

It seems that for about a week during march I was unplugging my phone a lot, and I can’t really see a connection, I was at school on the 11th, I guess I must have been heavily using my phone over that period. The more perceptive of you will have noticed that the entire month of April is omitted, that is because the data was not recorded as I had been logged out of the IFTTT app, I did not realise until later when I re-enabled it, Having the empty months would alter the data so I have removed them from the results. Perhaps I shouldn’t worry how long will my phone battery last before it dies and instead how long the connector will last.

So How Long Will My Phone Battery Last Before It Dies?

phone plug in showing Battery Last before It Dies

This graph shows every event recorded, including when I was not recording the phone being plugged in, It clearly shows, using a linear trendline, that there is a decline in the battery percentage. Which shows my phone’s average battery percentage when being plugged in, when it reaches 0%, which I have decided is to be a dead battery, in 336101 Minutes, or 5602 hours. Coincidentally, It dies on Christmas Eve, the perfect time to be gifted a new phone ;).

Simulating a phone combination brute force

 

If a malicious individual were to steal your android or iPhone, plug in a device to emulate a keyboard and have it test every single pass code possible, it would take a while, using the following tutorial, you can calculate the time It would take to do so.

Screenshot_2016-03-02-16-46-31

 

 

 

 

 

 

Firstly, you need to grab Python 3.4.3, or you can probably use the version you have installed. Next we need to create the code.

Firstly we need to import datetime to convert the guesses into time it would have taken, we also need to write down what the combination is, for this example, it will be ‘3502’.

import datetime
combination = "3502"

print (" [Info] Starting")

Then we need to add a guess and how long has passed while performing a guess, as it takes time to enter the numbers into the device, we will simulate this as well as 1 second.

guess = "0000"
seconds_taken = 0

def addsec(seconds):
     global seconds_taken
     seconds_taken = seconds_taken + seconds

I could have added the seconds section into the code directly, but adding as a def allowed me to edit it if I needed to, now that we have done the basics, we need to start guessing, there are 10,000 possible combinations, thats combinations such as 0001, this is problematic as leading zeros will not be carried over into integers in python, we can fix this using .zfill(4), which will add the leading zeros back into the guess, allowing us to compare it with the actual combination. This also means that we can convert the guess back into an integer in order to see if we have exceeded our limit. We also need to add a second for a combination guess.

def addsec(seconds):
     global seconds_taken
     seconds_taken = seconds_taken + seconds

while int(guess) <= 9999:
     addsec(1)
     if guess.zfill(4) == combination:
          print (" [Alert] Combination guessed, combination is " + combination)
          break
     else:
          guess = str(int(guess) + 1)
          print (" [Info] Guess is now '" + str(guess).zfill(4) + "'")

Finally, we need to convert our result into a time, we can do this by dividing our seconds_taken (which is coincidentally the number of guesses if you add one for ‘0000’) by 5 (because it takes 5 guesses before a penalty), and then tuning that into an integer, rounding down and then multiplying by 300, to simulate 5 minutes lockout. then we combine penalties_incurred and seconds_taken, to get the time it takes to guess the combination (in seconds), then use that to convert into an hh:mm:ss format, using datetime.

penalties_incurred = int(seconds_taken / 5) * 300
time_taken = (str(datetime.timedelta(seconds=(penalties_incurred + seconds_taken))))
print (" [Finished] The combination would have taken '" + time_taken + "' to brute force. (h:m:s)")
print (" [Finished] You would have had to wait for " + str(int(penalties_incurred / 300)) + " lockout session(s)" )

What have we learnt?

  • There are 10,000 possible combinations.
  • For my combination, it would take 6 days, 30 minutes to guess.

On an Android Device,

  • It would take over 2,000 lockouts to guess every combination.
  • It would take 7 days, 1 hour, 26 minutes and 40 seconds to guess every combination.
  • It would take 8 hours, 28 minutes and 20 seconds to guess 500 combinations.
  • It would take 50 minutes and 50 seconds to guess 50 combinations, with 10 lockouts.

On an Apple Device*,

  • It would take 1666 lockouts to guess every combination.
  • It would take 5 days, 21 hours, 36 minutes and 40 seconds to guess every combination.
  • It would take 7 hours, 3 mintes and 20 seconds to guess 500 combinations.
  • It would take 40 minutes and 50 seconds to guess 50 combinations, with 8 lockouts.

*However, apple wipes their devices after 11 bad combinations, to avoid this, the combinations would have to be entered correctly after the sixth try in order for the apple device estimates to be correct, which defeats the purpose of brute forcing, for that reason apple devices are much more secure, however there is potential for data to be deleted accidentally.

This simulation is flawed because,

  • It does not take into account combinations greater than 4 digits
  • It does not take into account cumulative waiting times
  • It does not take into account device combinations that don’t involve numbers
  • You could increase the number of digits allowed in order to calculate your combination, for example if it was 67890, replacing the 13th line with 99999 would allow you to calculate it.

Here is the full code extract,