Can You Upgrade a Maya Student Version to a Full Commercial Edition?

The Maya 3D software from Autodesk has long-been a staple tool for the production of the highest level of Visual Effects and animation for Oscar-winning blockbuster movies, TV shows and video games.

Students who are looking to secure themselves commercial work upon graduation these days typically need to show some familiarity with this software…ideally the more the better, since most companies these days use Maya as their main software package, and many have it deeply integrated into their own proprietary pipelines and tools – meaning that the situation is unlikely to change for the foreseeable future.

Students who take the opportunity currently afforded them of purchasing a copy of the Maya Student Edition do well since they are able to improve their skillset on the full Unlimited version of the software, and do so at a huge discount (the student edition typically retails for around $350).

However, a number of students wonder if they also qualify for a discount later on if they wish to upgrade to a full commercial edition of the Maya software. Jumping from graduation to commercial work can be a challenge, so any way to alleviate the expense of setting yourself up as a freelancer is more than welcome…but can it actually be done?

Upgrade Maya Student Edition To Commercial License?

Yes, you’ll be pleased to know that there is a program available where current owners of a Maya student license are able to upgrade to the full commercial license at a massive discount of around 60%…in other words, a full commercial license of Maya would typically cost around $3,900, but student license holders are able to upgrade their current license to a full commercial one for just $1,300.

This is huge, and can be a real lifesaver for folks who want to go it alone and start their own freelance business but are wary of the huge costs involved.

In fact, if you’re smart about it and don’t mind a little negotiation, the license could even be purchased with a down-payment from your first client before you even begin working on their project.

Such a huge discount on the student to commercial upgrade is a great incentive for students, especially at this economic time, and it also makes purchasing the Maya student edition in the first place a sensible option, since you get access to these kinds of discounted upgrades.

Posted in general | Comments Off on Can You Upgrade a Maya Student Version to a Full Commercial Edition?

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

How Useful is CAD Software to Engineers and Architects?

The emergence of advanced technology has made people today dependent on machines. Using computers and software, for example, is a very common illustration of this. Computer experts are coming up with more and more software to make more and more jobs easier.

A more specific illustration of this can be found in the modern approach towards engineering and architecture. These days, professionals in these fields use CAD computer software which is a program that allows them to create designs faster, easier and with more accurate measurements. Aside from the convenience that CAD software brings, it also helps put architects and engineers ahead of their competitors. CAD, which can render designs that are two-dimensional or three dimensional, stands for Computer Aided Design and has been in use since 1982.

So how does CAD computer software work? And what does it do exactly to help engineers and architects? The program is actually multifaceted in the sense that there are many ways it can help. To make CAD work will require, however, a careful study of its features and the many ways it can be used. It is rather a complex yet flexible and highly functional program.

This article will not be enough to discuss the various ways that CAD works but pinpointing its advantages could give some very good ideas. One great advantage of CAD computer software is its easy-to-use tools in the creation and alteration of designs. Obviously, this is so much better than the old fashioned way of using a pencil and eraser directly on paper. This method of designing is obviously so much easier and engineers and architects simply have more time to finish other tasks. In other words, high productivity is going to be the main end result of using CAD.

Before the design is actually printed on paper, CAD also allows both the design professional and the client to preview what has been finished so far. Any alterations can be made simply by manipulating the drawing through the use of the software. With CAD, it is so much easier to spot errors because the designs can be rendered exactly as they would be in reality. Hence, modifications can be done even before printing, thus, allowing one to save.

With the tough competition that everyone has to face these days, it is wise to take advantage of new technologies that can help put them ahead in the race. While traditional methods hold a significant part in the history of design, advanced tools such as CAD software should only be welcomed as man’s way of furthering development in a field of expertise that he himself has created long ago.

Posted in general | Comments Off on How Useful is CAD Software to Engineers and Architects?

Double Towel Racks – The Easy Way To Increase Space

Bathrooms almost always pose a storage challenge. They often have minimal space to do all the jobs we need to do in there and to store everything we use while we're in there.

When a bathroom is shared by a couple of people, or even an entire family, unique storage challenges come up, and they require unique solutions. When, say, four people use the same room for bathing, an obvious problem is: where do you put all the towels? Bathroom hardware manufacturers came up with a better solution: double towel racks.

A traditional single towel rack provides sufficient space to dry one towel. If you've got four people using four towels each day, and you have a typical bathroom, you'll need a wall covered with towel rods to provide enough drying space.

Double towel racks provide an innovation solution to this all-too-common bathroom storage problem. You'll find double towel racks come in traditional finishes like polished chrome and polished and antique brass, and popular finishes like brushed nickel and oil-rubbed bronze. You can find economic versions of double towel racks in unfinished wood and ceramic-and-plastic. Regardless of the amount the wall space you have available to install this hardware, you'll find one to fit your space; They come in the range of standard sizes.

If your bathroom is short on storage, you'll usually be open to considering any new space-saving solutions. You can find bathroom suites with a double towel racks installed below. Imagine-in the space where you could normally dry a towel or two, you can double your hanging space, and have room to store a few fresh folded towels and other bathroom essentials, too.

Double towel racks are an excellent solution when you've got lots of damp towels to handle, but other solutions do exist:

• Install a row of pegs or hooks along the wall of the bathroom.
• Install one or more multi-prong hooks on the back of the bathroom door.
• Buy a shower curtain rod with a towel rack incorporated in its design.
• When you purchase shower doors, look for ones where the handles double as towel bars.
• Install suction-cup hooks inside the tub surround.
• Place a swing-arm towel bar to the wall next to your tub or shower. This way, the towel bars extend into the room; They are not limited to hanging against a wall.
• Hang a hook over the bathroom door, linen closet door, or the door of the water closet. These over-door hooks come in single, double, and multiple hook versions in colors and finishes that either stand out or blend in.
• Repurpose an old-style coat rack and use it to hang towels in the bathroom. It takes up only a single square foot of precious floor space.
• If you want to add furniture to your bathroom, look for a hall tree, which is usually reserved for use in the foyer or a mudroom. They come in many styles and finishes, equipped with hooks, mirrors, storage benches, and shelves.
• If you've fortified enough to have a sizable linen closet in your bathroom, visit the closet organization section of your home improvement store. These stores have trained personnel who can help you look at the space you have and redesign it to suit your needs.

Installing a couple of double towel racks can provide a simple way to add storage space to your bathroom. But investigate all the possible storage options for your unique bathroom design challenges. You're not limited to one solution-think creatively and combine them to make a bathroom that works for you.

Posted in general | Comments Off on Double Towel Racks – The Easy Way To Increase Space

Futon Frame Maintenance and Common Replacement Parts and Hardware

A little preventative maintenance of your futon frame can greatly increase how long it lasts. We recommend checking the bolts on your futon frame every month or two, depending on how often it's used. If they are loose, gently tighten them, but be careful not to over tighten them. If you have a wooden frame, you can rub a bar of Ivory soap in the arm tracks every now and then, to keep things operating smoothly.

Most of the damage that we see is from forcing the frame to operate, when it's stuck. If you are converting your frame from a bed to a sofa, or from a sofa to a bed, and it does not easily convert, stop what you are doing, and remove the mattress, and carefully examine why it's not moving easily. Usually if you try to convert the frame and you pull on one side more than the other, something will jam, and if forced, you may break something.

Normally a guest will try to make their bed in the morning, and not knowing how to do it, they may break your frame. We suggest telling your guests to leave the futon as a bed, and you'll take care of changing it from a bed to a sofa for them.

Some parts wear out, and some of the plastic parts can dry out over the years. If the bolts are not tightened, a part can move around in a way that it's not recommended to, and that can cause it to break. People ask us why they do not make some of the parts in futon frames out of metal so they're never break. The reason is, if they were metal, and something jammed up, and was forced, the seat, or back, or an arm would crack, and that would be a more costly repair.

Here's a list of some of the more common futon frame hardware and parts. This is by no means a complete listing of all the parts, but it includes most of the common parts. Some items are called more than one name, so we list them twice. Futon store that has been around a long time, might even have obsoleste parts that you might need.

If you need a part that you can not find anywhere, consult a good futon store who's willing to help you, and give them a description and a couple of pictures showing what you need and see if they are willing to help you. They may need to know the name of the manufacturer of the frame because there are many frames that look the same, but the size of the bolts or seat decks and other items will all be slightly different.

Futon Bolts
Standard Futon Hinges
Click Click Hinges
Triple Click Hinges
Futon Mattress Storage Bags
Oblong Rollers
Carriage Blocks
Round Futon Rollers
Double Futon Rollers
Nylon Roller Inserts
Futon Barrel Nuts, Nuts, and Cross Dowels
Larger Futon Barrel Nuts
Futon Seat Stoppers
Futon Storage Bags
Allen Wrenches
Larger Allen Wrenches
Plastic Leg Caps
1/2 "Futon Hardware Sets
5/8 "Futon Hardware Sets
Angle Support Brackets
Decorative Bolt Covers or Plugs
Clevis Pins and Assemblies
Various Plastic Rollers, Glides and Carriage Blocks
Stretcher Support Rails
Futon Seat Decks
Futon Back Decks
Futon Arms
Cotter Pins
Washers and Clips
Futon Slats and Supports

Posted in general | Comments Off on Futon Frame Maintenance and Common Replacement Parts and Hardware

What Are the Advantages of Using a Web Based Project Management System

Every project needs a large number of people for the completion of any task. Projects are of several kinds, and there capacity level is also variant. In order to help the managers control all tasks, management system was introduced. Project management system is used to make the managers feel easy. The first type of a project management system is manual.

However, nowadays much web-based project management software is available in the market. There is no need to process data manually. Everything is computerized; managers just have to enter the basic information into the system. Nowadays, lots of project managers are opting for web-based project management systems. They have access to the web-based project management software’s, and tools.

Using a web-based management system has several benefits. Project managers can reach their computers from anywhere, not only computers, but they can also contact their team members and check the progress of work. Discussing any problems that arise with the team is a lot easier. Team members can also interact with each other via e-mail.

Project scheduling is the basic solution of web-based task management plan in a large organisation. In many ways a web-based activity management plan can help your managers achieve optimum results. Whether a project is based on finance, marketing, construction, or information technology (IT), and web-based project management plan can help t.

Web-based activity management plan helps managers to make a proper scheduling plan of the project. Web-based software has many tools which help in managing time, and activities. The software includes spreadsheets, network diagrams, or Gantt charts to control the task management scheme.

In project-management scheme, HTML, ASP, or PHP are the supported languages coded into the software, and browser. The team can access it through a web browser. Moreover, main software is installed on to the server for multiple clients.

Project management scheme helps managers to supervise all the team easily. If the manager finds any team member late in the completion of the task, he/she can track the problem, and change that member, thus, avoiding any delays.. Web-based project-management-system enables the mangers to distribute the workload according to the capability of human resource (HR). In addition, he/she can monitor the performance of each person involved in the completion of a job. This web-based project management system also enables the manager to measure the achievement, and performance of the team in accordance to the strategy chalked down for completion, or achievement of the target.

Web-based project-management system keeps the human resources satisfied from the point of view that whatever performance he/she is given is being registered, and is not over looked. If, a company is using a custom-made programme, which is flexible to different projects, it remains cost effective, and is not a burden on the bottom line. For different projects, which have different dynamics, companies may need a tailor-made programme for them, This can be a little costly, but it ensures better management, proper monitoring, and timely completion of tasks, ultimately ensuring good performances. Nowadays, this web-based project software is a very important tool for the management of any project. Furthermore, using the correct project management scheme, and software, can help managers to manage their project smoothly, and effectively.

Posted in general | Comments Off on What Are the Advantages of Using a Web Based Project Management System

Why Do We Need Software Engineering?

To understand the necessity for software engineering, we must pause briefly to look back at the recent history of computing. This history will help us to understand the problems that started to become obvious in the late sixties and early seventies, and the solutions that have led to the creation of the field of software engineering. These problems were referred to by some as “The software Crisis,” so named for the symptoms of the problem. The situation might also been called “The Complexity Barrier,” so named for the primary cause of the problems. Some refer to the software crisis in the past tense. The crisis is far from over, but thanks to the development of many new techniques that are now included under the title of software engineering, we have made and are continuing to make progress.

In the early days of computing the primary concern was with building or acquiring the hardware. Software was almost expected to take care of itself. The consensus held that “hardware” is “hard” to change, while “software” is “soft,” or easy to change. According, most people in the industry carefully planned hardware development but gave considerably less forethought to the software. If the software didn’t work, they believed, it would be easy enough to change it until it did work. In that case, why make the effort to plan?

The cost of software amounted to such a small fraction of the cost of the hardware that no one considered it very important to manage its development. Everyone, however, saw the importance of producing programs that were efficient and ran fast because this saved time on the expensive hardware. People time was assumed to save machine time. Making the people process efficient received little priority.

This approach proved satisfactory in the early days of computing, when the software was simple. However, as computing matured, programs became more complex and projects grew larger whereas programs had since been routinely specified, written, operated, and maintained all by the same person, programs began to be developed by teams of programmers to meet someone else’s expectations.

Individual effort gave way to team effort. Communication and coordination which once went on within the head of one person had to occur between the heads of many persons, making the whole process very much more complicated. As a result, communication, management, planning and documentation became critical.

Consider this analogy: a carpenter might work alone to build a simple house for himself or herself without more than a general concept of a plan. He or she could work things out or make adjustments as the work progressed. That’s how early programs were written. But if the home is more elaborate, or if it is built for someone else, the carpenter has to plan more carefully how the house is to be built. Plans need to be reviewed with the future owner before construction starts. And if the house is to be built by many carpenters, the whole project certainly has to be planned before work starts so that as one carpenter builds one part of the house, another is not building the other side of a different house. Scheduling becomes a key element so that cement contractors pour the basement walls before the carpenters start the framing. As the house becomes more complex and more people’s work has to be coordinated, blueprints and management plans are required.

As programs became more complex, the early methods used to make blueprints (flowcharts) were no longer satisfactory to represent this greater complexity. And thus it became difficult for one person who needed a program written to convey to another person, the programmer, just what was wanted, or for programmers to convey to each other what they were doing. In fact, without better methods of representation it became difficult for even one programmer to keep track of what he or she is doing.

The times required to write programs and their costs began to exceed to all estimates. It was not unusual for systems to cost more than twice what had been estimated and to take weeks, months or years longer than expected to complete. The systems turned over to the client frequently did not work correctly because the money or time had run out before the programs could be made to work as originally intended. Or the program was so complex that every attempt to fix a problem produced more problems than it fixed. As clients finally saw what they were getting, they often changed their minds about what they wanted. At least one very large military software systems project costing several hundred million dollars was abandoned because it could never be made to work properly.

The quality of programs also became a big concern. As computers and their programs were used for more vital tasks, like monitoring life support equipment, program quality took on new meaning. Since we had increased our dependency on computers and in many cases could no longer get along without them, we discovered how important it is that they work correctly.

Making a change within a complex program turned out to be very expensive. Often even to get the program to do something slightly different was so hard that it was easier to throw out the old program and start over. This, of course, was costly. Part of the evolution in the software engineering approach was learning to develop systems that are built well enough the first time so that simple changes can be made easily.

At the same time, hardware was growing ever less expensive. Tubes were replaced by transistors and transistors were replaced by integrated circuits until micro computers costing less than three thousand dollars have become several million dollars. As an indication of how fast change was occurring, the cost of a given amount of computing decreases by one half every two years. Given this realignment, the times and costs to develop the software were no longer so small, compared to the hardware, that they could be ignored.

As the cost of hardware plummeted, software continued to be written by humans, whose wages were rising. The savings from productivity improvements in software development from the use of assemblers, compilers, and data base management systems did not proceed as rapidly as the savings in hardware costs. Indeed, today software costs not only can no longer be ignored, they have become larger than the hardware costs. Some current developments, such as nonprocedural (fourth generation) languages and the use of artificial intelligence (fifth generation), show promise of increasing software development productivity, but we are only beginning to see their potential.

Another problem was that in the past programs were often before it was fully understood what the program needed to do. Once the program had been written, the client began to express dissatisfaction. And if the client is dissatisfied, ultimately the producer, too, was unhappy. As time went by software developers learned to lay out with paper and pencil exactly what they intended to do before starting. Then they could review the plans with the client to see if they met the client’s expectations. It is simpler and less expensive to make changes to this paper-and-pencil version than to make them after the system has been built. Using good planning makes it less likely that changes will have to be made once the program is finished.

Unfortunately, until several years ago no good method of representation existed to describe satisfactorily systems as complex as those that are being developed today. The only good representation of what the product will look like was the finished product itself. Developers could not show clients what they were planning. And clients could not see whether what the software was what they wanted until it was finally built. Then it was too expensive to change.

Again, consider the analogy of building construction. An architect can draw a floor plan. The client can usually gain some understanding of what the architect has planned and give feed back as to whether it is appropriate. Floor plans are reasonably easy for the layperson to understand because most people are familiar with the drawings representing geometrical objects. The architect and the client share common concepts about space and geometry. But the software engineer must represent for the client a system involving logic and information processing. Since they do not already have a language of common concepts, the software engineer must teach a new language to the client before they can communicate.

Moreover, it is important that this language be simple so it can be learned quickly.

Posted in general | Comments Off on Why Do We Need Software Engineering?

Effective Job Numbering And Cost Code Systems

Overview

Many companies have a sequential job numbering system, but have you considered the possibility of altering the numbering sequence so you can pull reports for a certain type of project or projects by year and the informational reports that could be generated?

And, are your cost codes sufficient to cover the details you need to see in your reports? Do you lump all site related travel and subsistence into one code, or do you have the details of hotels vs. Housing and meals vs. Subsistence?

Not all software programs are sophisticated enough to allow for customized job type numbering sequences; However, even the basic job cost software systems can be adapted to allow for an advanced numbering system.

Specific Job Numbering Sequences

Advanced reporting techniques can yield a wealth of information. How jobs are numbered so ease the reporting burden so projects of a certain type and / or year can be easily excluded from the software. Samples of numbering sequences could be based on the following criteria:

· Year project was awarded

· Public vs. Private works

· Commercial vs. Residential

· Construction vs. Service

· Division (s) of the Company

If your software allows, you may start the job number with the year awarded, followed by the job type and then a sequential number. Management may request a report for gross revenue on all the commercial contractor improvement projects in 2013. If you have a numbering sequence, this would be an easy report to pull, rather than go through all your 2013 projects and manually add the numbers to obtain the Results.

The job cost master file is another good source of information if all fields are completed and there is a common usage of custom fields that can be used to pull reports.

Cost Codes – Too few or Too Many?

Often we see cost code lists that spill onto multiple pages. Most job cost software programs allow for use of one cost code for multiple categories (Labor, Materials, Direct Job Expense, etc.).

A good source to use for establishing a cost code list is the bid recap and detail sheets used when bidding projects. This will yield the different stages of labor, types of materials to install associated with that labor, the different types of equipment to be rented, categories of subcontractors and the details of direct job costs to be incurred.

These activities can be "numbered" to establish a list of cost codes. If the software allows for use of one code across multiple categories, give thought to not duplicating descriptions, but arranging codes together by "type" of work being performed, rented equipment, direct job expenses, work typically contracted out, etc.

Keeping your cost codes consistent will then allow even more sophisticated reporting – management can now ask for all commercial contractor improvement projects in 2013 and the total cost of crane rentals for the year on those specific projects.

Why Go Through These Steps?

History is a great source of information when anticipating the future. Cost details can be analyzed for specific types of jobs when preparing to bid a similar project. Historical information can be analyzed for margins on certain types of projects or a division of the company to make decisions on whether or not a certain type of work is profitable.

If fields are available in the job cost master file, reports can be declined not only by type and year but by project manager as well to look at performance and estimate vs. Actual results.

Conclusion

When developing any numbering system, consistency is important in order to maximize the reporting results. Management should determine the information they wish to see and develop job numbers and cost codes that will allow for advanced reporting not only to themselves but provide useful information to estimating, project managers and accounting as well.

Posted in general | Comments Off on Effective Job Numbering And Cost Code Systems

Corel DRAW – Best Desktop Publishing Software

Corel DRAW is a supreme supplier of graphics software, including the popular Corel DRAW program. Corel DRAW has tools that allow the user to both create and edit images. The type of desktop publishing tools that you use will depend on the type of project. For more information and assistance, use the Corel website.

Corel DRAW is the best Desktop publishing software that empowers users to create illustrations containing graphics, text and photographs. Corel has an extensive range of tools which enable the user to edit any shape or character with ease and precision, fit text to curves and create custom color separations. It is developed and marketed by Corporation of Ottawa. This tool can open files: Adobe PageMaker, Microsoft Publisher and Word, and other programs can print documents to Adobe PDF using the Writer printer driver, which such software can then open and edit every aspect of the original layout and design.

Several innovations to vector-based illustration originated with Corel: a node-edit tool that operates differently on different objects, fit text-to-path, stroke-before-fill, quick fill/stroke color selection palettes, perspective projections, mesh fills and complex gradient fills.

One of this software’s many strengths is the huge range of over 1,000 fonts that it comes with, provided in both TrueType and Postscript Type 1 format. Corel differentiates itself from its opponent in a number of ways: The first is its positioning as a graphics suite, rather than just a vector graphics program. A full range of editing tools allow the user to adjust contrast, color balance, change the format from RGB to CMYK, add special effects such as vignettes and special borders to bitmaps. Bitmaps can also be edited more extensively using Corel PhotoPaint, opening the bitmap directly from Corel and returning to the program after saving. It also allows a laser to cut out any drawings.

Expert believed it was the first of the Windows-based drawing programs and has built on this early start to become far-and-away the dominant drawing package on the PC. Its biggest strength – and its biggest potential limitation – is its all-encompassing approach. In the past this has led to accusations of unfocused bloating, but with version 7.0 Corel has addressed the criticisms with a far tighter and better rationalized program. Even so, there’s a huge range of functionality to cover.

Corel DRAW Download was originally developed for Microsoft Windows and currently runs on Windows XP, Windows Vista, and Windows 7. The current version, X5, was released on 23 February 2010.

Posted in general | Comments Off on Corel DRAW – Best Desktop Publishing Software

The Importance Of Excel In The Workplace

Excel is perhaps the most important computer software program used in the workplace today. That’s why so many workers and prospective employees are required to learn Excel in order to enter or remain in the workplace.

From the viewpoint of the employer, particularly those in the field of information systems, the use of Excel as an end-user computing tool is essential. Not only are many business professionals using Excel to perform everyday functional tasks in the workplace, an increasing number of employers rely on Excel for decision support.

In general, Excel dominates the spreadsheet product industry with a market share estimated at 90 percent. Excel 2007 has the capacity for spreadsheets of up to a million rows by 16,000 columns, enabling the user to import and work with massive amounts of data and achieve faster calculation performance than ever before.

Outside the workplace, Excel is in broad use for everyday problem solving.

Let’s say you have a home office. You can use Excel to calculate sales tax on a purchase, calculate the cost of a trip by car, create a temperature converter, calculate the price of pizza per square inch and do analysis of inputted data. You can track your debt, income and assets, determine your debt to income ratio, calculate your net worth, and use this information to prepare for the process of applying for a mortgage on a new house. The personal uses for Excel are almost as endless as the business uses for this software – and an Excel tutorial delves into the practical uses of the program for personal and business use.

The use of spreadsheets on computers is not new. Spreadsheets, in electronic form, have been in existence since before the introduction of the personal computer. Forerunners to Excel and Lotus 1-2-3 were packages such as VisiCalc, developed and modeled on the accountant’s financial ledger. Since 1987, spreadsheet programs have been impacting the business world. Along the way, computerized spreadsheets have become a pervasive and increasingly effective tool for comparative data analysis throughout the world.

Today, end users employ Excel to create and modify spreadsheets as well as to author web pages with links and complex formatting specifications. They create macros and scripts. While some of these programs are small, one-shot calculations, many are much more critical and affect significant financial decisions and business transactions.

Widely used by businesses, service agencies, volunteer groups, private sector organizations, scientists, students, educators, trainers, researchers, journalists, accountants and others, Microsoft Excel has become a staple of end users and business professionals.

The beauty of Excel is that it can be used as a receiver of workplace or business data, or as a calculator, a decision support tool, a data converter or even a display spreadsheet for information interpretation. Excel can create a chart or graph, operate in conjunction with Mail Merge functions, import data from the Internet, create a concept map and sequentially rank information by importance.

Excel offers new data analysis and visualization tools that assist in analyzing information, spotting trends and accessing information more easily than in the past. Using conditional formatting with rich data display schemes, you can evaluate and illustrate important trends and highlight exceptions with colored gradients, data bars and icons.

Indeed, Excel can be customized to perform such a wide variety of functions that many businesses can’t operate without it. Excel training has become mandatory in many workplaces; in fact, computer software training is a must for any workplace trying to keep up with the times.

Let’s say you’re an employer with 97 workers, 17 of whom called in sick today, and you want to know the percentage represented by absentees. Excel can do that. You can learn Excel and use it to determine the ratio of male to female employees, the percentage of minorities on the payroll, and the ranking of each worker by compensation package amount, including the percentages of that package according to pay and benefits. You can use Excel to keep track of production by department, information that may assist you in future development plans. You can create additional spreadsheets to track data on vendors and customers while maintaining an ongoing inventory of product stock.

Let’s say you want to know your business production versus cost. You don’t have to be a math wiz – you just have to learn Excel. Excel allows you to input all of the data, analyze it, sort it according to your customized format, and display the results with color, shading, backgrounds, icons and other gimmicks that offer time-saving assistance in later locating precisely the information desired. If this spreadsheet is for presentation purposes, Excel helps you put it together in such a visually appealing way that the data may seem to pop and sparkle.

The single most important thing an employer may do is learn Excel – it is one of the most essential tools of the workplace.

Excel and Microsoft are trademarks of Microsoft Corporation, registered in the U.S. and other countries. Lotus is a registered trademark of International Business Machines Corporation in the U.S. and/or other countries.

Posted in general | Comments Off on The Importance Of Excel In The Workplace