Stay updated
on our blog

  • SerpicoDEV Blog

Web Development: ASP.NET or PHP?

Posted on March 19th, 2013

Web Development Platform ComparisonWhile web development can be done a variety of coding platforms, it often comes down to two languages: ASP.NET or PHP. Both offer benefits the other doesn’t have and most of the time, it will depend on what type of web development project you have. Some of the major considerations are cost, project size, and performance.

Cost of Web Development

The cost involved in each platform is usually three-fold: price to use, third-party hosting price, and development cost. While both are very low cost, ASP.NET does need some extra budget considerations because it runs on Microsoft’s IIS web server. So take into consideration you will have to pay the standard Microsoft OS cost to use it. PHP is free and can run on the Apache web server on a Linux OS. Both of these are also free saving you big bucks in avoiding the Microsoft products. Third-party hosting price is not high for either but does have some costs involved. Comparatively, PHP is found to be a bit cheaper in that category. Development cost are relatively similar for both coding platforms. ASP.NET is more rapid application development that can take much less time so the overall cost of development is minimized. PHP applications can also be developed using free tools but there is more coding involved that will take extra resources. Time equals money in these scenarios.

Scalability and Project Size

Consider how much your project or application may need to be expanded as your business grows. ASP.NET scales very well and is generally recommended for larger applications that will constantly be in use. PHP is usually recommended for small to medium sized projects that may not have as much stress. It’s important to properly spec out your requirements analysis when creating your product roadmap so you can choose the platform that is most efficient at the beginning. You don’t want to start with PHP and realize half way through the project that the application is going to grow beyond it’s capabilities.

Performance

Obviously you want to choose a platform that will offer great performance for your web development project. There is one distinct difference between ASP.NET and PHP that needs to be considered. ASP.NET is compiled and PHP is interpreted, meaning it is compiled and executed line by line. Thus, you will get faster performance with ASP.NET based on compiling speeds. This is why it’s generally recommended to use ASP.NET for larger applications where compiling happens quickly. PHP is usually faster for smaller program so if you are confident your application will not need to be large, PHP is quite beneficial.

These are just three of the considerations to keep in mind when choosing a platform. There are several others and our development team created a matrix to guide you in choosing the right language for your web app. Feel free to right click the image and save to your computer for easy printing and referral.

Web Development Comparison

For more information on Serpico DEV and how we utilize user stories in Agile development, please contact us.

5 Benefits of User Stories

Posted on March 1st, 2013

User StoriesUser stories make software requirements easier to communicate between the client and technical team.

In Agile software development, user stories capture the ‘who’, ‘what’ and ‘why’ of a requirement in a simple, concise way. User Stories are designed to keep development teams focused on customer needs, and serve as the driving force behind quickly delivering valuable, high quality software.

Anyone that has used the Agile software development process has probably experienced communication issues between the development team and client. The issues become even larger in a remote or virtual team setting.

Creating user stories is a great way of opening discussion and bridging the communication gap between the client and development team. User stories created by the product owner (typically the client) are written in a non-technical format that fulfills a business requirement for the project. The development team then creates the needed tasks to satisfy the client’s business requirements. Creating the tasks of the project this way allows everyone to understand what is needed to achieve the requirements.

If you have worked with user stories before, then you probably understand the keys to writing effective user stories using the INVEST model. A Google search of the term will lead you to hundreds of good articles.

But from a client and business standpoint, you may be wondering what advantages user stories actually provide for a development project.  Here are 5 benefits that user stories provide:

Creating user stories is easy

User stories are easy and fast to write. Clients with no software development experience at all can write them easily to communicate their goals. Not a lot of time or money is invested in writing them; therefore, if they are changed or never used, the team has not lost a lot of time in developing them.

Written by the “user”

User stories are ideally written by the “user” or client in most cases. This allows the development team to spend time with the user and better understand the functionality that they want. If a client is not comfortable writing the user stories for their project, the development team can step in and assist them, enabling a better understanding of what the end product needs to accomplish.

Easy for remote development teams

User stories are simple enough that a freelance or outsourced team would easily be able to understand the end goals. Finding a productive team collaboration platform and a centralized area to communicate user stories will help the client easily communicate the stories to their remote team, no matter where they are located. This will help alleviate those communication challenges that come with trying to pass user stories along via email or on a conference call.

Creativity

The user story allows for the development team to be creative in designing the product. Clients give a basic outline of the needed functionality, letting the designers and developers run with it. This lets the development team create the product in a way that works on all platforms and is easy to integrate.

Faster and cheaper

Client user stories help development teams better estimate the development roadmap needed to complete the project. More accurate estimates and roadmaps lead to quicker development and faster delivery times, hence a cheaper project. Developing quality user stories through the project can help improve the project’s overall ROI by expediting the delivery process.

User stories help keep the client and development team on the same page for the requirements of the project. This leads to more productive collaboration between the parties to make the delivery process more efficient. Does your development team utilize user stories? How has it improved the client/technical team communication process of the project goals?

For more information on Serpico DEV and how we utilize user stories in Agile development, please contact us.

8 Ways Entrepreneurship is Like Spartan Race

Posted on February 14th, 2013

SerpicoDEV CEO Vincent Serpico took part in the Spartan Obstacle Race this past weekend in cold, wet conditions (yes, even in Phoenix). A lot of preparation and training at the Rock Star Boot Camp helped him master all the obstacles in the race. Rock Star is no regular boot camp as the sense of team camaraderie and encouragement from other members makes the experienced unmatched.

Spartan Race Serpico DEVWhile entrepreneurial software development and the Spartan Race are two completely different things, there are parallels between them. Both are hard, require a lot of preparation, and have a sweet reward.  You will pivot and have to make quick decisions in both. But when it’s all said and done, you can look back and truly appreciate the journey to reach your goal.

So how do the two compare? Let’s take a look at the analogs between the Spartan Race and entrepreneurial software development.

Hire the Right Team

Both require that you have the right team around you for success.

In software development, you must decide whether to hire a team or do it yourself. It’s also important to ensure the right team is hired. Do they align with the vision of your application and business goals?

The Spartan Race is similar. Will you train with another person at the gym, go to a boot camp, or hire a personal trainer? Or will you do it on your own? Often a team approach is better for encouragement and motivation on those days you need something extra, just like in entrepreneurship.

Plan Ahead

Planning is essential for both.

Entrepreneurial software development requires planning at the beginning so your team knows what to develop and when. This keeps the team focused on the goals of the project. Sure, changes will be made to the requirements of the project but the overall goal is planned for at the start.

The approach to the Spartan Race requires planning well ahead of the race date. What kind of training is going to benefit you the most? Having a clear plan of what kind of training you need to focus on and how you are going to do it is key to a successful race day.

Manage Progress

Keeping track of your progress helps you stay on track towards your goals.

Entrepreneurship is a special scenario where you are building a business from the ground up. Making sure you are staying on track and making progress from day to day is important to a successful business. If you don’t know you’re progress, you can’t make the right decisions to be successful in the future.

It’s no different with the Spartan Race. Monitoring your progress to ensure you are becoming properly prepared as race day approaches will make the whole experience that much better. Because you definitely don’t want to start the race and realized you should have trained more.

Spartan Race SerpicoDEV

Obstacles

You will always need to face and overcome obstacles.

Entrepreneurs will face obstacles such as HR issues, cash flow, accounts payable and receives, competition, investors, deliverables and much more. Dealing with obstacles head on and overcoming them is how entrepreneurs rise to the challenge and become successful.

Spartan racers will face obstacles… literally! Like a 25-foot rope climb, an 8’ wall hop, and a mud crawl under razor-sharp barbed wire.

Accountability

Team accountability is key in getting the things accomplished that you set out to do.

In entrepreneurial software development, accountability is key for delivering a successful project. You and your team need to be accountable for what is being developed and the delivery schedule. If anyone slips up, the whole project can be derailed.

Getting up early in the morning to train for the race can get old. This is where your individual accountability comes in. Are you keeping your training regimen in tact? If you belong to a boot camp, are you training mates encouraging you? Not holding yourself accountable and missing a day or two of training can make the race experience quite painful.

Communication

Great communication with your team creates a synergy that can lead to new ideas and motivation.

Software development is a process that requires everyone to stay on the same page. Constant and open communication makes sure of this so everyone is moving in the same direction. Collaborating with your team helps identify solutions to complex problems and resolve issues that pop up quickly.

Communication isn’t only between you and another person. When training for the Spartan Race, you have to listen to what your body is telling you. Overtraining happens quite easily so if your body is telling you to hang it up for the day, then hang it up. If you have a trainer, communicate with them daily on your training, how you are feeling, and concerns. They have the expertise to help you out.

Pivots Happen

Things out of your control will force you to pivot and adjust no matter what.

During development, changing requirements or market conditions can adjust your course. It happens all the time. Being able to properly pivot for these adjustments will keep your project in tact and on the timeline towards delivery. Thinking about this ahead of time and developing software that is scalable will make pivoting easy.

When training for the race, certain parts of your body will respond better than others. This is where you may need to adjust your training routine. You may need to start focusing more on endurance or agility if they aren’t coming quite as easily. Maybe your strength is coming along great, but it’s causing your flexibility to suffer. This is where you may need to pivot.

Spartan Race SerpicoDEV

Reaching Your Goal

That day you reach your goal, whether it’s software delivery day or race day, is rewarding. You can look back at all the hard work and the path it took to get there.

Entrepreneurial software development takes a lot of twists and turns. Some days are stressful and you often have to work long, odd hours. But delivery day, when your project is complete and you can see your developed application, is so sweet. You know how much work was put in and that’s often the reward, not the compensation you get from it.

Training for an event like the Spartan Race requires dedication and a lot of desire to keep you going. You put your body in uncomfortable situations and have to find time to keep training among everything else going on in your life. But like entrepreneurship, when that day comes and you’ve finished the race, the level of gratification is unmatched. You know how much work was put in and the path it took to get there.

Conclusion

When it comes down to it, entrepreneurship can be compared to any difficult event that you have to prepare for and work towards a goal. The road can be long with good days and bad but when you reach that goal, whether it’s your millionth customer or a successful exit, you look back and know that you accomplished something that not a lot of people have a chance to. The experience of starting a business from the ground up and making it a success is the reward. And no money in the world can compensate for that.

For more information on Serpico DEV and our software development services, please contact us.

3 Tips for Choosing an Outsourced Team

Posted on January 30th, 2013

Hiring An Outsourced TeamSoftware developers all over the world are so talented that outsourcing is becoming a competitive advantage. Businesses can easily find great development talent at low costs via online marketplaces like Elance.

But outsourcing part of your software development team does take strategy and planning. There are many things to consider when outsourcing a project to a virtual team. We take a look at 3 things that have proven to be the most important at Serpico DEV.

Have the Right Expectations

The provider of the outsourced team is usually a separate company with its own goals, motivations and agenda. But the path for the success of the software project still rests with the company using the outsourcing services. Ensure sure that the requirements are well defined and that appropriate course corrections are made early on in the project’s lifespan.

Making the whole exercise successful can only happen if the right expectations are in place from the beginning of the project. Have a well thought out plan for the outsourced team and make your expectations clear. Clearing up any miscommunications on your expectations from the start saves valuable time. Failure to do this will lose you this time and the opportunity costs may be a lot higher than what the outsourced team can compensate for later on.

More than Just Cost

Cost is a major factor in many outsourcing decisions, especially offshoring. Selecting the least expensive vendor often backfires and ends up costing the client much more than initially thought. Choosing the least expensive vendor just means you have chosen a company with very little leeway in its profit margins. It also may be that the outsourced team is just not very experienced or good.

Make your decision based on track record and quality of the team, even if it does cost more. You want your project to be completed on time and within budget and the cheapest team you can find may not provide that. Successful vendors may be better bets even if they’re bit more expensive, given the realities in outsourcing and offshoring.

Build Effective Communication

This may be the most important aspect of choosing an outsourced team. Constant and quality communication among all stakeholders in the project is essential at every stage of the development effort. The project manager of the company is eventually responsible for the success of the effort and may need to use every communication mechanism available to communicate with every member of the development team. Using only any one method exclusively may not work as effectively as using all of them on a schedule.

Oftentimes a virtual project management tool can be used to facilitate this communication quite well. These tools often eliminate the need for lots of emails and conference calls as the project manager can see what everyone is doing at any time. Agile methodologies are more realistic when it comes to making sure communication is facilitated properly. It will prove very beneficial in quickly identifying issues or bugs that may surface before they become too large of an issue.

Conclusion

Obviously there are many more considerations when building and leading an outsourced team. Once you select the team based on cost and the right fit for your company, effective communication really is the key. As a project manager, if you can get the outsourced team to communicate and collaborate on a consistent basis, you will see much higher project success rates.

For more information on our software development services, please contact us.

Daily Scrums Keep Your Team On Track

Posted on January 11th, 2013

Daily Scrums

If I made the fortunes for fortune cookies, my next fortune would read, “You will be more successful when you hold daily scrums”.

Daily scrums are a valuable tool in keeping a team on track to achieve the goals they set out to do. They keep teams organized and “on their objectives and to help them avoid being thrown off track by less important concerns.” EffectiveMeetings.com outlines 9 rules to starting and maintaining productive scrums.

At Serpico DEV, each project’s day starts with a quick team meeting, or “scrum”. A scrum should last about 15 minutes and focus on what everyone’s goals and challenges for the day are. It’s a great way for everyone to get on the same page. Who joins the scrum? Everyone does. Project managers, developers, team leads, testers and designers. We believe that everyone on the team needs to be at the morning scrum. When everyone knows what everyone else is working on, a synergy unlike anything else is created. Projects get done faster and more efficient.

If you are working with a remote team, the morning scrum is not a “nice to have”, it’s a survival tactic. It’s a way to create a sense of accountability in the whole team, while at the same time getting people, who are spread out by thousands of miles, talking and communicating.

Start experimenting with daily scrums today. Learn more about scrums by contacting us.

Client Spotlight: Delegate It – “We Sweat the Small Stuff.”

Posted on December 20th, 2012

Our client spotlight this month gives us an inside look at Delegate It led by Melissa Serpico. Delegate It helps entrepreneurs and small businesses run more efficiently by handling the day to day tasks that are often overlooked in the hustle and bustle of running a business. Serpico DEV works closely with Delegate It as the developer of their company website.

Helping Small Businesses With Everyday Tasks

The Company

It’s a small business owner and entrepreneur’s dream.

Getting behind on those everyday tasks while working to make your small business successful? Delegate It helps businesses catch up by providing a diverse team to handle the tasks that get lost in the chaos that comes with running a business. Whether it’s a Flash presentation or inventory fulfillment, Delegate It gives businesses a peace of mind that the small stuff is getting done right.

The goal of Delegate It is to provide as much value as possible for their clients. They do this by only charging for the tasks completed, saving the business time and money. When a new business doesn’t have the resources to hire full-time employees, Delegate It steps in to handle the tasks that aren’t high priority, but still must be completed.

The wide range of services, skills, and abilities of the Delegate It team allows them to take on almost any project from any business. “We are always up for a challenge and the opportunity to learn something new” said Serpico in an article recently featured in Really Great Magazine. They work to align themselves with a business’s goals to create a synergy that can yield incredible results.

Delegate It provides everything from data entry to custom web design. They can also assist in delivering superior customer service for a business to keep clients coming back again and again. If you’re a small business with tasks and projects that keep getting pushed back on the priority list, Delegate It can step in and get things done in an efficient and cost effective manner.

For more information on Delegate It and their services, visit their website and drop them a line.

Our Job

Serpico DEV’s job was to create a web presence for Delegate It that was very professional and modern while still being user-friendly. The website was built using PHP combined with an HTML front-end user interface. Delegate It and Serpico DEV’s development team collaborated daily using an Agile approach to ensure the project was moving forward on schedule. This open channel of communication between Delegate It and Serpico DEV helped the project be delivered well ahead of schedule, saving both companies’ time and money

For more information on Serpico DEV and our software development services, please contact us.

Switching to Agile Development? Don’t Forget QA

Posted on December 13th, 2012

QA Testing with AgileSo, you’ve decided to go Agile? Congratulations on taking that first step towards faster project delivery, higher quality software, and improvement on your ROI. Transitioning from the traditional waterfall approach to Agile can be an involved process but maybe the most difficult thing is making the decision to do so.  And you’ve conquered that.

Several things have to take place in this transition to Agile. Updated documentation, training, and new roles have to be defined to accommodate the change. Terms like Product Owner and Scrum Master are the new talk.

Businesses have to make this transition carefully. With so many new processes being implemented, things get overlooked and sometimes just plain forgot. One of the most important parts of the software development life cycle often falls victim to this: QA testing.

While QA testing is rarely forgotten completely in Agile development, it does require one of the biggest changes. What used to be a process of testing at the end of development with waterfall has morphed into constant testing throughout the entirety of the project. That’s a whole new way of thinking for traditional testers.

But a little massaging and nurturing of the traditional QA process can make it very successful in Agile. Here are a few tips to help make the transition smooth and successful.

Involve the Entire Agile Team

In Agile, everyone on the team—from tester to developer to product manager—needs to be aware of quality throughout the development process. Making it part of their daily workflow can lead to faster discovery and remediation of defects helping reduce time, effort, and cost in the process.

While the tester is the person in charge and ultimately responsible for the quality process, it never hurts to have another set of eyes looking at the product.

Test Early and Often

In Agile projects, development takes place in small iterations called sprints that always end with a functional release. This means testing has to take place early and often in the project. Unit tests, functional tests, load and stress tests should be included with every sprint beginning right away with the first one.

Some changes in the next sprint may require going back and testing something again. But consistent testing, even if it requires some repeat, will ensure earlier detection of issues that could otherwise stall the entire project. Earlier detection easily offsets the cost of some retesting.

Communicate, Communicate, Communicate

Sound familiar? We’ve stressed the importance of communication in the Agile setting over and over and you won’t find too many Agile pros that don’t agree. The same thing applies for QA.

Constant collaboration back and forth between QA and the development team ensures little bugs don’t turn into project-halting rework. Scrum Masters should try to create wide open communication channels with constant status updates and daily scrum meetings that makes sure everyone is on the same page. Not only will this help find defects quicker before they spin out of control, but also improve teamwork that can often speed up overall project delivery.

Oftentimes a tool such as Spotlight can help manage QA tasks and communication among the team to make sure nothing gets swept under the rug. It helps with organization and tracking of detected defects throughout the entire project.

Conclusion

QA testing can be very successful in an Agile setting and actually much more effective than with traditional waterfall. Defects can be found quicker and remedied sooner, saving the Agile team lots of headache later on. While it might be a new experience for developers and testers, the end result will be a new level of teamwork that can move software projects through the development life cycle much quicker. Plus, increased and improved teamwork just makes everyone’s job more enjoyable.

For more information on our software development services, please contact us.

Manage Remote Project Teams? Spotlight People & Project Manager Can Help

Posted on December 7th, 2012

Spotlight Software will launch Spotlight People & Project Manager, a cloud-based application that merges Agile project management with social network communications to enhance collaboration among remote project teams. SerpicoDEV is proud to be the software developer for Spotlight People & Project Manager. Below is their press release.

Spotlight Software Boosts Communication and Makes Remote Project Teams More Effective with Launch of Cloud-Based Spotlight People & Project Manager

Project management has gone social. The launch of Spotlight People & Project Manager at spotlightppm.com solves the communication and collaboration issues that face remote project teams today. Spotlight merges the efficiency of Agile project management with the power of social networking to create a cloud-based project collaboration platform that increases productivity and decreases time to market for projects driven by remote teams.

Spotlight People & Project Manager

Remote teams are now able to communicate more effectively with the launch of Spotlight People & Project Manager, a SaaS solution that combines the efficiency of Agile project management with the power of social network communications. All remote project teams face the challenge of fragmented communication, which can result in a project failure rate of up to 50% (Source: Aberdeen Group). Instead of focusing solely on tasks like other project management tools, Spotlight takes the added step of focusing on communication among the team through a social network interface on top of a lean, agile task management system. Launched by Vincent Serpico, founder and CEO, Spotlight was born from a need to effectively manage his own remote development teams for his software development services company, SerpicoDEV.

Spotlight ingeniously addresses the currently troublesome communication problem through a dashboard of “Status Cards” that each team member calls their own. Built on the analogs of Facebook-like wall posts and Twitter-like Tweets, the Status Card keeps the project manager, client, and fellow team members apprised, real-time, of what each person is working on at any given moment via Spotlight’s exclusive free-form status and availability update. The Status Card empowers team members to chat with other team members and/or request status updates.

Because of Spotlight’s multi-channel communication focus, project managers also have the power to quickly initiate a phone or conference call directly from Spotlight if needed. The Status Card can be conveniently “flipped over” to reveal quick links and information for contacting the team member via Skype or their mobile phone; including immediate geo-location of the team member through a Google map. To enable leaders to see the path of activity and decision making, Spotlight also features a history of all status updates by every team member.

The social network-like interface is combined with an enhanced task management system that goes beyond other project management tools currently available. Team members update their status with the tasks they are assigned and the system tracks time spent on each task. Via Spotlight’s robust reporting engine, reports can be created that show the progress of a project, its estimated delivery date, and the progress of each team member.

Spotlight also has a mobile application for the iPhone and Android for those managers and clients constantly on the go. The mobile versions offer the same functionality as the web application and allow project managers to monitor their team from anywhere in the world at any moment. Team member status updates, availability, tasks, and project progress can all be accessed from the mobile application.

The combination of these features results in a product that allows remote teams to communicate and collaborate via the best of social networking, while tracking task management using the proven lean, agile method. Spotlight is true cloud-based, social project management that helps remote teams deliver their projects faster and more efficiently. Visit Spotlight People & Project Manager and sign up for one of our packages starting at $29.

Making Remote Teams Successful With Agile

Posted on December 5th, 2012

Agile Remote Team SuccessElance recently celebrated its two millionth freelancer. What does this mean for the software development industry? Remote development and design teams are sticking around for the long haul. With access to lower cost talent worldwide at their fingertips, businesses will start incorporating the practice into their long-term strategy.

The recent rise of agile software development raises some questions about implementing it with remote teams. Communication, cultural challenges, and time zone differences all combine to make it sound like it’s more work than it’s worth.

But those who made it work have reaped some major benefits. Projects can be delivered faster while still maintaining high quality. Costs can be cut dramatically. The key to making this combination successful? Efficient teamwork driven by communication.

Good communication just doesn’t happen overnight with remote project teams. Several things in the Agile approach contribute to making the communication platform more effective, resulting in better teamwork. It’s sort of a chain reaction – maintain good scrum practices to ensure quality communication that improves teamwork.

Below are some tips that help a remote agile team be more effective. It may take some sweat and tears, but making it work will benefit project stakeholders at every level.

Teamwork Depends on the Agile Team

The abundance of low cost talent available remotely doesn’t mean you should just pick the lowest cost team with the best resumes. Pick people who fit your organization. Sure, you still must consider experience and education but also see that they fit the company culture and there aren’t huge language barriers.

Also, take into account the team members enthusiasm and readiness to collaborate. Good spirits and open conversations during daily scrums can motivate team members tremendously. It may also help relieve some of the pressure to contribute for those that are a little quieter.

In the end, the team members selected should always respect the project goals and do everything they can to reach those goals.

Consider Culture

Always consider the culture of your fellow team members dispersed around the world. Work hours and days, holidays, and religion can all play a major part in a team member’s schedule and availability. Be prepared ahead of time with this knowledge and communicate extensively to minimize the culture gap. This can save you a lot time and confusion.

If you know ahead of time the some cultural challenges are too difficult to overcome, try to work with countries that have traditions close to yours. Difficulties can also arise with already assembled teams. If this is the case, it may be worth it to find a person who better understands the culture and not go through the next few months trying to figure it out.

Keep the Daily Scrum (and other open discussions)

Just because your team isn’t in the same room doesn’t mean you can’t have a successful scrum. Our company does it all the time via Skype and Go To Meeting. Keep the same format with everyone speaking on the tasks they did yesterday, the tasks for today, and the problems they have encountered. But just remember, being remote makes open communication that much more important since facial expressions cannot be seen.

Besides the daily scrum, encourage open communication and discussions throughout the entire day. This can often generate new ideas or find a solution to a bug. After all, open communication is the cornerstone of a successful project.

Divide and Conquer

Divide your project into even smaller iterations and require regular software integration. This will give you more control of the real project progress and help identify where issues may arise.

Working in remote teams does come with an increased chance of misunderstandings. But by breaking the project down into smaller iterations, misunderstandings and problems can be detected much earlier. With clarification of requirements and immediate code fixing, the project can move forward in a timely manner.

Clean and Crisp

Clean, well-shaped source code can prevent headaches down the project road. Part of the agile framework includes constant updating and revising of existing code. Ensuring the code is clean, crisp, and commented can minimize the response time tremendously for requirement changes.

At the end of all agile software development projects, the code has to be handed off to the client in some manner. Well prepared documentation makes this knowledge transfer easy and cost effective. Because at some point, the client will be calling back for help.

The agile method with remote teams can indeed work and work well. There may just be a little more prep work ahead of time to ensure the project goes smoothly. Maintain proper agile practices throughout with wide open communication and you’ll be on the way to success. Borders no longer limit who we can work with so it’s best to get prepared now by embracing the trend.

For more information on SerpicoDEV’s software development services, please contact us.

Windows 8 Presents Challenges For Developers

Posted on November 30th, 2012

Windows 8 Application DevelopmentWindows 8 launched last month with eye towards the future.

Stalling PC sales and the rise of the tablet forced Microsoft to eliminate the traditional desktop in favor of a touch-friendly, mobile UX design. Gone is the Start button and icons. Arrived is the Start screen and tiles.

With the new mobile touch-screen like interface, Microsoft is pleading with developers to create quality apps for the Windows 8 store. As of last week, the store has over 20,000 available apps. Compare this to the 700,000 and 675,000 for Apple and Google respectively and Microsoft has some work to do. They have invested heavily hoping to reach 100,000 in the first 3 months.

The new interface has presented challenges to developers. Windows 8 is the biggest change we’ve seen in the Windows development model since the move from version 3.X to 95. It has its positives – developers can continue to use their existing skills, whether that is C/C++, C# or Visual Basic, or HTML and JavaScript. But it poses some big challenges that will force developers to adapt.

Back at Square One

If you want your applications to be fully compatible with Windows 8 including running on ARM, you’ll need to do a full rewrite in Windows 8/WinRT. From a business aspect, this is going to cost money. A complete rewrite of an application is going to take time and with time comes higher cost. So you’re either back at square one with recreating the app or you simply don’t create one for Windows 8 until it will actually improve your ROI. Not good news for Microsoft’s attempt at being the largest app store around.

Touch UI and Beyond

The new touch interaction style of Windows 8 on a desktop has made things tricky. Mobile app developers will make this transition with relative ease having worked with touch UI before. But for the rest of the desktop development community, it’s going to be tough.

Making things difficult is creating an app that will work the same using a mouse and keyboard as it does with touch. Often what works well with touch does not work as well on the screen with a mouse and keyboard and vice versa. It’s balancing act – what once was coding with only clicks and keystrokes in mind now includes a world of touch and interaction.

Playing by Microsoft’s app store rules

Play by the Microsoft app store rules or else. Their rules are pretty reasonable, but strict when it comes to the inspection of all apps. The evaluation process includes everything from unhandled exceptions to circular UI paths. While definitely not a bad thing to ensure quality, it does come as a challenge to developers.

Consider the story of Jeffrey Harmon, a long-time windows developer. After winning a Microsoft app contest, he began the process of submitting his app Memorylage for store approval. That was in August.

After receiving his first failure report, Harmon started implementing fixes to remedy the situation. Six submissions later and a failure report for each one, he was ready to give up. “I still don’t know what is causing the failure,” he notes.

Harmon finally got his app approved a few weeks ago at the end of October. The issue wasn’t so much of the store-review process being difficult, but the vague nature of the failure reports. “Everyone at Microsoft that actually looked at the program has said it should pass, and it even made it into a technician’s personal test store. I can’t fix a bug that no one can find.”

He still remains an enthusiastic Windows 8 developer. The approval process was a bump in the road and will be a challenge for those submitting apps in the future.

On the Flip Side

While there are many challenges with Windows revolutionary new interface, there is plenty to cheer about. The Windows 8 SDK is flexible and very powerful. Its versatility makes creating apps for the platform much easier if you grew up on C++ or C#.

Microsoft’s backbone for Windows 8 development may be its support infrastructure. Visual Studio 2012 makes creating Windows 8 app easier with great debugging tools.  Programs like BizSpark and DreamSpark offer developer software tools free for startups and students, expediting the learning process. The Windows App Development Center has endless amounts of documentation.

Challenges for software developers are plentiful but it appears to be short-term. Microsoft has itself positioned to teach developers the skills to create quality apps to put their app store on par with Apple and Google. It may take a while but patience is a virtue.

For more information on SerpicoDEV and our software development services, please contact us.