Advantages of Antispyware Programs

Much like the antivirus programs, now a days anti spyware programs also is a must if you are browsing the net. Most of the antivirus programs provide a good job by taking care of the computer viruses. However, many of them fail to detect the spyware which gets installed onto the PC when connected to the internet. This is where Anti spyware programs comes to help. They do a good job by protecting our computers by identifying the spyware and promptly remove them.

There are so many antispyware programs are available in the market. Both in the Online as well as near to your computer retail showroom. However, you have to ensure that you buy a good Anti spyware program which fulfills the requirements what it promises. Also, make sure to check that the software works on your Operating System. Most of them work on Windows Operating system; however, there is no harm in double checking the same.

Some of the characteristics of a good antispyware program is as below.

Real time scanning

Real time scanning is the heart of these type of programs. The program once installed should reside on your system tray and should be able to do a real time scan in the background. This way it should be able to identify all kinds of threats like Adware, spyware, Trojans and the harmful key loggers.

Automatic Updates

There is no point in having an Antispyware software program which does not update the spyware definitions automatically and at periodic intervals.

Customer Support

Most of the time you will not be require to call up their helpdesk as the software will work automatically provided if the operating system is compatible and all the installation prerequisites are met. However, if you run across any installation problems or some kind of bugs customer service comes in handy.

Posted in general | Comments Off on Advantages of Antispyware Programs

Turn Your Basement Into a Virtual Shooting Gallery

An indoor shooting simulator is easy to add on to most projection based home theater systems, and in most cases is an inexpensive way to add hours of entertainment for the whole family. People of all ages enjoy playing the wide range of games that are available for the system, everything from “Baseball Challenge” to “Elephant Hunter” will keep your family and friends entertained. Utilizing a shooting simulator is not only a great way to add excitement to your home theater room; it is also a get way to keep your shooting skills sharp.

System Basics:

There are a few basic requirements for adding a shooting simulator to an existing home theater. The simulator runs on a normal Windows based computer, software is compatible with Windows XP, Windows Vista and Windows 7. The image is broadcast through a projector to a screen, which most projectors and home theater screens will be suitable for use with this simulator. Now all you need to add is a basic simulator package, which includes a rifle, case, camera and five games. Installation of the simulator will only take about thirty minutes to setup and install the new software and hardware. Now you are ready to start enjoying the very best of simulated shooting. To recap the items you need: computer, projector, screen and a simulator package.

Benefits of Indoor Shooting:

There are many advantages to adding an indoor shooting simulator to you home theater room, these are just a few.

Convenience- having the ability to practice your shooting skills from within your own house, cuts down on drive time to the range and you can fire up your system anytime you want.

Cost Savings- ammunition is expensive! You will save a lot of money practicing your skills using a true to life replica laser firearm verses using live ammo.

Safety- using a laser firearm is a much safer weapon to practice will and it’s a lot better for your hearing.

Shooting Variety- with a shooting simulator you have the ability to practice your skills on a wide range of software titles. You can practice shooting skeet and with just a touch of a button you can switch over to another game and practice your marksmanship on simulated popup targets.

Entertainment- Gather you friends and family, challenge them for the highest score or for bragging rights.

Packages and Software:

With this system, there are many packages of both hardware and software available. Looking for a portable package or maybe a complete package if you don’t have a projector, computer and screen? Those packages and more are available. There are over 35 software titles currently available, which can be purchased separately or in 15 game packages. Software titles are being added, so you will always have the option to buy the latest games on the market. Do you have the best Halloween party on your block? There is a Halloween software package that will insure your party is unforgettable. Do you have a young hunter or marksman that could benefit from “Hunter’s Education” software? It is an option on this simulator. Teach them everything from ethical shooting to animal anatomy, with the hunter’s Ed package. Looking to hone your archery skills? This simulator has packages available for you bow enthusiasts. There are several optional firearms which can be added to the system, to maximize the skill development and enjoyment of the simulator.

Adding a shooting simulator to your theater room is easy and a cost effective way of increasing the entertainment value of your room as well as improve shooting skills. If you would like some more information on the shooting simulators or have any questions please contact me through the website.

Posted in general | Comments Off on Turn Your Basement Into a Virtual Shooting Gallery

Top 25 Terms All Computer Students Should Know

The following basic terminologies are considered the top 25 terms all computer students should know before they even begin their studies:

1. Bit: Binary data storage unit valued at either 1 or 0.

2. Byte: Eight data bits valued between zero and 255.

3. Word: Two data bytes or 16 data bits between zero zero and 16,535.

4. CD-ROM: A storage disk with approximately 640 megabytes of capacity.

5. CD-ROM Drive: Hardware used for reading and writing to CD-ROMs.

6. Storage Media: Magnetic devices that permanently store computer data.

7. File: Permanent storage structure for data kept on a hard drive or other permanent place.

8. Virus: Unauthorized programs that infect files or send themselves via email.

9. Vulnerability: When unauthorized access can be gained due to software errors.

10. Security Flaw: When attackers gain unauthorized system access due to a software bug.

11. Worm: Unwanted programs accessing computers via application / system vulnerabilities.

12. Hardware: Physical parts of computer (case, disk drive, monitor, microprocessor, etc.).

13. Software: Programs that run on a computer system.

14. Firmware: Software that has been permanently written into a computer.

15. ISP: Internet Service Provider.

16. BIOS: The basic input / output system computers use to interface with devices.

17. MIME: Multipurpose Internet Mail Extension.

18. Boot: What happens when a computer is turned on and beginning to run.

19. Crash: When computer software errors occur and programs fail to respond.

20. Driver: Program that understands interfaced devices like printers and video cards.

21. Network: Cables and other electrical components carrying data between computers.

22. Operating System: A computer's core software component.

23. Parallel: Sending data over more than one line simultaniously.

24. Serial: Sending data over a single line one bit at a time.

25. Protocols: Communication methods and other standard Internet / networking functions.

These are the top 25 terms all computer students should know before they even begin their technical training. Most computer students know much more. In fact, everyone who uses a computer these days should understand these terms so they can be better informed about the important tool that is so integral to our daily lives.

Posted in general | Comments Off on Top 25 Terms All Computer Students Should Know

Who Invented Dell Computers?

The invention and the history of the Dell computer is quite interesting. First of all, it was in 1984 when Michael Dell, a student at the University of Texas at Austin, created the company PC's Limited. He only had a starting capital of $ 1,000. So what he did was started working out of his dorm room to build personal computers made from stock components. These computers were to be IBM compatible because that was the standard at that time. If a computer were to function with various pieces of hardware, it needed to be IMB compatible.

It is when Michael Dell figured that selling computers directly to customers to determine customer need that he dropped out of college. His family then extended him the $ 300,000 in expansion capital that he needed to make his business take off.

A success

It was in 1985 that the Turbo PC was developed and it sold for less than $ 800. It contained an Intel 8088 processor that ran at 8 MHz, which is significantly slower than the computers that we use today. Computers today are running in gigahertz, which are hundreds and even thousands of times faster than the 8 MHz processor that Michael Dell was installing in his computers at the time. But the truth is that this was the best that could be done in 1985. The technology was developing.

But there was an aspect of PC's Limited that was unique from the rest and continues to be this way today. It is the fact that customers could order their computers rather than buy a computer that was already assembled. This allowed individuals to receive computers at lower prices than what they could get with their competitors. This definitely worked because PC's Limited grossed $ 73 million in its first year of trading.

The beginning of Dell

It was in 1988 that PC's Limited became Dell. Prior to that, the company already had 11 international operations occurring, so the company was quite large. There were on site services set up to compensate for the lack of businesses acting as service centers for Dell computers. It was in 1990 that Dell attempted to sell through club houses, but had very little success with this. So it is then that Dell went right back to its direct to customer sales.

In 1996, Dell started selling computers on its website. An individual could go onto the website and custom design their computer so that it would be built to their specifications. From there, it would be shipped to the customer's home. Financing was made available so that individuals would be able to acquire their computers easily.

In 1999, Dell became the largest personal computer seller when they took over Compaq computers. Their revenue topped $ 25 billion in 2002. Also in 2002, Dell started selling televisions and other electronic items. They now have Dell brand printers, LCD TVs, and much more. Because of the expansion beyond computers, Dell was changed to Dell Inc. In 2003.

It is amazing that this billion dollar company started in a dorm room with $ 1000 in starting capital. And Michael Dell has always stood by the principles of letting individuals have the capability to design their own machine. Although there are Dell computers now sold in various retail outlets, a person can still go to the website and design the machine of their dreams. And Dell also offers a lot of assistance for individuals needing help with their computers. They offer on-site services and so much more for the computer user so that they can have the best experience possible.

Posted in general | Comments Off on Who Invented Dell Computers?

Advantages to Android Game Development

The industry of mobile game development has introduced a very important aspect to the market – the ability to conceptualize, develop, and release video games on devices with far more success and ease than ever before. And with the Android app marketplace only requiring a one-time fee for submitting an application, the cost becomes almost negligible to put the product out for millions of customers to find. Even the submission process is drastically shorter than on most other smartphones, as the app regulation is far more lenient for the Android OS.

Another drawing point for developing games on Android devices is the programming language featured- Java. Java has long been one of the most popular programming languages ​​for video game developers, and that makes it extremely easy for the average programmer to pick up Android development for the first time. Compared to most other mobile platforms, which usually sport modified or newly invented languages, the learning curve is decreed to nearly nothing, so a new developer can complete a game in a fraction of the time.

Another unique aspect to Android game development is the lack of standardization in the droid phone family. As the Android OS is not licensed to a single mobile phone making company, the phones themselves can vary to an extreme degree in terms of features and hardware specifications. While one device may have a fully functional A-GPS and HDMI video compatibility, another may have a QWERTY keyboard and no GPS at all. While this is certainly appealing to some developers, as they are likely to find a phone that will meet their hardware needs reasonably, it will also restrict the potential audience, as some phones will not be able to support the more complex applications.

When the game development process has finally reached the point where it can be released to the public, the developer is presented with yet another choice- which market would the game be most visible in? Unlike the iOS, there are numerous marketplaces and app stores for Android phones, each one with it's own advantages and disadvantages. From the basic Android marketplace, built to only display the apps compatible with the phone currently being used, to the Amazon app store, which offers a different free app every day, the myriad of marketing strategies can be almost daunting, which makes it all the More useful that an application can almost always be entered into multiple marketplaces without issue. However, whenever it makes sense to spread attention across several different fields is another question entirely.

The Android game development process overall really gives the most variety on the smartphone market. From start to finish, strategies can be hand-tailored to the developer's desires, making the game as close to the original concept as currently possible. While the audience may not be as large as that of iPhone users, the Android presents itself as a strong contender, purely through its accessibility. And with the largest variety of smartphones on the current market, the possibilities for development are inexhaustible, and continued releases can only add to the capabilities the platform has to offer.

Posted in general | Comments Off on Advantages to Android Game Development

Schedule Slippage – Root Causes

“The single most important task of a project: setting realistic expectations. Unrealistic expectations based on inaccurate estimates are the single largest cause of software failure.”- Futrell, Shafer

Introduction

With global and competitive market, it is very important to launch a product or service in the market on time, ahead of competitors. Definitely, timely launch depends on on-time-completion of the product development projects. Project planning has lots of challenges to overcome in order to finish the project on time – right from schedule predictability, envisioning future/possible risks and coming up with mitigation plans.

This article talks about some of the challenges, often faced in the Software Product Development industry that causes the schedule slippage.

Schedule slippage: Delay in the project completion from its initial estimated date of completion.

Each project plan will have a planned completion date (NRA, RA), and a bounding box or upper limit in schedule. Nowadays, it is a common practice to have three dates associated with any project plan:

  • Non-Risk Adjusted (NRA) date: Project completion date assuming no hurdles – Ideal conditions.
  • Risk Adjusted (RA) date: Project completion date assuming some risks will come on the way and will need extra time to attend to them.
  • Bounding Box (BB) or upper limit: The upper limit on the project plan before which the project has to be finished under any circumstances – Generally decided by the top management based on product/services roadmap and launch in the market.

Under ideal circumstances, any project is scheduled to complete by NRA date. Considering some risks that may come on the way and would eat some time off the schedule, the project should be over by RA date. If the risks were not envisioned and hence not planned well, then project may get delayed and would complete after RA date. Project completion crossing the RA or upper limit is neither good nor expected out of a well-planned project.

Root Causes

As we always plan for a project to get over before RA date, seldom is the case it happens as expected. There are multiples reasons for schedule slippage, right from improper planning, lack of resources to unplanned requirements and rework that eat away vital time off the planned schedule.

A typical project development process – Each project will have a team (development, testing and other functions) that will work through a process (requirement analysis, schedule estimation, design, implementation and testing) to deliver a product to the customer/end user. Each entity that participate in the project – directly or indirectly affect the schedule.

From the development process, we can identify the items that can cause delay in the execution of the project – for example, misinterpreted or unclear requirement adds up to completion time, unavailability of development tools or resources can prolong the project duration. Various processes like schedule estimation, detailed design and product development if not executed skillfully, may significantly blow up the project cycle.

For better understanding all these possible causes that may result in schedule slippage are categorized .

Let’s have a detailed look at the root causes of schedule slippage category wise.

1) Schedule Estimation: “The key is not to prioritize what’s on your schedule, but to schedule your priorities.” – Stephen Covey

For a project to be executed on time, it is very important to have it planned very well. Any mistake in project schedule estimation reflects as delay in the project completion from its deadline. There are several factors that contribute to improper schedule estimation:

· Underestimation of technical complexities: At the start of the project, many of the team members may not have thorough knowledge of technical complexities and hence their estimation would be incorrect. Sometimes it may so happen that the person giving estimates for a particular task is having no idea about the technical challenges involved in carrying out that particular task. You might hear, towards the mid/end of the project life cycle when the task is not finished on time – “Oh, I didn’t know that this feature also requires 5 more tasks to be done!” or “I was thinking this task to be so simple, but I under estimated it!”. · Lack of Design/Big picture: It is important to have a bigger picture / overview of the complete project to understand how a particular module/feature would fit in to complete project. Product or system level design helps in understanding the interfaces among other modules and the required coordination for product assembly and hence, a better insight into the work involved. Often, estimates without focus on detailed design tend to deviate more from the actual time taken for finishing the job. · Integration Testing: While making a project plan, testing also needs to be accommodated in the schedule. At times, the unit testing or testing done by individual contributors on their module is taken into account but not the system level testing. Toward the release, when all the individually tested modules are brought together, a system level or integration testing is a must. Having the time for integration testing not accounted in the overall project schedule will cause delay in the project completion.

· Unplanned dependencies: Project planning is not only about breaking the project into minute tasks and managing them. A well-planned project schedule also needs to consider certain unplanned dependencies. Some of these are:

o People: Optimum utilization of human resources calls for same set of people working in multiple projects. A person may not be available to work for currently planned/assigned project due to extended/unplanned work in another parallel project. Another issue related to people could be unplanned/unexpected attrition that will affect the project plan. Time is also lost in mentoring of new member by a senior (more experienced) person which goes unaccounted if not planned.

o Tools & Equipments: Project can be delayed if team is waiting for release of upgrade or procurement of any vital tool (hardware or software being used in the project) or if the equipments required for development and testing are not available. “We had a 3-months project for validating our existing solution on new product platform using customer DUT (device under test). We had to wait for the DUT for nearly 1.5 months as it got stuck in customs. After getting the DUT, we realized that it’s been damaged partially during transportation. As a result we had to ask for another DUT and whole project took more than 5 months to get finished.” – I am sure that such cases will be quite familiar to many organizations. Other reason for timely unavailability of tools / equipments is that they are shared among various projects to reduce the operating cost. Any unplanned dependency on their usage or wrong assumption about availability of these shared resources would cause delay in the program. Team members might have to work on shifts to optimize the usage of shared resources which can cause reduced work hours and/or productivity loss and results to schedule slippage.

“I was waiting for Matlab license to be released by another person in the team but he left the office without doing so and I lost 3 hours figuring out what to do?” – is it something you faced before?

o Other programs: If multiple programs have deliverable dependencies, then delay in one project will have cascaded effect on other projects, which directly or indirectly depend on its deliverable. “We got delayed because we had to wait for a critical UI component from the framework project team” or “We didn’t plan for bug fixes for a component which was supposed to be delivered defect free for our usage” are the common scenarios for delays in program which are dependent on other program deliverables. Parallel programs may affect the schedule of your program in a different way as well – Sometimes, management changes the priority of the programs running in parallel. If your project is considered as a low priority one then there might be lack of resources assigned to your project that may result in schedule slippage.

· Beta releases: How many times we seek feedback on our product during development? And how often we allocate time for it? It’s important to plan beta releases if we desire to have our product validated by expert users or lighthouse customers during development. Getting feedback from beta customers becomes important especially when their requirements echo that of a mass customer base. Process of giving workable releases to customers, collecting their experience, having their feedback analyzed, and then incorporating in the final product version takes significant time.

· Risk mitigation and plan B: Every project will have some or the other risks. These risks can be of varying severity and probabilities. While making project plan, it is important to treat the risk individually based on their severity and probability of occurrence. If high probable risks with higher severity are not planned with their mitigation plan (or plan B), they will have huge impact on schedule deviation from planned one. As in one of the previous examples quoted, getting a DUT on time for validation was a risk. Had there been a mitigate plan (plan B) like – Validate with other DUT or if DUT is not available here, let one developer travel to customer’s place and finish the validation on time, the schedule slippage would have been avoided.

2) People: Ultimately, projects are executed by people who may not be skilled or talented. Hence, looking for perfection in projects involving human beings may not be a feasible thought. Certain unpredictable and hence unavoidable issues under this category are:

· Poor leadership: Before thinking of project execution, it is project planning that actually would set the platform of success. Execution of the project depends on its team while planning is taken care by the project leader. The project leader is expected to have enough technical know-how to understand the project goals and to the details of the tasks involved. Poor leadership and superficial knowledge of assignments often results in invalid effort estimation and ad hoc task delegation causing stress and possible delay in project execution. People leading the team are also responsible for keeping the team spirit and motivation level upbeat. Poor personal commitment due to lack of motivation results in loss of productivity and may cause schedule to slip. Another reason that adds up to delay in projects is inability of leadership team to track the schedule progress and take the correction action.

· Attrition: If the project duration is large and job market is hot, it may be difficult to retain people in the project till its completion. Attrition may further delay the completion especially if the person leaving the job was in critical path. A person leaving the organization would leave a gap in the project that a new person may not fill immediately, which in turn causes sudden reduction in the task force.

· Learning curve: When ever a new person or team member is included in the project, he or she may require some time to understand the project to keep in pace with other members. Learning curve is needed for new team members, joining the team either due to attrition or due to any specific technical competency requirement. · Context switching: In smaller organization or groups where people work on multiple projects simultaneously, it is important to have some buffer for context switching. A person planned to work in project ‘A’ for two hours after a gap of two weeks, would take more than scheduled time to complete that task. Gap of two weeks and the fact that he or she was involved in other project would require some time for the member to get back to the context of current project. · Global development teams: In an era of globalization and outsourcing, it is common these days to have development team distributed over different geographical regions. Project plan needs to account for different time zones and working culture. You might expect an input for your task on Monday morning your time but it may be Sunday late evening for that person and finally when the input arrives, you might be on your way to home after work.

Sometimes schedule estimation might go completely wrong if you have not understood the work culture of the region your teammate belongs to – “In my previous work, I was given a task to be completed with a heads up that its very critical task and needs immediate attention’. When I asked my project lead how many days/hours I have for it, I had been time for 2 weeks for high priority and ‘immediate-attention’ work.” Definition of ‘urgent’, ‘high priority tasks’ changes with culture and region.

· Communication Issues: People communicate differently. If important issues are not brought to the notice of the team members, or are not escalated on time, the entire project may suffer. Often fear of embarrassment stops team members from reporting issues faced during execution leading to more time being spent on that task that can easily be executed additional help.

3) Customer Involvement: These issues are quite serious if customer or end users of the product are involved in the development phase. Understanding customer’s priorities, defining your expectation from their involvement needs to be clear and in agreement with both the parties.

· Expert user testing: In the beginning of the project, expert user testing cycle needs to be planned. Process of giving builds or releases for testing and collecting their feedback, analyzing and incorporating them in your product takes significant time which, if not planned, can delay your program. · Timely feedback: “I got feedback from customers for features, delivered in development milestone-1, after milestone-5 towards the release. These feedbacks are critical but now I am worried how to incorporate them without affecting the schedule.” It sounds like a common problem. Incorporation of feedback from customers needs to be planned well taking a commitment from the customer. · Product requirement specification review: Having a product requirement review planned and executed will keep you on right track throughout the project. Reviewing the requirement specification will avoid requirement related defects fixing which otherwise would have delayed, the project.

4) Ambiguous Project Requirement: For any project to be initiated, the first thing is to have requirements for it. In the product development life cycle, requirement phase acts like a foundation. Clear requirement or vision for the project navigates the team to success. However, requirements may not be clear at the time of estimation and may result in delay in the project completion. Issues related:

· Evolving specs: If you are making a product based on a standard which is not yet matured or still evolving, you are more prone to have this risk. Frequency changes in the specs will change the requirement for the project during different stages of product development and team will continue to work on something that is not yet evolved. This results in rework that would delay the project if time for dealing with these changes is not accommodated in the schedule. “We developed an algorithm and hence measurement that was based on certain industry standard. Towards the release of the product, the specs changed and our measurement was no more valid. We had to redo the algorithm to reflect the changes in the specs. This caused our product release delayed by 2 months.” · New requirements: Sometimes new requirements are added as the project evolves towards completion. Implementation of new requirements is not planned at the beginning of the project and hence is not accounted in schedule. Adding new feature without revising the schedule may result in delay.

· Untold expectation: Requirements from the customers may be of two types – implicit or explicit. It is important to have the requirements well documented. Implicit requirements needs to be better defined and documented to avoid any confusion towards the end of the project. Customers may not describe their requirements related to system performance, memory issues, user interface quality and usability but they are very keen on providing feedback in those aspects once the product is given for expert user testing. If we are not clear about such requirements, out design might not address them. Addressing them towards the end of the project may call for design changes and extra work that would delay the project.

5) Unplanned Tasks / Reworks: Bounding box for the project is set by higher management and often lack buffer for unplanned task(s). Having more of unplanned task that creep up at different phases of project can cause schedule slippage. The unplanned tasks or rework may arise due to:

· Sustaining work: In smaller organizations, some of the project team may also be responsible for sustaining / customer support of existing products. These unplanned tasks, which come on event basis, related to customer support are always of high priority. Excess or prolonged sustaining work may take resource out of the planned project causing a potential threat for schedule slippage. · Defect fixes: Defects are bad as they degrade the product quality and consume extra time/effort to fix them. It is good to have testing of the intermediate releases of the project to find and fix defects sooner in the development life cycle. If the fixing-cycle for such internal-milestone defects is not planned, then either the project is either going to slip or product is going to be of poorer quality. Poor programming skill of the team, not adapting to modern programming practices and having ad hoc development processes may lead to higher number of defects which would take more time to fix then planned and cause slippage.

· Task spillover from previous milestone: Tasks that are not completed in previous milestone, due to whatever reason (inefficiency, vacation of the team member, resource crunch etc), will have to be completed in the next milestone thereby increasing the load on the team. If adequate buffer is not planned, these tasks spilled from previous milestone over to next, can delay the project. · Requirement change / refinement: Requirement changes during the product development will result in rework of what has been previously done with first version of requirement(s). Addressing changes in the requirements needs extra time and effort and may cause schedule slippage. In some cases, the requirement from customer is misunderstood resulting in wrong system design and implementation. Additional, unplanned time is lost in correcting the design/implementation which causes schedule slippage.

Conclusion

On time delivery is the challenge software development companies are facing globally. To have a complete control over estimated schedule, it is very important to identify the elements in the development cycle that cause schedule slippage. This article uncovers and explains the root causes of delay in programs using examples from real world. Having an insight to the root causes will help the program managers to make good decisions to avoid future schedule slippage.

Posted in general | Comments Off on Schedule Slippage – Root Causes

Choosing the Right SDLC For Your Project

Choosing the right SDLC (Software Development Lifecycle) methodology for your project is as important to the success of the project as the implementation of any project management best practices. Choose the wrong software methodology and you will add time to the development cycle. Adding extra time to the development cycle will increase your budget and very likely prevent you from delivering the project on time.

Choosing the wrong methodology can also hamper your effective management of the project and may also interfere with the delivery of some of the project’s goals and objectives. Software development methodologies are another tool in the development shop’s tool inventory, much like your project management best practices are tools in your project manager’s tool kit. You wouldn’t choose a chainsaw to finish the edges on your kitchen cabinet doors because you know you wouldn’t get the results you want. Choose your software methodology carefully to avoid spoiling your project results.

I realize that not every project manager can choose the software methodology they will use on every project. Your organization may have invested heavily in the software methodology and supporting tools used to develop their software. There’s not much you can do in this case. Your organization won’t look favorably on a request to cast aside a methodology and tools they’ve spent thousands of dollars on because you recommend a different methodology for your project. We’ll give you some tips on how to tailor some of the methodologies to better fit with your project requirements later in this article. In the meantime, before your organization invests in software development methodologies you, or your PMO, ought to be consulted so that at least a majority of projects are benefited from a good fit.

This article won’t cover every SDLC out there but we will attempt to cover the most popular ones.

Scrum

Scrum is a name rather than an acronym (which is why I haven’t capitalized the letters), although some users have created acronyms, and is commonly used together with agile software development. Scrum is typically chosen because of its iterative nature and its ability to deliver working software quickly. It is chosen to develop new products for those reasons. There is typically no role for a project manager in this methodology, the 3 key roles are: the scrum master (replacing the project manager), the product owner, and the team who design and build the system. There is only one role that you would be asked to play if your organization is committed to using this methodology, scrum master. If you should determine that this would actually be the best methodology for your project, you’ll have to re-examine your role as project manager. You can either identify a suitable scrum master and return to the bench, or fill the role of scrum master.

Scrum suits software development projects where its important for the project to deliver working software quickly. Scrum is an iterative methodology and uses cycles called sprints, to build a working system. Requirements are captured in a “backlog” and a set of requirements is chosen with the help of the product manager. Requirements are chosen based on 2 criteria: the requirement takes priority over others left in the backlog and the set of requirements chosen will build a functioning system.

During the sprint, which can last from 2 to 4 weeks maximum, no changes can be made to the requirements in the sprint. This is one of the reasons that a project manager isn’t necessary for this methodology. There is no need for requirements management because no changes are allowed to the requirements under development. All changes must occur in the requirements set in the backlog.

Scrum will be suitable for software development projects where the product is a new software product. By new I mean that it is new to the organization undertaking the project, not in general. The methodology was developed to address a need for a method to build software when its necessary to learn on the fly, not all requirements are known to the organization and the focus is on delivering a working prototype quickly to demonstrate capabilities. You need to be careful when choosing requirements to deliver in each sprint to ensure that the set developed builds a software system that is capable of demonstrating the feature set supporting the requirements included.

You also need to ensure that these requirements are well known and understood as no changes are allowed once the sprint starts. This means that any changes to the requirements must come through a new set of requirements in the backlog making changes to these requirements very expensive.

This methodology divides stakeholders into 2 groups: pigs and chickens. The inventors of this methodology chose this analogy based on the story of the pig and the chicken – it goes something like this. A pig and a chicken were walking down the road one morning and happened to notice some poor children who looked like they hadn’t eaten for days. The compassionate chicken said to the pig: “Why don’t we make those children a breakfast of ham and eggs?” The pig said: “I’m not happy with your suggestion. You’re just involved in making the breakfast, I’m totally committed!” The point to this is the product owner, scrum master, and team are all in the “pig” group. All others are in the “chicken” group. You will be in the “chicken” group if you choose the Scrum methodology as a project manager.

Waterfall

Waterfall methodology calls for each phase of the development cycle to be repeated once only. Requirements will be gathered and translated into functional specifications once, functional specifications will be translated to design once, designs will be built into software components once and the components will be tested once. The advantage of this methodology is its focus. You can concentrate the effort of all your analysts on producing functional specifications during one period rather than have the effort dispersed throughout the entire project. Focusing your resources in this way also reduces the window during which resources will be required. Programmers will not be engaged until all the functional specifications have been written and approved.

The disadvantage of this approach is its inability to teach the project team anything during the project. A key difference between the waterfall approach and an iterative methodology, such as Scrum or RUP, is the opportunity to learn lessons from the current iteration which will improve the team’s effectiveness with the next iteration. The waterfall methodology is an ideal methodology to use when the project team has built software systems very similar to the one your project is to deliver and has nothing to learn from development that would improve their performance. A good example of a project which would benefit from the waterfall methodology is a project to add functionality to a system the project team built in the not too distant past. Another example of an environment that is well suited to the waterfall methodology is a program to maintain a software system where a project is scheduled for specific periods to enhance the system. For example, an order and configuration software system which is enhanced every 4 months.

The waterfall methodology does not lend itself particularly well to projects where the requirements are not clearly understood at the outset. Iterative approaches allow the product owners or user community to examine the result of building a sub-set of requirements. Exercising the sub-set of requirements in the iteration’s build may cause the product owners or user community to re-examine those requirements or requirements to be built. You won’t have that opportunity with the waterfall method so you need to be certain of your requirements before you begin the build phase. Interpreting requirements into functionality is not the only aspect of development that can benefit from an iterative approach. Designing the system and building it can also benefit from doing these activities iteratively. You should use the waterfall method when your team is familiar with the system being developed and the tools used to develop it. You should avoid using it when developing a system for the first time or using a completely new set of tools to develop the system.

RUP

The Rational Unified Process, or RUP, combines an iterative approach with use cases to govern system development. RUP is a methodology supported by IBM and IBM provides tools (e.g. Rational Rose) that support the methodology. RUP divides the project into 4 phases:

1. Inception phase – produces requirements, business case, and high level use cases

2.Elaboration phase – produces refined use cases, architecture, a refined risk list, a refined business case, and a project plan

3. Construction phase – produces the system

4. Transition phase – transitions the system from development to production

RUP also defines 9 disciplines: 6 engineering disciplines, and 3 supporting disciplines: Configuration and Change Management, Project Management, and environment so is intended to work hand in hand with project management best practices.

Iteration is not limited to a specific project phase – it may even be used to govern the inception phase, but is most applicable to the construction phase. The project manager is responsible for an overall project plan which defines the deliverables for each phase, and a detailed iteration plan which manages the deliverables and tasks belonging to each phase. The purpose of the iterations is to better identify risks and mitigate them.

RUP is essentially a cross between Scrum and waterfall in that it only applies an iterative approach to project phases where the most benefit can be derived from it. RUP also emphasizes the architecture of the system being built. The strengths of RUP are its adaptability to different types of projects. You could simulate some of the aspects of a Scrum method by making all 4 phases iterative, or you could simulate the waterfall method by choosing to avoid iterations altogether. RUP will be especially useful to you when you have some familiarity with the technology but need the help of Use Cases to help clarify your requirements. Use Cases can be combined with storyboarding when you are developing a software system with a user interface to simulate the interaction between the user and the system. Avoid using RUP where your team is very familiar with the technology and the system being developed and your product owners and users don’t need use cases to help clarify their requirements.

RUP is one of those methodologies that your organization is very likely to have invested heavily in. If that’s your situation, you probably don’t have the authority to select another methodology but you can tailor RUP to suit your project. Use iterations to eliminate risks and unknowns that stem from your team’s unfamiliarity with the technology or the system, or eliminate iterations where you would otherwise use the waterfall method.

JAD

Joint Application Development, or JAD, is another methodology developed by IBM. It’s main focus is on the capture and interpretation of requirements but can be used to manage that phase in other methodologies such as waterfall. JAD gathers participants in a room to articulate and clarify requirements for the system. The project manager is required for the workshop to provide background information on the project’s goals, objectives, and system requirements. The workshop also requires a facilitator, a scribe to capture requirements, participants who contribute requirements, and members of the development team whose purpose is to observe.

JAD can be used to quickly clarify and refine requirements because all the players are gathered in one room. Your developers can avert misunderstandings or ambiguities in requirements by questioning the participants. This method can be used with just about any software methodology. Avoid using it where the organization’s needs are not clearly understood or on large, complex projects.

RAD

RAD is an acronym for Rapid Application Development uses an iterative approach and prototyping to speed application development. Prototyping begins by building the data models and business process models that will define the software application. The prototypes are used to verify and refine the business and data models in an iterative cycle until a data model and software design are refined enough to begin construction.

The purpose of RAD is to enable development teams to create and deploy software systems in a relatively short period of time. It does this in part by replacing the traditional methods of requirements gathering, analysis, and design with prototyping and modeling, the prototyping and modeling allow the team to prove the application components faster than traditional methods such as waterfall. The advantage of this method is it facilitates rapid development by eliminating design overhead. It’s disadvantage is that in eliminating design overhead it also eliminates much of the safety net which prevents requirements from being improperly interpreted or missed altogether.

RAD is suitable for projects where the requirements are fairly well known in advance and the data is either an industry or business standard, or already in existence in the organization. It is also suitable for a small development team, or a project where the system can be broken down into individual applications that require small teams. RAD is not suitable for large, complex projects or projects where the requirements are not well understood.

LSD

Lean Software Development, or LSD, applies the principles of waste reduction from the manufacturing world to the business of developing software. The goal of LSD is to produce software in 1/3 the time, on 1/3 the budget, and with 1/3 the defects of comparable methods. Lean does this by applying 7 principles to the endeavor of software development:

1. Eliminate waste

2. Amplify Learning (both technical and business)

3. Decide on requirements as late as possible

4. Deliver as fast as possible

5. Empower the team

6. Build integrity

7. See the whole

Although Lean Manufacturing has been around for some time, its application to the process of developing software is relatively new so I wouldn’t call it a mature process.

LSD would be a suitable method to use where you have a subject matter expert in the method who has some practical experience in applying lean methods to a software development project. “Amplified” learning implies that your development team has a depth of knowledge in the software tools provided, and also a breadth of knowledge that includes an understanding of the business needs of the client. LSD would be suitable for a project where the development team has these attributes.

LSD depends on a quick turnaround and the late finalization of requirements to eliminate the majority of change requests, so will not be suitable for a project where a delayed finalization of requirements will have a poor chance of eliminating change requests, or the size and complexity of the system being developed would prevent a quick turnaround.

Extreme Programming (XP)

Extreme programming places emphasis on an ability to accommodate changes to requirements throughout the development cycle and testing so that the code produced is of a high degree of quality and has a low failure rate in the field. XP requires the developers to write concise, clear, and simple code to solve problems. This code is then thoroughly tested by unit tests to ensure that the code works exactly as the programmer intends and acceptance tests to ensure that the code meets the customer’s needs. These tests are accumulated so that all new code passes through them and the chances for a failure in the field are reduced.

XP requires the development team to listen carefully to the needs and requirements of the customer. Ambiguities will be clarified by asking questions and providing feedback to the customer which clarifies the requirements. This ability implies a certain degree of familiarity with the customer’s business; the team will be less likely to understand the customer’s needs if they don’t understand their business.

The intent of XP is to enhance coding, testing, and listening to the point where there is less dependency on design. At some point it is expected that the system will become sufficiently complex so that it needs a design. The intent of the design is not to ensure that the coding will be tight, but that the various components will fit together and function smoothly.

XP would be a suitable software development method where the development team is knowledgeable about the customers business and have the tools to conduct the level of testing required for this method. Tools would include automated unit testing and reporting tools, issue capture and tracking tools, and multiple test platforms. Developers who are also business analysts and can translate a requirement directly to code are a necessity because design is more architectural than detail. This skill is also required as developers implement changes directly into the software.

XP won’t be suitable where the development team does not possess business analysis experience and where testing is done by a quality assurance team rather than by the development team. The method can work for large complex projects as well as simple smaller ones.

There is no law that states you must choose one or the other of these methodologies for your software project. The list I’ve given you here is not a totally comprehensive list and some methodologies don’t appear on it (e.g. Agile) so if you feel that there is some other methodology that will better suit your project, run with it. You should also look at combining some of the features of each of these methods to custom make a methodology for your project. For example, the desire to eliminate waste from the process of developing software is applicable to any method you choose and there is likely waste that could be eliminated in any development shop.

Be careful to choose a methodology that is a good fit for your team, stakeholders, and customer as well as your project. Bringing in a new development methodology that your team will struggle to learn at the same time they are trying to meet tight deadlines is not a good idea. On the other hand, if you have the latitude you may want to begin learning a new method with your project.

Posted in general | Comments Off on Choosing the Right SDLC For Your Project

Build Your Own Tree House – Pros and Cons, Fasteners and Hardware

Tree houses are fun, bonding activities you can do with your friends or family, and can provide a unique and ideal hangout spot surrounded by Mother nature. One of the biggest differences in my opinion, between tree houses and other on-ground add-ons you can build on your property, is the fact that a house up in the trees sways – to varying degrees depending on the height and size of the Tree and branches – and so can add a unique and soothing feel.

There are several prerequisites that must be met before this particular project would be considered feasible for you. The first ones are also the most obvious:

  1. Do you have a suitable tree with your property on which you can construct your tree house? This question may be ambiguous to some, as what kind of tree exactly is considered suitable? Well, this depends largely on the size of the structure in question, as well as the expected load – number of people, furnishings, etc. The larger your tree house is, the larger your tree needs to be.
  2. How are you with heights? Now is not a good time to kid yourself or anyone else if you happen to be abnormally scared of heights! We're all scared of heights to varying degrees, but if you lack the courage or ability to comfortably work at the needed height, this project may not be for you. Granted, it can be built relatively low to the ground as well and still be called a "tree house" – in which case, this may not apply.

Now that we have those out of the way, we can get into the other aspects of building. When compared with a structure on the ground, a tree house may somehow seem like a simpler project due to the fact that some of us have grown up "throwing" little makeshift tree houses up here and there. However, it's important to remember that any halfway decent structure, whether on the ground or up in a tree, requires careful planning and implementation of standard safety code.

Here are some other questions you should ask yourself before concluding the planning stage:

  1. What will I use the tree house for? Depending on your answer, you may want a roof and walls, or you may find it unnecessary. In either case, a rail and / or walls at least a meter high is recommended for safety.
  2. How long do I want it to last? You may think that the answer to this question is obvious, but you should understand that the lifespan of your tree house depends heavily on the materials you use and the quality and number of layers of your protective stain. Tree houses, by virtue of their definition, stand within and under the canopy of the tree in which they are built. Because of this, they are more susceptible to premature rot due to the prolonged shade and humid nature of their environment. The fallen leaves and branches scattered across the deck also serve as decay-accelerators unless they are regularly swept off.

Foundation and Floor-shape

One of the unique beauties of a tree house is the fact that you can simply build around the various branches leaving them exposed within your tree house, enhancing the "natural" atmosphere. As with an on-ground structure, you should start with building your base and floor. You may face complications with the shape of your floor due to the limitations of suitable branches to base off of.

Because of this, there's a possibility you may have to set up for a non-square shape. This may be what you want, or this may be a problem for you. In any case, you should understand that there are some restrictions placed upon you by the particular tree you're working with. All branches used for a foundation should be able to single-handedly carry several hundred pounds, and more if you're expecting higher traffic.

Tree Wood Density and Fastener Quality

Large tree houses that weigh more than the collective weight of their occupants should be carefully designed , as various factors such as the hardness of the tree and fastener quality and design come more into play. Wood will compress where the fasteners connect to the tree to varying degrees based on the hardness of the tree in question, causing a sinking of the tree house.

Professional-grade Tree house Fasteners – Are they Necessary?

There are various tree house fasteners available on the market today specially manufactured for their unique needs. However, the question invariably arises as to how necessary these customized bolts and brackets are in comparison to normal ones found in home centers due to their price. They often cost between one and several hundred dollars each!

The first thing to bear in mind when contemplating the pros and cons of these rather pricey pieces of hardware is that trees are living organizations, and are still growing, moving, and changing shape. Therefore, your tree house and the hardware on which it is mounted must accommodate this movement. Simply bolting the beams into the tree's branches results in a fixed attachment that will force the tree to either pull the screw through the beam or try to grow around the beam.

The first of the two will result in a sudden and dangerous failure , while the second will result in an unhealthy and unnatural growth around the beam, potentially causing disease and decay to set in. Custom bolts and brackets are made with a certain allowance for tree growth, with a section of the bolt that is embedded deep in the tree's heartwood and a large shank that allows axial movement coupled with a female part that is attached to the beam.

So to answer the question of whether these expensive custom parts are necessary, the short answer is yes, and no. Yes, if you lack the know-how to find parts that will accomplish the same purpose as the professional parts do, and no, if you do, and do not require your tree house to last for fifty years. Home centers sell bolts and hardware with large diameters and lengths which can be used, but the entire shank can not be threaded.

The half or so that is embedded into the tree must be threaded, but the reminder that acts as the cushion to compensate for tree-growth must be smooth. You also need a female piece that fits around the smooth shank that has a bracket that can be screwed into your beam. This female bracket then has the freedom to slide along the axis of the smooth bolt shank as the tree grows in girth. All parts should be stainless steel as well – others may corrode to failure.

Obviously, the big tree house building companies would disagree with the above opinion, and the ideal is to buy these parts. I'm just offering an alternative for those who do not have a large budget but still want to construct a safe and environmentally-friendly tree house. There is also a chance you will not be able to find hardware that meets the criteria, leaving you with no other choice.

The professional criterion when it comes to fastening your tree house to your tree seems to be "perch, do not pin". I agree whole-heartedly with this principle and any alternative I save above should not contradict this. But not everyone looking to build a tree house is willing to spend tens of thousands of dollars, so, your budget is a primary factor in determining the quality as well as what kind you would build.

In any case, it should be a safe and fun place to accommodate whatever activities you envision. Taking into consideration the damage inflicted on the tree as well as future complications that may arrise such as those mentioned above when planning, is simply the responsible and consider course of action.

Posted in general | Comments Off on Build Your Own Tree House – Pros and Cons, Fasteners and Hardware

Pick 3 Lotto Logix – What You Should Know

The primary goal of Lotto Logix is to present informational resources for many individuals who are interested in playing and winning in lottery. Lotto Logix locates and lists the best lottery websites having useful contents for players; determines the best possible methods and strategies for playing at the lowest cost; finding free lottery games and lists the vital factors a player needs for lottery software. If you want to learn about lottery games such as pick 3 Logix provides pertinent information, which may help you in terms of playing, betting, and winning.

Lotto Logix limits its lists of lottery websites into 1 or 2 links so that players can choose efficiently. The websites are grouped according to their functionality in terms of software, results, and information. More so, Lotto Logix provides information of every website including tips, news, articles, freeware, books, statistics, shareware, programs, software, predictions, wheeling systems, and wheels among others. Since Lotto Logix has the objective of winning the lottery, it also provides assistance for players who would want to do the same. It is undeniable that not everyone has answers or solutions to winning in the lottery. Thus, Lotto Logix hopes in bringing methods and strategies to fit into one tool that will effectively lead to lottery winnings.

Although some lottery players do not believe in the usefulness of lottery software for games such as pick 3 Logix believe that it can help in storing, tracking, and charting winning number combinations. Lottery software provides predictions that are useful in choosing numbers to bet. The software can provide 90% accuracy in terms of distribution of numbers as well as the winning numbers since it lets you import your wheeling system. You can wheel all the numbers in you Pick 3, 5, or 6 games as you are allowed to filter number combinations.

In terms of free lotto games, Lotto Logix locates and lists every free online lottery games with legit prizes and uses state drawings for the winning numbers. On the other hand, Lotto Logix does not list all the games specifically if the websites for such games advertise extremely. This is because Lotto Logix thinks that it is much better to separate them from other free online lottery games that do not advertise as much. As such, it plans on establishing a link-farm page specifically for games that employ pay-per-click advertising or those that employ sign-ups in order to cover for the page cost. However, Logix is not very enthusiastic in creating such additional page. This is because most of these kinds of sites have too much demand that seem outrageous or unbelievable for players.

If you want to improve your odds of winning in lottery games such as pick 3 Logix has determined that playing more tickets is the only efficient way. On the other hand, it has also determined that it is more possible for you to win lower tier prizes while waiting to with the grand prize. It is best to establish strategies that allow you to track specific events for possible winnings.

Posted in general | Comments Off on Pick 3 Lotto Logix – What You Should Know

What is the Purpose of ERP Software?

Enterprise Resource Planning (ERP) software can be described as a complete business software solution. It is aimed at the integration of all business processes and sub-processes into a single unified system. This system is formulated and implemented in an organization to effectively and efficiently achieve the business goals of the organization.

ERP packages are implemented to manage the existing and prospective business plans and policies in an efficient manner under strict deadlines. It can be referred to as the ultimate business solution package that is predominantly concerned with making sure that the available resources of the organization are utilized in the best possible manner and coordinated with the business objectives of the organization.

It is crucial that modern day business organizations have a single unified system, which aims at harmonizing its business efforts. This can prove to be a crucial determinant in deciding the scope, area and net results of the organization as a whole, rather than running many different systems that don’t work well together. What makes ERP different from any other business solution package is the presence of a single and unified database system.

ERP software is as essential to the needs of a business today as food is for living. Businesses cannot run competitively in the absence of properly drafted and formulated ERP software. The more effective implementation and follow-up, the better are the results. ERP software is needed by all modern-day organizations, irrespective of the size, area of operations and business objectives.

Nowadays there are many ERP packages available in the global market, including SAP, PeopleSoft, Oracle, J D Edwards, and BAAN.

The selection of an ERP software package is dependent on many factors: previous software implementation, nature and size of operations, recommendations of consultants, and management decisions.

Before installing specialized software, a detailed study must be made and reviewed to match the business requirements with the available packages. This must be taken as a serious study as any mistake in selection or its effective implementation can prove disastrous to the organizational objectives and prospects. The ERP software must be installed by an ERP vendor or third-party consulting organization, which are expert service providers when it comes to providing Consulting, customization and support.

Some of the benefits of ERP Software:

* All processes and sub-processes are linked and unified into a single system.

* There are enhancements in the field of productivity, efficiency and achievement of business objectives.

* ERP tends to considerably reduce the response time by effectively transferring crucial information.

* ERP helps in streamlining the numerous functions performed by the organization as a whole.

* It helps the management to make vital decisions with unparalleled accuracy and in-depth study.

Thus, ERP software can effectively change the outlook of any business organization that exists in today’s cutthroat business world. Proper implementation of the ERP software is the key factor, which can benefit the growth prospects of any organization.

Posted in general | Comments Off on What is the Purpose of ERP Software?