Posts filed under Other

What is a scope document and why is it important for software development?

A scope document, or a statement of scope, is one of the most critical aspects of any project as it provides a fundamental understanding of the magnitude of the project for all involved. Especially critical in software development, it explains the boundaries of a project, establishes the responsibility of each team member, and sets up the procedures for how completed pieces will be validated and approved. Essentially, it defines goals, deliverables, tasks, deadlines, andcost. It is a way for the client and the development team to come to consensus on the vision and what it will take to get there.  Its relevance lies in managing the client’s expectations and coming to an agreement about what will define the project’s success.

Without a detailed requirements agreement, a developer might end up confined to an unrealistic fixed cost and possibly unreasonable time limits. Or the client may end up feeling frustrated with constraints. It is in these cases that defining the scope of a project is most important. Gathering the functionality requirements in the outset of the project can be difficult. Using a basic outline can help with that.

The scope document should generally start with a justification for the project or, in other words, the need it is to fulfill. Next, you might want to include some of the proposed characteristics of the project or, at the very least, an overall description of the desired result. Objectives and criteria for deliverable acceptance would be included as well as any exclusions, or unwanted bi-products. It’s important to try to identify any potential constraints or restrictions upfront so that everyone knows to expect and can also agree that they don’t actively know of any other restrictions which may impede progress.

In some situations, you might want to include what industry types call assumptions. These address how uncertain information is managed as the project moves forward. As you can imagine, this aspect is critical in software development.  Once all parties agree on the scope outlined in the statement, it becomes somewhat of a binding agreement and will define the client-developer relationship as well as the likelihood of continued success.

A scope document allows for a thorough analysis of the software development process, but, of course, having this document in place does not guarantee that issues will not arise. While the document provides the project manager with guidelines for decision-making as the project moves forward, unforeseen roadblocks can become an issue, as is true more often than not. When this happens, the scope may have to be revised. A client will likely accept the proposed changes once the project is underway, recognizing that change is often inevitable in software development, but it can also be decided not to continue the project if the depth of the unanticipated problem is for some reason too daunting or somehow renders the project obsolete.

So, the purpose of creating a scope document is to develop a common understanding as to what needs to be included in or excluded from a project. With a well-outlined document, the software developer will be much more able to complete the project within the agreed upon time and within the anticipated cost expectancy making it paramount to success from all sides.

Extra Nerds offers a dedicated project manager to each client, helping to keep both the developers and clients clear on the scope of the project as well as in the loop on progress or issues as work moves forward. Contact us if you have an idea for a project that we can manage for you!

Posted on February 24, 2017 and filed under Other, 5 Qualities of a Good PM, Development Methodologies.

.NET Core: What is it?

aspnet-51.jpg

ASP.NET Core is one of the subsets of the .NET Framework that was earlier started with the Compact Framework Edition. Its major components include a small runtime from the code base of the .NET Framework CLR, although features like Application domains and Code Access Security are not included. With its unique features, .NET Core is likely to form the foundation of future .NET verticals as it is not specific to ASP.NET 5 or .NET native. It is designed such that the runtimes and Base Class Library (BCL) are general purpose and the format is modular. I know, that sounds so technical, right? We'll explain further...

The deployment is delivered as a set of NuGet packages as most of the library ecosystems are already established through the platform. It incorporates a number of technologies different from Native .NET since they run using the CoreCLR runtime that is compatible with several Windows platforms. It is also open source - incorporating Apache 2 and MIT licenses - and portable, but it is optimized to only use modules from its core library unless it is required by the application. However, the class libraries have been factored to remove dependencies which enables a user a much smaller set of libraries which run independently as a system.

The ASP.NET 5 workload, which is incorporated in the framework, has one special element in that it can run on multiple versions of .NET Core 5 such that two websites can effectively run on the same machine while on different - or similar - multiple versions of the .NET Core framework. This makes it suitable for quick downloads and for use even on devices with minimal storage capabilities. It is also easy to use on several software types such as Linux, and Windows, as well as Silverlight as its design is focused on keeping the deployment considerably smaller. It is easy to use on even non-Windows platforms meaning that the user does not have to worry about the software of their device.

This framework version uses a discrete group of reference assemblies that shows only that which is supported by the runtime. It is much easier to recognize this version as it has a limited number of features which makes it much more effective and easier to cruise. It is also friendly and allows a user to comfortably create and operate full-fledged websites on several operating systems; and is accessible on Windows Phone. With time it will be incorporated in more operating systems for access through additional platforms for a much better experience available for use on all kinds of devices.

At the moment, .NET Core is a framework for Linux and Mac, but some of the key features and libraries are missing. Before, it was impossible to create websites and RESTful application programming interfaces on Linux and Mac, but now it is easier with Visual Studio Code plus .NET Core and can also be made available for set up on Ubuntu.

.NET Core has proven to be the ultimate weapon for web developers to save on time and providing the best possible results and a more fun experience.

Our Nerds know .NET Core and can help you along the way if you need it. In fact, check out our services to see what else we can do for you! And feel free to contact us anytime. We love hearing from you.

Posted on January 20, 2017 and filed under Microsoft .NET, Other.

Creating a Custom Web Application: What You Need to Know

In as much as some expertise is required to develop and bring the application to life and afterwards maintain or improve it so that it generates profits enough to cover the expenses you used to invest in it, custom applications are not always difficult to create.

Basically, knowledge in programming languages, which can be accessed from several research resources and the internet through tutorials, will come in handy in ensuring that the application is functional and also help generate traffic so that it reaches a significant number of users.

Having a good idea puts you on the map and provides a foundation on which to begin the process. First, you need to know what kind of application you want to create and what impact it is going to have on its users. To design the best application, research a number of related web-based and custom applications and select one that appears most desirable and attractive to a greater number of users. For this to be a successful procedure, you will need to do fairly extensive research from as many platforms as you can access: books, the internet, and manuals or tutorials will direct you on how to proceed.

Now that you have narrowed down and identified the application you want to create, the second step is to work on database architecture as well as development for storage, data management, and information where users will fill in their credentials and use them to access the application. There are cloud-based software products that can be employed to provide the tools for organizing the graphics and texts. Additionally, they can be accessed easily from their websites at affordable prices.

Throughout the process, you are bound to make mistakes, but rather than looking at it as a failure, consider it a chance to learn new tactics that you could employ in future projects. Commitment is one quality you will have to embrace while working on creating the application and you will need to dedicate a lot of time and energy to the project. But it won't be long until you establish a process that works for you and begin to enjoy the benefits that will accompany a successful app.

With a few days to dedicate to your computer and keeping your research and reference materials nearby, you should be good to go. It is possible that at some point, however, depending on your knowledge and confidence levels, a developer may be necessary to enlist for help. A professional can guide you through the programming languages in case you are not as conversant with the framework and how they operate as may be required.

Even if you you are keen on flying solo and follow your plan to the letter, you may need some expertise if you want to come up with a custom application without compromise and the exact functionality and design that you desire.  Only you know the level of functionality and general purpose of the application, as well as your abilities. There’s no shame in bringing in an expert who does this for a living rather than compromise quality or functionality.

Whether you are building your own app or would rather just hire a professional to do it, Extra Nerds would be happy to help guide you through the most challenging pieces or the entire process. Our Nerds are experienced, knowledgeable, creative, and accessible. Check our our available services, portfolio, or credentials and contact us to see what we can do for you.

Posted on December 16, 2016 and filed under Other.

Why Are Companies Increasingly Outsourcing Web and Application Development?

Application development, both for the web and for smart technology, has become a major source of revenue for companies around the world. Although completed applications can provide high revenue, they require quite a bit of time and money to develop and to properly test. Since companies are always researching methods to reduce operational burdens, outsourcing web development has become a common practice.  Not only is the original product time-consuming to create, but most web app development continues long after it has launched. Constant updates are needed to keep the application running and up to date and occasional bugs are common threats to any type of software. Consumers want updated and feature-laden applications, so skimping on development and maintenance really isn’t something that can be avoided by companies using applications as part of their business model.

The problem, then, becomes finding people who can work full time on app development and to maintain control over any ongoing issues in an affordable, timely, and efficient manner. Businesses don’t always have the resources to retain an entire staff for this purpose and that’s where outsourcing becomes a valuable alternative. Certainly, some research should go into selecting possible contractors or contract companies to hire so that the right people are put on the project. Checking reviews or testimonials is a recommendation. 

Oftentimes, it is easier and smarter to pay contract developers who have their own hardware and software than to purchase your own and then hire someone or have someone trained on how to use it. It can also be daunting to manage in-house development projects and might be better to just leave it in the hands of someone whose sole job it is to keep up with the industry and who knows the right questions to ask to give you what you want. You still maintain control over the product, but have a field expert doing the technical work. If you have the opportunity, it is always beneficial to have a project manager as the liaison between you and the developers. This ensures accurate and consistent communication, the establishment of a timeline and deliverables, and a clear mutual understanding of expectations. To read in more detail about the benefits of having a project manager, check out our blog series on the topic.

Generally speaking, outsourced labor can be more cost effective in addition to yielding better results, and is ideal for companies that need to quickly launch their applications in order to generate a profit to cover operating costs. Not only do contractors have their own equipment and programs, but they don’t need you to pay for ongoing training, nor do they require benefits or paid leave. Not that we’re against employee benefits in general, but technology moves so fast these days, it can be really beneficial to outsource that piece of your workforce.

In short, outsourcing is a viable choice for companies looking to decrease costs and increase the value of their applications. As the world becomes more connected, it’s only natural to want to tap into the global market. Application development is certainly one way to do that and hiring a reliable and professional team to do that for you could prove invaluable. And of course, Extra Nerds can offer you a project manager and highly skilled developers to see your software, website, or application development project from fledgling idea to fruition and even provide ongoing maintenance.  (C’mon, you knew we were going to close with a shameless plug, didn’t you? But we wouldn’t do it if we weren’t sure that we were right. Let us help you and your business attain awesomeness; you won’t regret it!)

Posted on October 7, 2016 and filed under Domestic IT Outsourcing, Other.

Common third-party ASP.NET web controls: Grid


This post will review some of the most popular form controls used in ASP.NET development – Grid control.

The biggest problem web developers and designers must tackle is how to display as much data as possible to the user without cluttering up the screen or ruining the design flow. Along with this age-old dilemma, we must now also take into consideration responsive mobile-ready layouts. Today, web users are more demanding than ever; they want eye-catching designs, easy flowing form entry and above all performance. It seems impossible that a user can expect to retrieve a set of 1 million data records in a matter of milliseconds. But, indeed, this is the expectation that we strive to achieve.

Previously, developers could easily display their data using the goo-old ASP.NET GridView control, which did provide us with a good template and the capability to redesign, although it meant coding in much of the navigation like paging, sorting, etc. As time moved on, as it always does, things change. For the web-user experience, things have changed drastically. Grid controls need to be first and foremost fast and easy to navigate. Other features that are popular are grouping, filtering, nested data and ability to add/edit/delete.

Compared to several years ago, we now have so many options. This is far from a complete list, as there are many, many controls available. I have had the opportunity to work with each of these :

1. JQGrid – The Frugal Choice

jqgrid-300x99.jpg

Everyone loves JQuery, and rightfully so, as it helps us achieve rapid application development by not having to recreate the wheel. The JQGrid control is no exception. It is the most popular plugin used for Grid controls. The control is an Ajax-enabled JavaScript control. Since the grid is a client-side solution loading data dynamically through Ajax callbacks, it can be integrated with any server-side technology, including PHP, ASP, Java Servlets, JSP, ColdFusion. JQGrid is licensed under the most permissive and free MIT license or GPL. The JQGrid has great community support. Do a quick search on stackoverflow, and you will find your answer. Because it is based on Jquery, it will pick up your Jquery theme, so it is easy to update your color scheme. Try it yourself: www.trirand.com/blog/?page_id=

2. DevExpress – Similar to GridView

For those who are comfortable with the ASP.NET GridView syntax, the DevExpress Grid will make them feel right at home. This control includes all of the normal bells and whistles and also a built-in printing engine for instant ad-hoc reporting. DevExpress Themes implementation is based on Microsoft’s themes and skins technology. There are many rebuilt themes to choose from, as well as the ability to customize. I felt that making theme customizations was a bit too involved and could be made simpler. Overall, it’s a good product with many features. Demos available here: https://demos.devexpress.com/ASPxGridViewDemos/Default.aspx

3. Telerik – The All-in-One

Telerik offers products ala carte; however it is a better value to purchase the DevCraft bundle, which takes care of many of your needs and also has extra goodies for developers like JustMock, JustTrace. The ASP.NET AJAX RadControls have been around awhile and are used widely, therefore the support and community has a lot to offer. The Grid control boasts all of the required functionality plus a slick look and feel. My experience with support has been very responsive.   Check it out: http://demos.telerik.com/aspnet-ajax/grid/examples/overview/defaultcs.aspx

Kendo UI – HTML5 / Javascript

Kendo UI has paired-up with Telerik to offer .NET MVC, PHP, and JSP wrappers for their web controls along with the pure JavaScript implementations. This makes it a win-win for all developers and needs. With Kendo UI, you can target desktop and mobile devices using the cross-platform power of modern HTML5, CSS3 and JavaScript, while never actually hand-coding HTML/JS. Performance is super fast and flexible. Kendo theming is similar to JQuery, where you can chose pre-selected themes or roll your own, and they’re easily tweaked. Since the server wrappers are fairly new, the support at times has difficulty keeping up with demand but is responsive with great examples. Worth checking out: http://www.kendoui.com/web.aspx

Selecting the appropriate plug-in or product can mean a real savings in development time.

As technology moves forward so must we as developers!


Posted on January 14, 2015 and filed under Other.

WebForms vs. MVC?


As an ASP.NET developer, how do you know whether to pick ASP.NET WebForms over MVC  (Model, Controller, View) when developing new web projects?  I tend to follow these 5 simple rules to help me determine which platform suits me best.

Are you working with a team?
You are only as strong as the weakest link.  The skill level of each team member is an important factor in choosing what development platform to use.  MVC has a steep learning curve involved (Yes! I had to go through these grueling stages as well). And if the majority of your team isn’t comfortable working with MVC, it is probably smarter to choose WebForms.

Data Intensive vs. Rich Client Project
If the web project involves a lot of data, data grids and filtering/sorting/grouping options and maintenance pages, then WebForms is the way to go.  If the web project requires a lot of client-side manipulation and ultimate control over the rendered HTML, I would certainly choose MVC.  Implementing Ajax, JSON and Jquery is a breeze in MVC.

Rapid Application Development
If the project has a tight budget and/or deadline, WebForms has a slight advantage over MVC.  ASP.NET Webforms was created with reusability in mind. The familiar drag and drop controls are very helpful in rapidly creating web pages in a few clicks.  However, you lose control over the rendered HTML and more importantly there is a performance hit with the added VIEWSTATE.

Ultimate control over HTML
One of the main advantages to using MVC over WebForms is complete control over the rendered HTML.  Although you tend to type more when creating the web elements manually, you have complete control on styles, properties, etc.  With WebForms, the HTML is automatically generated for you.  This even gets more complicated when using third-party controls, since they have their own different implementation and rendering.  Although it is possible to create HTML elements manually using repeater controls or data item templates, MVC has a cleaner way of doing so.

Testability
MVC was created with testability in mind.  The MVC pattern has clean separation of concerns and fits well with Test Driven Development.  Although possible, it’s really hard to implement automated testing in WebForms with its coupled behavior and event-based model.

Good luck, and happy coding!


Posted on January 14, 2015 and filed under Other.

Can a WordPress theme be customized?


A common scenario I encounter in my work is when a client picks out WordPress theme, but it’s not exactly what he or she wants. The first question clients have is, “Can it be customized?”

The short answer is, yes, WordPress themes can be customized. How it’s done depends on the clients’ comfort level with coding.

In WordPress, it is the theme that determines how the website will look and behave.  It is not the same as the content that is added to the website after the theme is installed and configured with your customizations.

Within the theme exist several files. The two main files are called index.php and style.css. The index file determines what is displayed and where; and the style.css file determines the colors, sizes and shapes of the theme. Without these two files, the theme would cease to exist. You will also find several other files in the theme folder.

To customize your theme, you will need to access the files and edit the code found on the style sheet and header and index files. At this point, you may or may not feel comfortable editing code. If you do not feel comfortable, contact an expert in WordPress to make the edits for you (Like me. I’m a WordPress Nerd, afterall!).  Be sure the person speaks your native language fluently or you will surely have a very difficult time trying to get them to understand exactly what you want. Websites are designed with pixel perfection. Your WordPress developer should be able to speak your language with that same amount of clarity.

After you have made or had someone make your customizations, you are ready to add content to your website and go live!


Posted on January 14, 2015 and filed under Other.

TeamworkPM – Affordable, comprehensive and the simplest solution


TeamworkPM (TWPM) is one of the most intuitive and useful project management tools on the market today. TWPM is a web-based, comprehensive project management solution. I use it nearly every day and decided to share my enthusiasm with the world. It’s a sentiment I share with tens of thousands of users who login and use the program to manage their projects.

Development on TeamworkPM started back in 2007. In addition to providing out-of-the-box applications, it has a developer API that allows third-party developers to more easily  integrate TeamworkPM with existing software.

One of the most appealing things about TWPM can be found in its versatility. The Extra Nerds team, and especially the Project Nerd (me!), wholly rely on TWPM internally for business management and communication, and externally for managing diverse and multi-layered client development projects. TWPM is simple to learn, adapts well to all types of business requirements, and is accessible because of its intuitive and adaptive design. Most importantly, the development team behind TWPM consistently fine-tunes the form and function, based on user feedback.

A key feature of TWPM is that it’s web-based, making it simple for project managers to access their active projects online, in real time. Even better, there is a downloadable application for both Apple and Droid users, making it simple to review and update projects anytime, and anywhere! Combine that level of accessibility with a budget conscious, tiered pricing model and excellent user support – and you have a project management solution that really works. TWPM includes a basic Customer Relationship Management (CRM) tool rounding out its excellent suite of features for small and mid-size business management. If you are cost conscious and looking for a scalable, affordable, and well-supported cloud-based PM tool, you might want to try TeamworkPM.

It’s fair to assume that most business owners prefer to spend time successfully completing lucrative projects, not searching for the perfect PM tool. Sometimes the simplest solution is the best solution. TWPM helps you organize your projects, leaving you with the time to do the most important things in your business and your life.


Posted on January 14, 2015 and filed under Other.

What is the best way to price a project?


Like any good IT company, we are faced with the question of how to fairly price project requests that come to us. We want to provide a good value to the customer, yet be able to pay our employees and keep the business viable. So, how do you price projects that will be of value to the company AND provide value to the client?

To answer that question, one needs to understand the cost of completing a project. Like most manufacturing projects, IT jobs comprise direct cost and overhead costs. In this case, the direct cost is for the developer. Overhead costs include the sales department, project management, any brick-and-mortar costs, etc.

Direct costs are usually determined by the developer. Finding a good developer who works at a competitive rate is a rarity and is something every company is working to find more of. Read Sid’s blog post here for a great strategy on finding reliable and cost-effective talent. If you are able to find a good developer who works at a good rate, then your company can deliver even more value to your clients.

Overhead cost may fluctuate somewhat, but every company needs to understand what their overhead costs are going to be. Once you understand your overhead cost, you need to be able to project what your sales will be. Then, you can split your overhead across all of your sales.

Our deep understanding of these two key elements of project pricing results in proposals that benefit everyone. We work with our developers to come up with an estimate of their direct cost; we apply the overhead cost; the total is what we submit to our client. It’s a recipe for success that Extra Nerds has consistently provided. It results in a satisfied client, a happy developer and a healthy IT firm.

This is the ideal win-win-win.


Posted on January 14, 2015 and filed under Other.

Looking for affordable talent? Consider sourcing from rural U.S.


Outsourcing your IT projects to a third party can be challenging, but the benefits can far outweigh the risks if you know what you’re getting into and are prepared to deal with some of the common pitfalls.

Most companies are familiar with the concept of outsourcing. A basic unit of work (a project) requires completion, and the best option for completing that project is to hire an outside contractor. In some cases, a company doesn’t have the necessary resources or skill set to complete the project in-house, or it’s more affordable to assign the project to an outside agency. It’s for these reasons that companies seeking help with IT projects typically look to outsource projects to India, where labor is cheap and skilled IT professionals are abundant. Unfortunately, many companies learn the hard way that you get what you pay for, and dealing with cheap IT talent in foreign countries can be fraught with a slew of management headaches, such as coordinating efforts in differing time zones, overcoming language barriers, and ensuring legal and tax requirements are met.

Rural sourcing in the U.S. aims to retain the benefits of providing businesses with outsourced, skilled IT professionals at an affordable price while also eliminating the woes of dealing with IT professionals in foreign countries. Highly skilled IT professions located within the U.S. in rural areas are available if you know where and how to look, and they charge hourly rates that are typically on par with workers in foreign countries. These rural areas are often located near college towns and thus consist of highly skilled college graduates who are experienced with remote IT work and charge a low hourly rate. Their rates are low because of the low cost of living in their rural areas, yet their abilities are on par with IT professionals in larger cities because of their quality university training.

In many ways, rurally sourced IT professions are a better choice over city-dwelling IT professionals because of their vast experience working remotely as a necessity of their location. Rural IT professionals rely heavily on good communications with their clients and are thus very responsive to emails and phone calls; they are able to easily utilize other communication technologies such Skype, Google Hangouts, and screen sharing tools such as Join.Me. This provides companies with an opportunity to employ highly available, highly skilled IT professionals who are native English speakers, registered with their state governments, able to provide necessary tax forms, and work in the same time zone as the businesses that employ them. Further, organizations exist that facilitate the search for these contracted professionals and even facilitate communications, invoicing and payments.

Businesses interested in rural U.S.-based sourcing should have a look at websites like ExtraNerds.comElance.com, and Freelancer.com. These services provide skilled IT professionals and simplify the process of outsourcing projects to U.S.-based IT professionals. Companies should be sure to have their project scope documented well and in as much detail as possible. This is true not just for rurally sourced projects but for any project being outsourced to a third party. Doing so will eliminate or at least minimize the amount of confusion between the business and the contractor over what the specific deliverables are. These finer points are what can kill a project, and it’s yet another reason why U.S.-based companies would do well to contract with native English speakers. When outsourcing any project, clear communications on project goals is vital. To eliminate as many obstacles as possible and maximize the likelihood of a successful project outcome, sourcing in the rural U.S. is a highly recommended option for many businesses.


Posted on January 14, 2015 and filed under Other.