Filtering by Author: Allyssa Mefford

What are the responsibilities of a Development Team in Scrum Development?

Recently, we posted a basic introduction to Agile development, particularly Scrum, and then followed up with a little detail on the Scrum Master, and the Product Owner. As a follow up and final post in our Agile-Scrum blog series, we’ll talk about the Team in Scrum Development.

As you are well aware by now, Scrum is a lightweight Agile project management methodology with broad applicability of managing and controlling all kinds of incremental and iterative projects. It is one of the most widely used methodologies due to its ability to deliver the best performance.

The development team in the scrum is designed to consist of approximately 10 people - give or take, depending on the project - who address complex problems creatively and productively. They are a team of professionals who are empowered by the organization to manage their own work. Team members are generally cross-functional and combine to bring to the table all skills necessary to create a product increment. A Scrum team consists of a variety of skills in the web industry ranging from JavaScript, Angular JS, HTML, CSS, web forms, MVC, and Telerik. Therefore, the team brings assurance to the client that they are dealing with your project efficiently to produce the desired results.

Responsibilities. The team can implement the final website and application from simple to complex highly integrated business web applications. The Scrum team, together and individually, is accountable for their actions and deliverables. It could be that each individual developer may have a specific skill but the whole team is accountable for web development.  There is a Scrum Master who is responsible for helping the scrum team understand the scope of the project and encourages everyone to maximize the value created by the team. The Scrum Master is responsible to the Product Owner and ensures that they understand how to arrange product backlogs to maximize the return on investment. The Master is responsible for facilitating the Team to implement events as expected. She or he also provides advice to those outside the scrum team on which interactions are valuable and those that can be less helpful. 

Sprint planning. The scrum team is responsible for creating a sprint plan in which they plan the events. Sprints usually consist of; daily scrums, sprint review, developed work, and sprint planning. The purpose of the sprint is to accomplish a particular task or deliverable. The lifespan of a sprint is usually one month and it allows for inspection, and adaptation of a process. They usually limit risks to complex matters that might arise when there is a long sprint. A sprint review or retrospective looks at the work accomplished and the work still on the table. A demonstration is sometimes presented and then next steps identified. Obviously, incomplete work cannot be presented to stakeholders.

Daily Scrum. The team is also responsible for the daily scrum. This is the time when scrum members ask the questions of ‘what did I complete yesterday?’ and ‘what do I plan today?’, and ‘is there any impediment that will prevent the team from accomplishing the sprint goal?’ The scrum master captures all the potential risks or issues that may delay the project and displays it to the team onboard. Only the development team is allowed to participate in the daily scrum. Each member is expected to be on time and participatory.

So, there you have it. This brings to a conclusion our series on Agile Development, in particular the role of Scrum management. And don’t forget that Extra Nerds is here for you should you need a team to manage and create your next IT project!

Posted on July 28, 2017 and filed under Agile Development.

The Core Concepts of Agile Software Development, Particularly Scrum

In last month’s blog, we discussed Agile software development and why we think that it’s superior to the Waterfall.  Now we want to break down the core concepts, and delve into one of them in particular – Scrum. (And no, Aussies, we’re not talking about rugby).

The Dynamic Systems Development Method, or DSDM, mostly used in the UK, is probably the original agile development method. It existed before the term ‘agile’ had even come to pass, but is based on all the same principles we’ve come to know as agile.  

Extreme Programming (XP) is a more radical agile methodology, concentrating more on the software engineering process and addressing the analysis, development, and test phases with unique approaches that have a significant impact on the quality of the final product.

Scrum, a subset of Agile, concentrates on how to manage tasks within a team-based development structure.  Scrum is the most popular and widely adopted agile method, which is why we’re going to focus on it for the sake of this blog.  It’s relatively simple to implement and addresses many of the management issues that have plagued IT development teams for decades

Scrum is a lightweight Agile project management methodology with broad applicability of managing and controlling all kinds of incremental and iterative projects. It is one of the most widely used methodologies due to its ability to deliver the best performance. Over the last decade, Scrum has been revolutionized with significant investments of time and expertise.  It has garnered increasing popularity among software developers due to its proven productivity, its capability to act as a wrapper for a number of engineering practices that are promoted by alternative agile methodologies, and for its simplicity.

This methodology requires the use of development cycles known as Sprints. In software development, a sprint is a set duration of time during which specific work is to be completed and available for review. With Scrum, the owner of the product can work closely with the development team in order to identify and make a priority of the system functionality; this occurs in the form of a product backlog. This product backlog outlines non-functional requirements and bug fixes among other features, all of which are needed to deliver successfully a working software system. Priorities are driven exclusively by the client, or product owner, and cross-functional teams will estimate and sign on to come up with increments of the software created during successive Sprints. This process typically takes about 30 days, but all projects are different so take that statement with a grain of salt.

As soon as a Sprints backlog has been committed, no additional functionality can be included in the Sprint except by the team. Once it is completed and delivered, the product backlog is then analyzed and re-prioritized, if necessary, after which the next set of functionality is employed for another Sprint. This makes it easier to manage your product backlog. The overhead of the entire process is kept as minimal as possible in order to maximize the span of productive time available to get useful work done.

Scrum methodology has, for a number of reasons, been proven to scale up multiple teams across considerably large organizations with even more than 800 people. Its processes have enabled organizations to adjust fully and smoothly to the rapidly changing market requirements and produce products that meet the evolving goals in business. An agile Scrum process could benefit the organization in a number of ways:

•             Coping better with changes and expected evolutions in the field of business
•             Increasing the quality of available deliverables
•             Providing the project owner with more control on the schedule and its state
•             Providing better estimates while investing lesser time in coming up with them

That which distinguishes Scrum from other subsets of agile software development methodologies are the unique concepts and practices which are split into three categories: Artefacts, Time Boxes, and Roles.  Often Scrum is used in managing software and product development complexities. It increases productivity considerably and similarly reduces time to benefits relative to classic waterfall processes. (By the way, we'll be getting more specific about Artefacts, Time Boxes, and Roles in subsequent blogs).

Aside from the aforementioned benefits of the Scrum framework, there are other additional, more inherent advantages. Most importantly, Scrum provides a solid structure for the facilitation and promotion of team work. It can help the project manager to analyze the workmanship of the team or colleagues and potentially determining who is the most effective. The precise definition of roles allows managers to equitably distribute duties based on the skills of the developers without discrimination. And, this, ladies and gentlemen, makes Scrum a great option for any business that cares about output and performance.

Stop by next month when we delve more into the Roles aspect of Scrum - Agile software development. And, in the meantime, check out the services to see what our Nerdy teams can do for you!

Posted on April 21, 2017 and filed under Agile Development.

When do I build my own web app versus hiring a freelancer?

When do I build my own web application versus hiring a freelancer? That is a common and important question for many business owners who want to integrate a digital presence into their marketing or operations. Ironically, the mere fact that you are presenting the question, probably gives you the answer. But, let’s talk about it in more detail. It really comes down to three issues – time, cost, and expertise.

Many persons instinctively like the idea of building their own app because, of course, why wouldn’t they.  We all think about owning our resources and controlling costs as much as possible.  Logical, right? The problem is that there are many hurdles one must overcome in order to build a web app. First, you would have to learn the process if you do not already have that knowledge. When you are considering an app design, several questions arise: ‘Will the app be simpler to use than a web page?”, ‘Will the app feel like a complete product?’, ‘How does the web app make my operations more proficient?’ and so on. Several key elements will stand out in response to these questions - namely efficiency, speed, and simplicity.  Any professional software specialist will tell you that it takes a certain level of experience to design an app that can meet all these necessary criteria. Acquiring that level of skill can take time, not to mention the time it takes to properly build the software. This is time which you may not have to dedicate if you are a business owner or manager.

Another common consideration is cost. Is it worth it to spend a bit to get the quality and expertise of a professional? While it is understood that folks need to watch their budgets, it would be wise to include an allocation for technological marketing; this is not an area in which you want to skimp, especially in this day and age. First, if done well, a web app will pay for itself pretty quickly – called a return on investment (ROI) – in increased exposure and sales in addition to presenting a professional image. A poorly designed app can be detrimental these days.

In order for any app to be successful, it is essential that it be coded well. An obvious statement, yes, and yet sometimes people downplay this fact in favor of saving on cost or because they just don’t realize the intricacies involved. This can lead to disastrous consequences and can end up costing more in the long run when you lose business and have to pay a professional to fix the mistakes. Let’s say that you have some basic knowledge in coding and you want to design your own app. The web app that you are creating might contain redundant lines of code as can happen when folks are less experienced; it could also include coding errors or other unforeseen issues, all of which will make the app slow and ineffective and may even causing it to crash on its intended users. 

Now let us say that you’re decent at coding and manage to avoid potential pitfalls. Then you encounter the Graphical User Interface (GUI, pronounced “gooey”), which is a type of user interface that allows users to interact with devices through graphical icons and visual indicators rather than text-based interface or text navigation and is an important part of application programming. Basically, it deals with how the elements are set up on the app page. This is a major factor as to why people prefer some apps over others – an app cluttered with elements or an app which his too sparse can be a deterrent for potential users. While coding makes the app efficient, GUI makes the app simple to use and gives it a sense of completion and a final product.

A good software developer will make you feel comfortable during the design and development process, communicating often, so that you can share your vision and they can bring it to fruition. These folks do this for a living and they understand the fundamentals of design and performance optimization; they have the time, the flexibility, the training, the experience, and the expertise to do it well. And, in many cases, they can even advise on the launch and post-launch marketing utilization strategy as well as offering ongoing maintenance and support.


Many people take it upon themselves to design and maintain their own web app and then wonder why they don’t acquire the traffic or usage they anticipated. One cannot successfully market a poorly performing web app because user reviews will deflate any attempts to do so and negate any cost savings there may have been.  Simply put, it is far better to utilize a freelance programmer’s comparative advantage and expertise to create a valuable product and save yourself some much needed time, effort and, in the long run, money.

Speaking of hiring expert freelancers, Extra Nerds would be happy to discuss with you any needs you have for building a website application. This is what we do and we do it well. We’d love to help you to turn your vision into a reality! Contact us anytime for a quote or to discuss our variety of services.

Posted on July 1, 2016 and filed under Domestic IT Outsourcing.

CSS Tips and Tricks: Part 5 of 6

Vertical Content Alignment

In our introductory blog in this CSS series, we demonstrated display;none and its uses. The second installation provided an overview of CSS3, while the third discussed CSS Syntax. The fourth added a few more general tips and tricks to the arsenal, helping readers take full advantage of CSS and each one of its updates. Now, let’s get specific and talk more in depth about vertical content alignment, which can be a challenging element to working with CSS.

Cascading Style Sheets (CSS) are normally used to make a document more presentable where a style sheet language is used so that it defines the look and formatting usually written in markup language. In most cases, you will find that CSS is used to style a variety of web pages as well as user interfaces that are written in HTML, XHTML and any other sort of XML document. You can simply learn some simple CSS tricks that will equip you with necessary CSS skills, thus ensuring that you are successful in producing a quality content page.

There are quite a number of CSS tricks that we can use to keep our websites cool and attractive. These tricks will help you to improve the quality of your web design since they are easy to implement while also being user-friendly. Below are some important tricks that you can use to align your content vertically, in order to ensure that the quality level of your website is high and, ultimately presentable at a glance.

Absolute positioning. One of the most important tricks that we will feature is the absolute positioning CSS trick for content alignment. In your document, you will realize that you have two <div>, one of them will be the container while the other will be the child element which simply refers to the content. You will be required to start with the container element where you will position it to be relative while the child element is positioned to absolute. This will allow you to freely place it across the container thus allowing you to proceed on easily. So that you will achieve aligning it vertically, you can shift the position of the child element from the top in that it lays half way the height of the container. Then pull it up by half of the width of the child element, thus ensuring that your alignment is fantastic.

Use of CSS3 Transform. This Cascading Style Sheet trick has always made it easy for you to put any of your content at the center. For example, if we have similar HTML structures as the preceding method whereby we have one parent and one element having a — 50% from the top. The use of CSS transform will ensure that there is also a translation of — 50%. For more detailed information on CSS3, please refer to our second CSS blog post on that very topic.

Padding. Another CSS trick that we can use to form illusion in vertical alignment is the use of padding. It is a simple step in that will require you to set the top and the bottom part equal to each other. This trick will be effective if you do not adjust your container in a fixed width, but simply set your width to auto.

Use Line Height. The line-height property will be effective if you want to align a text vertically when you have only one line of element within a container. You will be required to set the value of line-height to a value that is nearly the same as that of the container height.

These are some of the surefire CSS tricks that you can use to align your content vertically thus achieving a high-quality web content. Contact Extra Nerds for these tricks and be sure that you will succeed in your next web designing project.

Hopefully you have learned some helpful hints on CSS in this blog series. Stop back next week for our final installation which will help us to understand modern CSS typography and font styling.

Posted on September 11, 2015 and filed under CSS Tips and Tricks.